public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/32] kselftest harness and nolibc compatibility
@ 2025-04-11  9:00 Thomas Weißschuh
  2025-04-11  9:00 ` [PATCH v3 01/32] selftests: harness: Add kselftest harness selftest Thomas Weißschuh
                   ` (32 more replies)
  0 siblings, 33 replies; 46+ messages in thread
From: Thomas Weißschuh @ 2025-04-11  9:00 UTC (permalink / raw)
  To: Shuah Khan, Shuah Khan, Willy Tarreau, Thomas Weißschuh,
	Kees Cook
  Cc: Andy Lutomirski, Will Drewry, linux-kernel, linux-kselftest,
	Thomas Weißschuh

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 adding new features to nolibc
and removing the usage of problematic features from the harness.

The first half of the series are changes to the harness, the second one
are for nolibc. Both parts are very independent and should go through
different trees.
The last patch is not meant to be applied and serves as test that
everything works together correctly.

Signed-off-by: Thomas Weißschuh <thomas.weissschuh@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 (32):
      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: Always provide "self" and "variant"
      selftests: harness: Move teardown conditional into test metadata
      selftests: harness: Add teardown callback to test metadata
      selftests: harness: Stop using setjmp()/longjmp()
      selftests: harness: Guard includes on nolibc
      tools/nolibc: handle intmax_t/uintmax_t in printf
      tools/nolibc: use intmax definitions from compiler
      tools/nolibc: use pselect6_time64 if available
      tools/nolibc: use ppoll_time64 if available
      tools/nolibc: add tolower() and toupper()
      tools/nolibc: add _exit()
      tools/nolibc: add setpgrp()
      tools/nolibc: implement waitpid() in terms of waitid()
      Revert "selftests/nolibc: use waitid() over waitpid()"
      tools/nolibc: add dprintf() and vdprintf()
      tools/nolibc: add getopt()
      tools/nolibc: allow different write callbacks in printf
      tools/nolibc: allow limiting of printf destination size
      tools/nolibc: add snprintf() and friends
      selftests/nolibc: use snprintf() for printf tests
      selftests/nolibc: rename vfprintf test suite
      selftests/nolibc: add test for snprintf() truncation
      tools/nolibc: implement width padding in printf()
      HACK: selftests/nolibc: demonstrate usage of the kselftest harness

 MAINTAINERS                                        |    1 +
 tools/include/nolibc/Makefile                      |    1 +
 tools/include/nolibc/getopt.h                      |  101 ++
 tools/include/nolibc/nolibc.h                      |    1 +
 tools/include/nolibc/stdint.h                      |    4 +-
 tools/include/nolibc/stdio.h                       |  127 +-
 tools/include/nolibc/string.h                      |   17 +
 tools/include/nolibc/sys.h                         |  105 +-
 tools/testing/selftests/Makefile                   |    1 +
 tools/testing/selftests/kselftest_harness.h        |  181 +-
 .../testing/selftests/kselftest_harness/.gitignore |    2 +
 tools/testing/selftests/kselftest_harness/Makefile |    7 +
 .../selftests/kselftest_harness/harness-selftest.c |  129 ++
 .../kselftest_harness/harness-selftest.expected    |   62 +
 .../kselftest_harness/harness-selftest.sh          |   13 +
 tools/testing/selftests/nolibc/Makefile            |   13 +-
 tools/testing/selftests/nolibc/harness-selftest.c  |    1 +
 tools/testing/selftests/nolibc/nolibc-test.c       | 1729 +-------------------
 tools/testing/selftests/nolibc/run-tests.sh        |    2 +-
 19 files changed, 637 insertions(+), 1860 deletions(-)
---
base-commit: 0af2f6be1b4281385b618cb86ad946eded089ac8
change-id: 20250130-nolibc-kselftest-harness-8b2c8cac43bf

Best regards,
-- 
Thomas Weißschuh <thomas.weissschuh@linutronix.de>


^ permalink raw reply	[flat|nested] 46+ messages in thread

end of thread, other threads:[~2025-05-05 14:07 UTC | newest]

Thread overview: 46+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-11  9:00 [PATCH v3 00/32] kselftest harness and nolibc compatibility Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 01/32] selftests: harness: Add kselftest harness selftest Thomas Weißschuh
2025-04-18 16:56   ` Muhammad Usama Anjum
2025-04-11  9:00 ` [PATCH v3 02/32] selftests: harness: Use C89 comment style Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 03/32] selftests: harness: Ignore unused variant argument warning Thomas Weißschuh
2025-04-18 16:57   ` Muhammad Usama Anjum
2025-04-11  9:00 ` [PATCH v3 04/32] selftests: harness: Mark functions without prototypes static Thomas Weißschuh
2025-04-18 16:59   ` Muhammad Usama Anjum
2025-04-11  9:00 ` [PATCH v3 05/32] selftests: harness: Remove inline qualifier for wrappers Thomas Weißschuh
2025-04-18 17:00   ` Muhammad Usama Anjum
2025-04-11  9:00 ` [PATCH v3 06/32] selftests: harness: Remove dependency on libatomic Thomas Weißschuh
2025-04-18 17:16   ` Muhammad Usama Anjum
2025-04-11  9:00 ` [PATCH v3 07/32] selftests: harness: Implement test timeouts through pidfd Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 08/32] selftests: harness: Don't set setup_completed for fixtureless tests Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 09/32] selftests: harness: Always provide "self" and "variant" Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 10/32] selftests: harness: Move teardown conditional into test metadata Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 11/32] selftests: harness: Add teardown callback to " Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 12/32] selftests: harness: Stop using setjmp()/longjmp() Thomas Weißschuh
2025-05-05 10:50   ` Mark Brown
2025-05-05 14:07     ` Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 13/32] selftests: harness: Guard includes on nolibc Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 14/32] tools/nolibc: handle intmax_t/uintmax_t in printf Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 15/32] tools/nolibc: use intmax definitions from compiler Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 16/32] tools/nolibc: use pselect6_time64 if available Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 17/32] tools/nolibc: use ppoll_time64 " Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 18/32] tools/nolibc: add tolower() and toupper() Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 19/32] tools/nolibc: add _exit() Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 20/32] tools/nolibc: add setpgrp() Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 21/32] tools/nolibc: implement waitpid() in terms of waitid() Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 22/32] Revert "selftests/nolibc: use waitid() over waitpid()" Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 23/32] tools/nolibc: add dprintf() and vdprintf() Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 24/32] tools/nolibc: add getopt() Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 25/32] tools/nolibc: allow different write callbacks in printf Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 26/32] tools/nolibc: allow limiting of printf destination size Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 27/32] tools/nolibc: add snprintf() and friends Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 28/32] selftests/nolibc: use snprintf() for printf tests Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 29/32] selftests/nolibc: rename vfprintf test suite Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 30/32] selftests/nolibc: add test for snprintf() truncation Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 31/32] tools/nolibc: implement width padding in printf() Thomas Weißschuh
2025-04-11  9:00 ` [PATCH v3 32/32] HACK: selftests/nolibc: demonstrate usage of the kselftest harness Thomas Weißschuh
2025-04-22  8:48 ` [PATCH v3 00/32] kselftest harness and nolibc compatibility Thomas Weißschuh
2025-04-22  8:51   ` Willy Tarreau
2025-04-24 20:06     ` Shuah Khan
2025-04-29 18:52       ` Shuah Khan
2025-04-29 19:25         ` Thomas Weißschuh
2025-04-30 18:53       ` Kees Cook

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox