On Mon, May 26, 2025 at 04:22:02PM +0200, Nicolas Schier wrote:
On Mon, Apr 07, 2025 at 09:42:46AM +0200, Thomas Weißschuh wrote:
Extend the example to show how to run a userspace executable.
Signed-off-by: Thomas Weißschuh thomas.weissschuh@linutronix.de
lib/kunit/.kunitconfig | 2 ++ lib/kunit/Makefile | 9 ++++++++- lib/kunit/kunit-example-test.c | 15 +++++++++++++++ lib/kunit/kunit-example-uapi.c | 22 ++++++++++++++++++++++ 4 files changed, 47 insertions(+), 1 deletion(-)
Adding this diff allows 'make clean' to clean up the UAPI test binary:
diff --git a/lib/Makefile b/lib/Makefile --- a/lib/Makefile +++ b/lib/Makefile @@ -112,8 +112,6 @@ CFLAGS_REMOVE_test_fpu_impl.o += $(CC_FLAGS_NO_FPU) # Some KUnit files (hooks.o) need to be built-in even when KUnit is a module, # so we can't just use obj-$(CONFIG_KUNIT). -ifdef CONFIG_KUNIT -obj-y += kunit/ -endif +obj-$(if $(CONFIG_KUNIT),y) += kunit/
Wouldn't the following be sufficient?
obj-y += kunit/
The the kunit Makefile doesn't do anything if CONFIG_KUNIT=y and AFAIK for directories obj-m and obj-y should do the same.
ifeq ($(CONFIG_DEBUG_KOBJECT),y) CFLAGS_kobject.o += -DDEBUG
plus the 'clean-files' addition below.
<snip>
diff --git a/lib/kunit/Makefile b/lib/kunit/Makefile index 989933dab9ad2267f376db470b876ce2a88711b4..1b6be12676f89cafa34f0093d8136b36f4cf5532 100644 --- a/lib/kunit/Makefile +++ b/lib/kunit/Makefile @@ -30,4 +30,11 @@ obj-$(CONFIG_KUNIT_TEST) += string-stream-test.o obj-$(CONFIG_KUNIT_TEST) += assert_test.o endif -obj-$(CONFIG_KUNIT_EXAMPLE_TEST) += kunit-example-test.o +userprogs += kunit-example-uapi
clean-files += kunit-example-uapi
This shouldn't be necessary as $(userprogs) is automatically added to __clean-files in scripts/Makefile.clean.
+kunit-example-uapi-userccflags := -static +kunit-example-uapi-nolibc := $(CONFIG_ARCH_HAS_NOLIBC) +blobs += kunit-example-uapi.blob.o
+obj-$(CONFIG_KUNIT_EXAMPLE_TEST) += kunit-example-mod.o +kunit-example-mod-y += kunit-example-test.o +kunit-example-mod-$(CONFIG_KUNIT_UAPI) += kunit-example-uapi.blob.o
-- Nicolas Schier