[LTP] [PATCH v2 3/3] fanotify14: fix anonymous pipe testcases
Petr Vorel
pvorel@suse.cz
Tue Mar 26 12:53:56 CET 2024
H
> Hi!
> > Reviewed-by: Amir Goldstein <amir73il@gmail.com>
> > Reviewed-by: Jan Kara <jack@suse.cz>
> > Co-developed-by: Petr Vorel <pvorel@suse.cz>
> > Signed-off-by: Mete Durlu <meted@linux.ibm.com>
> > Signed-off-by: Petr Vorel <pvorel@suse.cz>
> > ---
> > changes v1->v2:
> > * Do not include library header in fanotify14 (not needed)
> > .../kernel/syscalls/fanotify/fanotify14.c | 18 +++++++++++++++---
> > 1 file changed, 15 insertions(+), 3 deletions(-)
> > diff --git a/testcases/kernel/syscalls/fanotify/fanotify14.c b/testcases/kernel/syscalls/fanotify/fanotify14.c
> > index d02d81495..82725f317 100644
> > --- a/testcases/kernel/syscalls/fanotify/fanotify14.c
> > +++ b/testcases/kernel/syscalls/fanotify/fanotify14.c
> > @@ -47,6 +47,7 @@ static int pipes[2] = {-1, -1};
> > static int fanotify_fd;
> > static int ignore_mark_unsupported;
> > static int filesystem_mark_unsupported;
> > +static int se_enforcing;
> > static unsigned int supported_init_flags;
> > struct test_case_flags_t {
> > @@ -283,9 +284,18 @@ static void do_test(unsigned int number)
> > tst_res(TINFO, "Testing %s with %s",
> > tc->mark.desc, tc->mask.desc);
> > - TST_EXP_FD_OR_FAIL(fanotify_mark(fanotify_fd, FAN_MARK_ADD | tc->mark.flags,
> > - tc->mask.flags, dirfd, path),
> > - tc->expected_errno);
> > +
> > + if (tc->pfd && se_enforcing) {
> > + const int exp_errs[] = {tc->expected_errno, EACCES};
> > +
> > + TST_EXP_FAIL_ARR(fanotify_mark(fanotify_fd, FAN_MARK_ADD | tc->mark.flags,
> > + tc->mask.flags, dirfd, path),
> > + exp_errs);
> > + } else {
> > + TST_EXP_FAIL(fanotify_mark(fanotify_fd, FAN_MARK_ADD | tc->mark.flags,
> > + tc->mask.flags, dirfd, path),
> > + tc->expected_errno);
> > + }
> This looks like the test library is not flexible enough to make this
> simpler. Maybe having the ARRAY_SIZE() in the TST_EXP_FAIL_ARR wasn't a
> good idea after all. Or maybe we just need TST_EXP_FAIL_ARR2() that
> would take the array size explicitly, then we could do:
[ Removing Jan and Amir from the LTP specific discussion ]
@Cyril, @Li: How about add 2 macros with '_SIZE' in the name?
(TST_EXP_FAIL_ARR_SIZE and TST_EXP_FAIL2_ARR_SIZE, see diff at the end).
Other option would be to add '2' (TST_EXP_FAIL_ARR2 and TST_EXP_FAIL2_ARR2),
not sure what is more readable.
Kind regards,
Petr
> const int exp_errs[] = {tc->expected_errno, EACESS}
> TST_EXP_FAIL_ARR2(fanotify_mark(fanotify_fd, FAN_MARK_ADD | tc->mark.flags,
> tc->mask.flags, dirfd, path), exp_errs,
> se_enforcing ? 1 : 2);
+++ include/tst_test_macros.h
@@ -246,6 +246,10 @@ const char *tst_errno_names(char *buf, const int *exp_errs, int exp_errs_cnt);
TST_EXP_FAIL_ARR_(SCALL, #SCALL, EXP_ERRS, \
ARRAY_SIZE(EXP_ERRS), ##__VA_ARGS__);
+#define TST_EXP_FAIL_ARR_SIZE(SCALL, EXP_ERRS, EXP_ERRS_CNT, ...) \
+ TST_EXP_FAIL_ARR_(SCALL, #SCALL, EXP_ERRS, \
+ EXP_ERRS_CNT, ##__VA_ARGS__);
+
#define TST_EXP_FAIL2_ARR_(SCALL, SSCALL, EXP_ERRS, EXP_ERRS_CNT, ...) \
do { \
TST_EXP_FAIL_SILENT_(TST_RET >= 0, SCALL, SSCALL, \
@@ -258,6 +262,10 @@ const char *tst_errno_names(char *buf, const int *exp_errs, int exp_errs_cnt);
TST_EXP_FAIL2_ARR_(SCALL, #SCALL, EXP_ERRS, \
ARRAY_SIZE(EXP_ERRS), ##__VA_ARGS__);
+#define TST_EXP_FAIL2_ARR_SIZE(SCALL, EXP_ERRS, EXP_ERRS_CNT...) \
+ TST_EXP_FAIL2_ARR_(SCALL, #SCALL, EXP_ERRS, \
+ EXP_ERRS_CNT, ##__VA_ARGS__);
+
#define TST_EXP_FAIL2(SCALL, EXP_ERR, ...) \
do { \
int tst_exp_err__ = EXP_ERR; \
More information about the ltp
mailing list