Message ID | 20210112020227.11775-3-yangx.jy@cn.fujitsu.com |
---|---|
State | Accepted |
Headers | show |
Series | [v3,1/3] include/tst_test_macros.h: Add TST_EXP_{PASS, FD}_SILENT macros | expand |
Hi! > diff --git a/testcases/kernel/syscalls/capget/capget01.c b/testcases/kernel/syscalls/capget/capget01.c > index 6c17a7c7c..af088e2fc 100644 > --- a/testcases/kernel/syscalls/capget/capget01.c > +++ b/testcases/kernel/syscalls/capget/capget01.c > @@ -32,8 +32,10 @@ static void verify_capget(unsigned int n) > hdr->version = tc->version; > hdr->pid = pid; > > - TST_EXP_PASS(tst_syscall(__NR_capget, hdr, data), > + TST_EXP_PASS_SILENT(tst_syscall(__NR_capget, hdr, data), > "capget() with %s", tc->message); > + if (!TST_PASS) > + return; > > if (data[0].effective & 1 << CAP_NET_RAW) > tst_res(TFAIL, "capget() gets CAP_NET_RAW unexpectedly in pE"); I do not agree with the change in the capget01 here since there are really two testcases there and the test was producing the same amount of TPASS messages before the change to the TST_EXP_PASS() as well. Other than that the patchset is fine. So with the capget change removed you can add my: Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
On 2021/1/20 18:34, Cyril Hrubis wrote: > Hi! >> diff --git a/testcases/kernel/syscalls/capget/capget01.c b/testcases/kernel/syscalls/capget/capget01.c >> index 6c17a7c7c..af088e2fc 100644 >> --- a/testcases/kernel/syscalls/capget/capget01.c >> +++ b/testcases/kernel/syscalls/capget/capget01.c >> @@ -32,8 +32,10 @@ static void verify_capget(unsigned int n) >> hdr->version = tc->version; >> hdr->pid = pid; >> >> - TST_EXP_PASS(tst_syscall(__NR_capget, hdr, data), >> + TST_EXP_PASS_SILENT(tst_syscall(__NR_capget, hdr, data), >> "capget() with %s", tc->message); >> + if (!TST_PASS) >> + return; >> >> if (data[0].effective& 1<< CAP_NET_RAW) >> tst_res(TFAIL, "capget() gets CAP_NET_RAW unexpectedly in pE"); > I do not agree with the change in the capget01 here since there are > really two testcases there and the test was producing the same amount of > TPASS messages before the change to the TST_EXP_PASS() as well. Hi Cyril, Running capget01 with TST_EXP_PASS() shows: -------------------------------------------------------- capget01.c:35: TPASS: capget() with LINUX_CAPABILITY_VERSION_1 passed capget01.c:41: TPASS: capget() doesn't get CAP_NET_RAW as expected in PE capget01.c:35: TPASS: capget() with LINUX_CAPABILITY_VERSION_2 passed capget01.c:41: TPASS: capget() doesn't get CAP_NET_RAW as expected in PE capget01.c:35: TPASS: capget() with LINUX_CAPABILITY_VERSION_3 passed capget01.c:41: TPASS: capget() doesn't get CAP_NET_RAW as expected in PE Summary: passed 6 -------------------------------------------------------- Running capget01 with TST_EXP_PASS_SILENT() shows: -------------------------------------------------------- capget01.c:43: TPASS: capget() doesn't get CAP_NET_RAW as expected in PE capget01.c:43: TPASS: capget() doesn't get CAP_NET_RAW as expected in PE capget01.c:43: TPASS: capget() doesn't get CAP_NET_RAW as expected in PE Summary: passed 3 -------------------------------------------------------- If you want to keep two TPASS for a subtest, how about merging two TPASS into one? like this: ------------------------------------------------------------------------------------------ capget01.c:43: TPASS: capget() with LINUX_CAPABILITY_VERSION_1 doesn't get CAP_NET_RAW as expected in PE capget01.c:43: TPASS: capget() with LINUX_CAPABILITY_VERSION_2 doesn't get CAP_NET_RAW as expected in PE capget01.c:43: TPASS: capget() with LINUX_CAPABILITY_VERSION_3 doesn't get CAP_NET_RAW as expected in PE Summary: passed 3 ------------------------------------------------------------------------------------------ BTW, I just want to avoid many TPASS for a subtest. Best Regards, Xiao Yang > Other than that the patchset is fine. > > So with the capget change removed you can add my: > > Reviewed-by: Cyril Hrubis<chrubis@suse.cz> >
Hi!
> BTW, I just want to avoid many TPASS for a subtest.
Why? The capget01 clearly does two different tests per iteration.
There is absolutely no correlation between the number of TPASS test
produces and the number of iteration test does.
On 2021/1/22 21:47, Cyril Hrubis wrote: > Hi! >> BTW, I just want to avoid many TPASS for a subtest. > Why? The capget01 clearly does two different tests per iteration. > > There is absolutely no correlation between the number of TPASS test > produces and the number of iteration test does. Hi Cyril, I pushed the patchset without capget01 for now. But I think there is a whole test per iteration, like three steps: 1) Drop CAP_NET_RAW. 2) Get effective by specifying kernel revision. 3) Check that the effective doesn't include CAP_NET_RAW. Is it necessary for per steps to report TPASS? :-) Best Regards, Xiao Yang
diff --git a/testcases/kernel/syscalls/access/access02.c b/testcases/kernel/syscalls/access/access02.c index ff3e7b6f4..bf636f9f4 100644 --- a/testcases/kernel/syscalls/access/access02.c +++ b/testcases/kernel/syscalls/access/access02.c @@ -59,7 +59,7 @@ static void access_test(struct tcase *tc, const char *user) struct stat stat_buf; char command[64]; - TST_EXP_PASS(access(tc->pathname, tc->mode), + TST_EXP_PASS_SILENT(access(tc->pathname, tc->mode), "access(%s, %s) as %s", tc->pathname, tc->name, user); if (!TST_PASS) diff --git a/testcases/kernel/syscalls/bind/bind04.c b/testcases/kernel/syscalls/bind/bind04.c index 49e784ccd..de43b6c13 100644 --- a/testcases/kernel/syscalls/bind/bind04.c +++ b/testcases/kernel/syscalls/bind/bind04.c @@ -118,7 +118,7 @@ static void test_bind(unsigned int n) listen_sock = SAFE_SOCKET(tc->address->sa_family, tc->type, tc->protocol); - TST_EXP_PASS(bind(listen_sock, tc->address, tc->addrlen), "bind()"); + TST_EXP_PASS_SILENT(bind(listen_sock, tc->address, tc->addrlen), "bind()"); if (!TST_PASS) { SAFE_CLOSE(listen_sock); diff --git a/testcases/kernel/syscalls/bind/bind05.c b/testcases/kernel/syscalls/bind/bind05.c index 3b384cf1b..c43593fe1 100644 --- a/testcases/kernel/syscalls/bind/bind05.c +++ b/testcases/kernel/syscalls/bind/bind05.c @@ -131,7 +131,7 @@ static void test_bind(unsigned int n) tst_res(TINFO, "Testing %s", tc->description); sock = SAFE_SOCKET(tc->address->sa_family, tc->type, tc->protocol); - TST_EXP_PASS(bind(sock, tc->address, tc->addrlen), "bind()"); + TST_EXP_PASS_SILENT(bind(sock, tc->address, tc->addrlen), "bind()"); if (!TST_PASS) { SAFE_CLOSE(sock); diff --git a/testcases/kernel/syscalls/brk/brk01.c b/testcases/kernel/syscalls/brk/brk01.c index 3f8606375..a9b89bce5 100644 --- a/testcases/kernel/syscalls/brk/brk01.c +++ b/testcases/kernel/syscalls/brk/brk01.c @@ -31,7 +31,9 @@ void verify_brk(void) break; } - TST_EXP_PASS(brk((void *)new_brk), "brk()"); + TST_EXP_PASS_SILENT(brk((void *)new_brk), "brk()"); + if (!TST_PASS) + return; cur_brk = (uintptr_t)sbrk(0); @@ -46,6 +48,8 @@ void verify_brk(void) if (i % 3 == 0) *((char *)cur_brk) = 0; } + + tst_res(TPASS, "brk() works fine"); } static struct tst_test test = { diff --git a/testcases/kernel/syscalls/capget/capget01.c b/testcases/kernel/syscalls/capget/capget01.c index 6c17a7c7c..af088e2fc 100644 --- a/testcases/kernel/syscalls/capget/capget01.c +++ b/testcases/kernel/syscalls/capget/capget01.c @@ -32,8 +32,10 @@ static void verify_capget(unsigned int n) hdr->version = tc->version; hdr->pid = pid; - TST_EXP_PASS(tst_syscall(__NR_capget, hdr, data), + TST_EXP_PASS_SILENT(tst_syscall(__NR_capget, hdr, data), "capget() with %s", tc->message); + if (!TST_PASS) + return; if (data[0].effective & 1 << CAP_NET_RAW) tst_res(TFAIL, "capget() gets CAP_NET_RAW unexpectedly in pE");
Current TST_EXP_PASS macro reports the double passed for one subtest, for example: -------------------------------------------- tst_test.c:1261: TINFO: Timeout per run is 0h 05m 00s access02.c:62: TPASS: access(file_f, F_OK) as root passed access02.c:141: TPASS: access(file_f, F_OK) as root behaviour is correct. access02.c:62: TPASS: access(file_f, F_OK) as nobody passed access02.c:141: TPASS: access(file_f, F_OK) as nobody behaviour is correct. access02.c:62: TPASS: access(file_r, R_OK) as root passed ... Summary: passed 32 failed 0 broken 0 skipped 0 warnings 0 -------------------------------------------- It is just a minor cleanup rather than a fix. Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com> --- testcases/kernel/syscalls/access/access02.c | 2 +- testcases/kernel/syscalls/bind/bind04.c | 2 +- testcases/kernel/syscalls/bind/bind05.c | 2 +- testcases/kernel/syscalls/brk/brk01.c | 6 +++++- testcases/kernel/syscalls/capget/capget01.c | 4 +++- 5 files changed, 11 insertions(+), 5 deletions(-)