Message ID | 20250505-nolibc-kselftest-harness-v4-0-ee4dd5257135@linutronix.de |
---|---|
Headers | show |
Series | kselftest harness and nolibc compatibility | expand |
Hi Shuah and Kees, On 2025-05-05 17:15:18+0200, Thomas Weißschuh wrote: > Nolibc is useful for selftests as the test programs can be very small, > and compiled with just a kernel crosscompiler, without userspace support. > Currently nolibc is only usable with kselftest.h, not the more > convenient to use kselftest_harness.h > This series provides this compatibility by removing the usage of problematic > libc features from the harness. I'd like to get this series into the next merge window. For that I'd like to expose it to linux-next through the nolibc tree. If you don't have the time for a review or issues crop up, I will drop the patches again. Are you fine with that? The issues reported by Mark have been fixed and tests have been written for them. > Based on nolibc/for-next. > The series is meant to be merged through the nolibc tree. > > Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> > --- > Changes in v4: > - Drop patches for nolibc which where already applied > - Preserve signatures of test functions for tests making assumptions about them > drop 'selftests: harness: Always provide "self" and "variant"' > add 'selftests: harness: Add "variant" and "self" to test metadata' > adapt 'selftests: harness: Stop using setjmp()/longjmp()' > - Validate test function signatures in harness selftest > - Link to v3: https://lore.kernel.org/r/20250411-nolibc-kselftest-harness-v3-0-4d9c0295893f@linutronix.de > > Changes in v3: > - Send patches to correct kselftest harness maintainers > - Move harness selftest to dedicated directory > - Add harness selftest to MAINTAINERS > - Integrate harness selftest cleanup with the selftest framework > - Consistently use "kselftest harness" in commit messages > - Properly propagate kselftest harness failure > - Link to v2: https://lore.kernel.org/r/20250407-nolibc-kselftest-harness-v2-0-f8812f76e930@linutronix.de > > Changes in v2: > - Rebase unto v6.15-rc1 > - Rename internal nolibc symbols > - Handle edge case of waitpid(INT_MIN) == ESRCH > - Fix arm configurations for final testing patch > - Clean up global getopt.h variable declarations > - Add Acks from Willy > - Link to v1: https://lore.kernel.org/r/20250304-nolibc-kselftest-harness-v1-0-adca7cd231e2@linutronix.de > > --- > Thomas Weißschuh (14): > selftests: harness: Add kselftest harness selftest > selftests: harness: Use C89 comment style > selftests: harness: Ignore unused variant argument warning > selftests: harness: Mark functions without prototypes static > selftests: harness: Remove inline qualifier for wrappers > selftests: harness: Remove dependency on libatomic > selftests: harness: Implement test timeouts through pidfd > selftests: harness: Don't set setup_completed for fixtureless tests > selftests: harness: Move teardown conditional into test metadata > selftests: harness: Add teardown callback to test metadata > selftests: harness: Add "variant" and "self" to test metadata > selftests: harness: Stop using setjmp()/longjmp() > selftests: harness: Guard includes on nolibc > HACK: selftests/nolibc: demonstrate usage of the kselftest harness > > MAINTAINERS | 1 + > tools/testing/selftests/Makefile | 1 + > tools/testing/selftests/kselftest_harness.h | 175 +- > .../testing/selftests/kselftest_harness/.gitignore | 2 + > tools/testing/selftests/kselftest_harness/Makefile | 7 + > .../selftests/kselftest_harness/harness-selftest.c | 138 ++ > .../kselftest_harness/harness-selftest.expected | 64 + > .../kselftest_harness/harness-selftest.sh | 13 + > tools/testing/selftests/nolibc/Makefile | 15 +- > tools/testing/selftests/nolibc/harness-selftest.c | 1 + > tools/testing/selftests/nolibc/nolibc-test.c | 1715 +------------------- > tools/testing/selftests/nolibc/run-tests.sh | 2 +- > 12 files changed, 313 insertions(+), 1821 deletions(-) > --- > base-commit: 2051d3b830c0889ae55e37e9e8ff0d43a4acd482 > change-id: 20250130-nolibc-kselftest-harness-8b2c8cac43bf > > Best regards, > -- > Thomas Weißschuh <thomas.weissschuh@linutronix.de> >
On 2025-05-12 15:32:40-0600, Shuah Khan wrote: > On 5/10/25 00:54, Thomas Weißschuh wrote: > > Hi Shuah and Kees, > > > > On 2025-05-05 17:15:18+0200, Thomas Weißschuh wrote: > > > Nolibc is useful for selftests as the test programs can be very small, > > > and compiled with just a kernel crosscompiler, without userspace support. > > > Currently nolibc is only usable with kselftest.h, not the more > > > convenient to use kselftest_harness.h > > > This series provides this compatibility by removing the usage of problematic > > > libc features from the harness. > > > > I'd like to get this series into the next merge window. > > For that I'd like to expose it to linux-next through the nolibc tree. > > If you don't have the time for a review or issues crop up, I will drop > > the patches again. > > > > Are you fine with that? > > Didn't I respond to v13 saying you can include in your nolibc PR? > If I didn't here is my Reviewed-by. You did ack v3. But as some patches changed, I wanted to reconfirm the new contents. > > > > The issues reported by Mark have been fixed and tests have been written > > for them. > > Reviewed-by: Shuah Khan <skhan@linuxfoundation.org> Thanks! As most patches already carry your Ack, I transformed this Reviewed-by into an Acked-by for the two new patches for consistency. Thomas
Nolibc is useful for selftests as the test programs can be very small, and compiled with just a kernel crosscompiler, without userspace support. Currently nolibc is only usable with kselftest.h, not the more convenient to use kselftest_harness.h This series provides this compatibility by removing the usage of problematic libc features from the harness. Based on nolibc/for-next. The series is meant to be merged through the nolibc tree. Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> --- Changes in v4: - Drop patches for nolibc which where already applied - Preserve signatures of test functions for tests making assumptions about them drop 'selftests: harness: Always provide "self" and "variant"' add 'selftests: harness: Add "variant" and "self" to test metadata' adapt 'selftests: harness: Stop using setjmp()/longjmp()' - Validate test function signatures in harness selftest - Link to v3: https://lore.kernel.org/r/20250411-nolibc-kselftest-harness-v3-0-4d9c0295893f@linutronix.de Changes in v3: - Send patches to correct kselftest harness maintainers - Move harness selftest to dedicated directory - Add harness selftest to MAINTAINERS - Integrate harness selftest cleanup with the selftest framework - Consistently use "kselftest harness" in commit messages - Properly propagate kselftest harness failure - Link to v2: https://lore.kernel.org/r/20250407-nolibc-kselftest-harness-v2-0-f8812f76e930@linutronix.de Changes in v2: - Rebase unto v6.15-rc1 - Rename internal nolibc symbols - Handle edge case of waitpid(INT_MIN) == ESRCH - Fix arm configurations for final testing patch - Clean up global getopt.h variable declarations - Add Acks from Willy - Link to v1: https://lore.kernel.org/r/20250304-nolibc-kselftest-harness-v1-0-adca7cd231e2@linutronix.de --- Thomas Weißschuh (14): selftests: harness: Add kselftest harness selftest selftests: harness: Use C89 comment style selftests: harness: Ignore unused variant argument warning selftests: harness: Mark functions without prototypes static selftests: harness: Remove inline qualifier for wrappers selftests: harness: Remove dependency on libatomic selftests: harness: Implement test timeouts through pidfd selftests: harness: Don't set setup_completed for fixtureless tests selftests: harness: Move teardown conditional into test metadata selftests: harness: Add teardown callback to test metadata selftests: harness: Add "variant" and "self" to test metadata selftests: harness: Stop using setjmp()/longjmp() selftests: harness: Guard includes on nolibc HACK: selftests/nolibc: demonstrate usage of the kselftest harness MAINTAINERS | 1 + tools/testing/selftests/Makefile | 1 + tools/testing/selftests/kselftest_harness.h | 175 +- .../testing/selftests/kselftest_harness/.gitignore | 2 + tools/testing/selftests/kselftest_harness/Makefile | 7 + .../selftests/kselftest_harness/harness-selftest.c | 138 ++ .../kselftest_harness/harness-selftest.expected | 64 + .../kselftest_harness/harness-selftest.sh | 13 + tools/testing/selftests/nolibc/Makefile | 15 +- tools/testing/selftests/nolibc/harness-selftest.c | 1 + tools/testing/selftests/nolibc/nolibc-test.c | 1715 +------------------- tools/testing/selftests/nolibc/run-tests.sh | 2 +- 12 files changed, 313 insertions(+), 1821 deletions(-) --- base-commit: 2051d3b830c0889ae55e37e9e8ff0d43a4acd482 change-id: 20250130-nolibc-kselftest-harness-8b2c8cac43bf Best regards,