From: Petr Vorel <pvorel@suse.cz>
To: Cyril Hrubis <chrubis@suse.cz>
Cc: Mete Durlu <meted@linux.ibm.com>, ltp@lists.linux.it
Subject: Re: [LTP] [PATCH v2 3/3] fanotify14: fix anonymous pipe testcases
Date: Tue, 26 Mar 2024 12:53:56 +0100 [thread overview]
Message-ID: <20240326115356.GD715328@pevik> (raw)
In-Reply-To: <ZgKmScOuuiobsEdj@yuki>
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; \
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2024-03-26 11:54 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-20 10:22 [LTP] [PATCH v2 0/3] fanotify14 on SELinux fix + lib source merge Petr Vorel
2024-03-20 10:22 ` [LTP] [PATCH v2 1/3] lib: Merge security related sources Petr Vorel
2024-03-26 10:24 ` Cyril Hrubis
2024-03-26 11:38 ` Petr Vorel
2024-03-26 11:44 ` Petr Vorel
2024-03-20 10:22 ` [LTP] [PATCH v2 2/3] lib: Add tst_selinux_enforcing() Petr Vorel
2024-03-26 10:26 ` Cyril Hrubis
2024-03-20 10:22 ` [LTP] [PATCH v2 3/3] fanotify14: fix anonymous pipe testcases Petr Vorel
2024-03-26 10:41 ` Cyril Hrubis
2024-03-26 11:42 ` Petr Vorel
2024-03-26 11:53 ` Petr Vorel [this message]
2024-03-26 12:41 ` Cyril Hrubis
2024-03-26 14:30 ` Petr Vorel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240326115356.GD715328@pevik \
--to=pvorel@suse.cz \
--cc=chrubis@suse.cz \
--cc=ltp@lists.linux.it \
--cc=meted@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox