selftests/harness: Merge TEST_F_FORK() into TEST_F()
authorMickaël Salaün <mic@digikod.net>
Thu, 29 Feb 2024 00:59:09 +0000 (16:59 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 1 Mar 2024 10:30:28 +0000 (10:30 +0000)
commit0710a1a73fb45033ebb06073e374ab7d44a05f15
tree602e7795f5c2e44352a06018d2ba43627c6cf6ed
parente74048650eaff6674895f2220d0545f5e5920cd6
selftests/harness: Merge TEST_F_FORK() into TEST_F()

Replace Landlock-specific TEST_F_FORK() with an improved TEST_F() which
brings four related changes:

Run TEST_F()'s tests in a grandchild process to make it possible to
drop privileges and delegate teardown to the parent.

Compared to TEST_F_FORK(), simplify handling of the test grandchild
process thanks to vfork(2), and makes it generic (e.g. no explicit
conversion between exit code and _metadata).

Compared to TEST_F_FORK(), run teardown even when tests failed with an
assert thanks to commit 63e6b2a42342 ("selftests/harness: Run TEARDOWN
for ASSERT failures").

Simplify the test harness code by removing the no_print and step fields
which are not used.  I added this feature just after I made
kselftest_harness.h more broadly available but this step counter
remained even though it wasn't needed after all. See commit 369130b63178
("selftests: Enhance kselftest_harness.h to print which assert failed").

Replace spaces with tabs in one line of __TEST_F_IMPL().

Cc: Günther Noack <gnoack@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Will Drewry <wad@chromium.org>
Signed-off-by: Mickaël Salaün <mic@digikod.net>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/kselftest_harness.h
tools/testing/selftests/landlock/common.h