History

selftests/harness: Handle TEST_F()'s explicit exit codes

If TEST_F() explicitly calls exit(code) with code different than 0, then _metadata->exit_code is set to this code (e.g. KVM_ONE_VCPU_TEST()). We need to keep in mind that _metadata->exit_code can be KSFT_SKIP while the process exit code is 0.

Mickaël Salaün committed 2 years ago

Commit 323feb31 parent f453cc31 file · +5 −1Browse files

Unified · Split

tools/testing/selftests/kselftest_harness.h+5−1
@@ -462,9 +462,13 @@ static inline pid_t clone3_vfork(void) · 461 unmodified lines
462462 munmap(teardown, sizeof(*teardown)); \
463463 if (self && fixture_name##_teardown_parent) \
464464 munmap(self, sizeof(*self)); \
465− if (!WIFEXITED(status) && WIFSIGNALED(status)) \
465+ if (WIFEXITED(status)) { \
466+ if (WEXITSTATUS(status)) \
467+ _metadata->exit_code = WEXITSTATUS(status); \
468+ } else if (WIFSIGNALED(status)) { \
466469 /* Forward signal to __wait_for_test(). */ \
467470 kill(getpid(), WTERMSIG(status)); \
471+ } \
468472 __test_check_assert(_metadata); \
469473 } \
470474 static struct __test_metadata *_##fixture_name##_##test_name##_object; \

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t