Hi Petr, can TST_TEST_CONF be used even if TST_NO_DEFAULT_MAIN is defined? Andrea On 4/4/22 12:33, Petr Vorel wrote: > Hi Andrea, > > BTW it'd help reviewers a bit if you include a changelog. > > Reviewed-by: Petr Vorel > TL;DR: TST_TEST_TCONF() in userns06_capcheck.c > >> diff --git a/testcases/kernel/containers/userns/userns06_capcheck.c b/testcases/kernel/containers/userns/userns06_capcheck.c > ... >> -/* >> - * Verify that: >> +/*\ >> + * [Description] >> + * >> * When a process with non-zero user IDs performs an execve(), the >> * process's capability sets are cleared. When a process with zero >> * user IDs performs an execve(), the process's capability sets >> * are set. >> */ > nit: I wonder if we want to have docparse documentation in both userns06.c and > userns06_capcheck.c, they now look as 2 separate tests. Maybe describe > everything in userns06.c. > >> +#define TST_NO_DEFAULT_MAIN >> +#include "tst_test.h" >> +#include "config.h" >> + >> +#ifdef HAVE_LIBCAP > ... >> + if (argc < 2) >> + tst_brk(TBROK, "userns06_capcheck "); >> + >> + tst_reinit(); > I'm not sure if tst_reinit() shouldn't be called even before tst_brk(TBROK, ...). >> + >> + SAFE_FILE_SCANF("/proc/sys/kernel/cap_last_cap", "%d", &last_cap); >> + >> if (strcmp("privileged", argv[1])) >> expected_flag = 0; > nit: It might help debugging to print argv[1] in TINF0. > >> caps = cap_get_proc(); >> - SAFE_FILE_SCANF(NULL, "/proc/sys/kernel/cap_last_cap", "%d", &last_cap); >> + >> for (i = 0; i <= last_cap; i++) { >> cap_get_flag(caps, i, CAP_EFFECTIVE, &flag_val); >> if (flag_val != expected_flag) >> break; >> + >> cap_get_flag(caps, i, CAP_PERMITTED, &flag_val); >> if (flag_val != expected_flag) >> break; >> } >> - if (flag_val != expected_flag) { >> - printf("unexpected effective/permitted caps at %d\n", i); >> - exit(1); >> - } >> + if (flag_val != expected_flag) >> + tst_res(TFAIL, "unexpected effective/permitted caps at %d", i); > The flags are CAP_EFFECTIVE and CAP_PERMITTED only here, right? > (i.e. no CAP_INHERITABLE). Not sure how helpful would be to print here which > flag was the failing one. > >> + else >> + tst_res(TPASS, "expected caps at %d", i); >> +} >> #else >> - printf("System is missing libcap.\n"); >> -#endif >> - tst_exit(); >> +int main(void) >> +{ >> + tst_brk(TBROK, "System is missing libcap"); >> } > Why don't you also use TST_TEST_TCONF() here? >> +#endif > Kind regards, > Petr >