Skip to content

Commit 7d29f3b

Browse files
Andrew Boieandrewboie
authored andcommitted
ztest: do teardown in main thread
If the test exits from some APIs like ztest_test_pass(), ztest_test_skip(), or a test crashes out, the teardown function is never run. Fixes: #16329 Signed-off-by: Andrew Boie <[email protected]>
1 parent 9a9f0ed commit 7d29f3b

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

subsys/testsuite/ztest/src/ztest.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,6 @@ static void run_test_functions(struct unit_test *test)
146146
test->setup();
147147
phase = TEST_PHASE_TEST;
148148
test->test();
149-
phase = TEST_PHASE_TEARDOWN;
150-
test->teardown();
151-
phase = TEST_PHASE_FRAMEWORK;
152149
}
153150

154151
#ifndef KERNEL
@@ -312,6 +309,11 @@ static int run_test(struct unit_test *test)
312309
* phase": this will corrupt the kernel ready queue.
313310
*/
314311
k_sem_take(&test_end_signal, K_FOREVER);
312+
313+
phase = TEST_PHASE_TEARDOWN;
314+
test->teardown();
315+
phase = TEST_PHASE_FRAMEWORK;
316+
315317
if (test_result == -1) {
316318
ret = TC_FAIL;
317319
}

0 commit comments

Comments
 (0)