Message ID | 20220710104449.10387-1-akumar@suse.de |
---|---|
State | Accepted |
Headers | show |
Series | [v2] open08.c: Use TST_EXP_FAIL2() and SAFE_CLOSE() | expand |
Hi Avinesh, > Make use of TST_EXP_FAIL2() macro with testcase descriptions +1 Also +1 for static :). ... > +++ b/testcases/kernel/syscalls/open/open08.c > @@ -33,34 +33,20 @@ static struct test_case_t { > char **fname; > int flags; > int error; > + const char *desc; > } tcases[] = { > - {&existing_fname, O_CREAT | O_EXCL, EEXIST}, > - {&dir_fname, O_RDWR, EISDIR}, > - {&existing_fname, O_DIRECTORY, ENOTDIR}, > - {&toolong_fname, O_RDWR, ENAMETOOLONG}, > - {&user2_fname, O_WRONLY, EACCES}, > - {&unmapped_fname, O_CREAT, EFAULT} > + {&existing_fname, O_CREAT | O_EXCL, EEXIST, "open() existing file with 'O_CREAT | O_EXCL'"}, > + {&dir_fname, O_RDWR, EISDIR, "open() existing directory with write access"}, > + {&existing_fname, O_DIRECTORY, ENOTDIR, "open() non-directory pathname with O_DIRECTORY"}, > + {&toolong_fname, O_RDWR, ENAMETOOLONG, "open() too long pathname"}, > + {&user2_fname, O_WRONLY, EACCES, "open() file without requested access rights"}, > + {&unmapped_fname, O_CREAT, EFAULT, "open() pathname with bad address"} > }; Reviewed-by: Petr Vorel <pvorel@suse.cz> Instead of text descriptions I'd just print flags: #define FLAGS_DESC(x) .flags = x, .desc = #x static struct test_case_t { char **fname; int flags; const char *desc; int error; } tcases[] = { {&existing_fname, FLAGS_DESC(O_CREAT | O_EXCL), EEXIST}, {&dir_fname, FLAGS_DESC(O_RDWR), EISDIR}, {&existing_fname, FLAGS_DESC(O_DIRECTORY), ENOTDIR}, {&toolong_fname, FLAGS_DESC(O_RDWR), ENAMETOOLONG}, {&user2_fname, FLAGS_DESC(O_WRONLY), EACCES}, {&unmapped_fname, FLAGS_DESC(O_CREAT), EFAULT}, }; # ./open08 tst_test.c:1526: TINFO: Timeout per run is 0h 00m 30s open08.c:52: TPASS: O_CREAT | O_EXCL : EEXIST (17) open08.c:52: TPASS: O_RDWR : EISDIR (21) open08.c:52: TPASS: O_DIRECTORY : ENOTDIR (20) open08.c:52: TPASS: O_RDWR : ENAMETOOLONG (36) open08.c:52: TPASS: O_WRONLY : EACCES (13) open08.c:52: TPASS: O_CREAT : EFAULT (14) If you agree, I can merge it with this change. Kind regards, Petr
Hi Petr, On Monday, July 11, 2022 12:10:57 PM IST Petr Vorel wrote: > Hi Avinesh, > > > Make use of TST_EXP_FAIL2() macro with testcase descriptions > +1 > > Also +1 for static :). > > ... > > +++ b/testcases/kernel/syscalls/open/open08.c > > @@ -33,34 +33,20 @@ static struct test_case_t { > > char **fname; > > int flags; > > int error; > > + const char *desc; > > } tcases[] = { > > - {&existing_fname, O_CREAT | O_EXCL, EEXIST}, > > - {&dir_fname, O_RDWR, EISDIR}, > > - {&existing_fname, O_DIRECTORY, ENOTDIR}, > > - {&toolong_fname, O_RDWR, ENAMETOOLONG}, > > - {&user2_fname, O_WRONLY, EACCES}, > > - {&unmapped_fname, O_CREAT, EFAULT} > > + {&existing_fname, O_CREAT | O_EXCL, EEXIST, "open() existing file with 'O_CREAT | O_EXCL'"}, > > + {&dir_fname, O_RDWR, EISDIR, "open() existing directory with write access"}, > > + {&existing_fname, O_DIRECTORY, ENOTDIR, "open() non-directory pathname with O_DIRECTORY"}, > > + {&toolong_fname, O_RDWR, ENAMETOOLONG, "open() too long pathname"}, > > + {&user2_fname, O_WRONLY, EACCES, "open() file without requested access rights"}, > > + {&unmapped_fname, O_CREAT, EFAULT, "open() pathname with bad address"} > > }; > > Reviewed-by: Petr Vorel <pvorel@suse.cz> > > Instead of text descriptions I'd just print flags: > > #define FLAGS_DESC(x) .flags = x, .desc = #x > > static struct test_case_t { > char **fname; > int flags; > const char *desc; > int error; > } tcases[] = { > {&existing_fname, FLAGS_DESC(O_CREAT | O_EXCL), EEXIST}, > {&dir_fname, FLAGS_DESC(O_RDWR), EISDIR}, > {&existing_fname, FLAGS_DESC(O_DIRECTORY), ENOTDIR}, > {&toolong_fname, FLAGS_DESC(O_RDWR), ENAMETOOLONG}, > {&user2_fname, FLAGS_DESC(O_WRONLY), EACCES}, > {&unmapped_fname, FLAGS_DESC(O_CREAT), EFAULT}, > }; > > # ./open08 > tst_test.c:1526: TINFO: Timeout per run is 0h 00m 30s > open08.c:52: TPASS: O_CREAT | O_EXCL : EEXIST (17) > open08.c:52: TPASS: O_RDWR : EISDIR (21) > open08.c:52: TPASS: O_DIRECTORY : ENOTDIR (20) > open08.c:52: TPASS: O_RDWR : ENAMETOOLONG (36) > open08.c:52: TPASS: O_WRONLY : EACCES (13) > open08.c:52: TPASS: O_CREAT : EFAULT (14) > > If you agree, I can merge it with this change. Yes, this is nice, please go ahead. > > Kind regards, > Petr > Thanks, Avinesh
Hi Avinesh, > > If you agree, I can merge it with this change. > Yes, this is nice, please go ahead. Good, merged. Thanks! Kind regards, Petr
diff --git a/testcases/kernel/syscalls/open/open08.c b/testcases/kernel/syscalls/open/open08.c index 890fe2818..0742324c9 100644 --- a/testcases/kernel/syscalls/open/open08.c +++ b/testcases/kernel/syscalls/open/open08.c @@ -33,34 +33,20 @@ static struct test_case_t { char **fname; int flags; int error; + const char *desc; } tcases[] = { - {&existing_fname, O_CREAT | O_EXCL, EEXIST}, - {&dir_fname, O_RDWR, EISDIR}, - {&existing_fname, O_DIRECTORY, ENOTDIR}, - {&toolong_fname, O_RDWR, ENAMETOOLONG}, - {&user2_fname, O_WRONLY, EACCES}, - {&unmapped_fname, O_CREAT, EFAULT} + {&existing_fname, O_CREAT | O_EXCL, EEXIST, "open() existing file with 'O_CREAT | O_EXCL'"}, + {&dir_fname, O_RDWR, EISDIR, "open() existing directory with write access"}, + {&existing_fname, O_DIRECTORY, ENOTDIR, "open() non-directory pathname with O_DIRECTORY"}, + {&toolong_fname, O_RDWR, ENAMETOOLONG, "open() too long pathname"}, + {&user2_fname, O_WRONLY, EACCES, "open() file without requested access rights"}, + {&unmapped_fname, O_CREAT, EFAULT, "open() pathname with bad address"} }; -void verify_open(unsigned int i) +static void verify_open(unsigned int i) { - TEST(open(*tcases[i].fname, tcases[i].flags, - S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)); - - if (TST_RET != -1) { - tst_res(TFAIL, "call succeeded unexpectedly"); - return; - } - - if (TST_ERR == tcases[i].error) { - tst_res(TPASS, "expected failure - " - "errno = %d : %s", TST_ERR, - strerror(TST_ERR)); - } else { - tst_res(TFAIL, "unexpected error - %d : %s - " - "expected %d", TST_ERR, - strerror(TST_ERR), tcases[i].error); - } + TST_EXP_FAIL2(open(*tcases[i].fname, tcases[i].flags, 0644), + tcases[i].error, "%s", tcases[i].desc); } static void setup(void) @@ -79,7 +65,7 @@ static void setup(void) SAFE_SETUID(ltpuser->pw_uid); fildes = SAFE_CREAT(existing_fname, 0600); - close(fildes); + SAFE_CLOSE(fildes); unmapped_fname = tst_get_bad_addr(NULL); }
Make use of TST_EXP_FAIL2() macro with testcase descriptions Signed-off-by: Avinesh Kumar <akumar@suse.de> --- testcases/kernel/syscalls/open/open08.c | 36 ++++++++----------------- 1 file changed, 11 insertions(+), 25 deletions(-)