Message ID | 20210624081500.11715-1-aleksei.kodanev@bell-sw.com |
---|---|
State | Accepted |
Headers | show |
Series | [1/2] lib/tst_test: setup TCID earlier in do_setup() | expand |
Hi Alexey, Good catch. On Thu, Jun 24, 2021 at 4:15 PM Alexey Kodanev <aleksei.kodanev@bell-sw.com> wrote: > TCID can be NULL in tst_tmpdir() because it is set after do_setup(): > > tst_run_tcases() > do_setup() > ... > tid = get_tid(); > ... > tst_tmpdir() /* using TCID here */ > TCID = tid; > > Signed-off-by: Alexey Kodanev <aleksei.kodanev@bell-sw.com> > Reviewed-by: Li Wang <liwang@redhat.com>
Hi! > TCID can be NULL in tst_tmpdir() because it is set after do_setup(): > > tst_run_tcases() > do_setup() > ... > tid = get_tid(); > ... > tst_tmpdir() /* using TCID here */ > TCID = tid; Good catch, I wonder how we missed this for so long... Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
Hi Li, Cyril, On 25.06.2021 12:27, Cyril Hrubis wrote: > Hi! >> TCID can be NULL in tst_tmpdir() because it is set after do_setup(): >> >> tst_run_tcases() >> do_setup() >> ... >> tid = get_tid(); >> ... >> tst_tmpdir() /* using TCID here */ >> TCID = tid; > > Good catch, I wonder how we missed this for so long... Ran into this with musl, it pastes "(null)" to the tmpdir path if TCID is NULL, so the final template looked like "/tmp/(nuXXXXXX". But glibc skips it because the same string doesn't fit in 3 chars template in snprintf(..., "%s/%.3sXXXXXX",...). Applied the patch. Thanks for review!
diff --git a/lib/tst_test.c b/lib/tst_test.c index 36a4809c7..55449c80b 100644 --- a/lib/tst_test.c +++ b/lib/tst_test.c @@ -915,7 +915,7 @@ static void do_setup(int argc, char *argv[]) assert_test_fn(); - tid = get_tid(argv); + TCID = tid = get_tid(argv); if (tst_test->sample) tst_test = tst_timer_test_setup(tst_test); @@ -1412,8 +1412,6 @@ void tst_run_tcases(int argc, char *argv[], struct tst_test *self) do_setup(argc, argv); - TCID = tid; - SAFE_SIGNAL(SIGALRM, alarm_handler); SAFE_SIGNAL(SIGUSR1, heartbeat_handler);
TCID can be NULL in tst_tmpdir() because it is set after do_setup(): tst_run_tcases() do_setup() ... tid = get_tid(); ... tst_tmpdir() /* using TCID here */ TCID = tid; Signed-off-by: Alexey Kodanev <aleksei.kodanev@bell-sw.com> --- lib/tst_test.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)