Hi Cyril, ... > +++ b/testcases/kernel/syscalls/splice/splice07.c > @@ -0,0 +1,85 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later > + > +/* > + * Copyright (C) 2023 Cyril Hrubis <chrubis@xxxxxxx> > + */ > + > +/*\ > + * [Description] > + * nit: missing a description. > + */ > +#define _GNU_SOURCE > + > +#include <sys/socket.h> > +#include <netinet/in.h> > + > +#include "tst_test.h" > + > +void check_splice(struct tst_fd *fd_in, struct tst_fd *fd_out) nit: missing static > + /* These produce EBADF instead of EINVAL */ > + switch (fd_out->type) { > + case TST_FD_DIR: > + case TST_FD_DEV_ZERO: > + case TST_FD_PROC_MAPS: > + case TST_FD_INOTIFY: > + case TST_FD_PIPE_READ: > + exp_errno = EBADF; I tested it just on kernel 6.6. I wonder if this behaves the same on older kernels. > + default: > + break; > + } > + > + if (fd_in->type == TST_FD_PIPE_WRITE) > + exp_errno = EBADF; > + > + if (fd_in->type == TST_FD_OPEN_TREE || fd_out->type == TST_FD_OPEN_TREE || > + fd_in->type == TST_FD_PATH || fd_out->type == TST_FD_PATH) > + exp_errno = EBADF; I suppose you'll send another version, which will make use of TST_EXP_FAIL. https://lore.kernel.org/ltp/20240103115700.14585-1-chrubis@xxxxxxx/ BTW I also wonder if TST_EXP_FAIL() could simplify some of fanotify tests (some of them got quite complex over time). Reviewed-by: Petr Vorel <pvorel@xxxxxxx> Kind regards, Petr