[LTP] [PATCH v4] Rewrite userns06.c using new LTP API
Andrea Cervesato
andrea.cervesato@suse.com
Mon Apr 4 12:52:02 CEST 2022
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<pvorel@suse.cz>
> 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 <privileged|unprivileged>");
>> +
>> + 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linux.it/pipermail/ltp/attachments/20220404/3c58e7cc/attachment.htm>
More information about the ltp
mailing list