selftests/powerpc: Fix emit_tests to work with run_kselftest.sh
authorMichael Ellerman <mpe@ellerman.id.au>
Thu, 21 Sep 2023 07:26:10 +0000 (17:26 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 22 Sep 2023 10:29:48 +0000 (20:29 +1000)
In order to use run_kselftest.sh the list of tests must be emitted to
populate kselftest-list.txt.

The powerpc Makefile is written to use EMIT_TESTS. But support for
EMIT_TESTS was dropped in commit d4e59a536f50 ("selftests: Use runner.sh
for emit targets"). Although prior to that commit a548de0fe8e1
("selftests: lib.mk: add test execute bit check to EMIT_TESTS") had
already broken run_kselftest.sh for powerpc due to the executable check
using the wrong path.

It can be fixed by replacing the EMIT_TESTS definitions with actual
emit_tests rules in the powerpc Makefiles. This makes run_kselftest.sh
able to run powerpc tests:

  $ cd linux
  $ export ARCH=powerpc
  $ export CROSS_COMPILE=powerpc64le-linux-gnu-
  $ make headers
  $ make -j -C tools/testing/selftests install
  $ grep -c "^powerpc" tools/testing/selftests/kselftest_install/kselftest-list.txt
  182

Fixes: d4e59a536f50 ("selftests: Use runner.sh for emit targets")
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20230921072623.828772-1-mpe@ellerman.id.au
tools/testing/selftests/powerpc/Makefile
tools/testing/selftests/powerpc/pmu/Makefile

index 49f2ad1793fd98a09cb403efbf8aa37d40c85d6f..7ea42fa02eabd94c7f62977eea54f1d453cba5d9 100644 (file)
@@ -59,12 +59,11 @@ override define INSTALL_RULE
        done;
 endef
 
-override define EMIT_TESTS
+emit_tests:
        +@for TARGET in $(SUB_DIRS); do \
                BUILD_TARGET=$(OUTPUT)/$$TARGET;        \
-               $(MAKE) OUTPUT=$$BUILD_TARGET -s -C $$TARGET emit_tests;\
+               $(MAKE) OUTPUT=$$BUILD_TARGET -s -C $$TARGET $@;\
        done;
-endef
 
 override define CLEAN
        +@for TARGET in $(SUB_DIRS); do \
@@ -77,4 +76,4 @@ endef
 tags:
        find . -name '*.c' -o -name '*.h' | xargs ctags
 
-.PHONY: tags $(SUB_DIRS)
+.PHONY: tags $(SUB_DIRS) emit_tests
index 2b95e44d20ff93b356850c5e613b5f17a37f1a4a..a284fa874a9f1f9ead2509e021b2debbf4f3825c 100644 (file)
@@ -30,13 +30,14 @@ override define RUN_TESTS
        +TARGET=event_code_tests; BUILD_TARGET=$$OUTPUT/$$TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests
 endef
 
-DEFAULT_EMIT_TESTS := $(EMIT_TESTS)
-override define EMIT_TESTS
-       $(DEFAULT_EMIT_TESTS)
+emit_tests:
+       for TEST in $(TEST_GEN_PROGS); do \
+               BASENAME_TEST=`basename $$TEST`;        \
+               echo "$(COLLECTION):$$BASENAME_TEST";   \
+       done
        +TARGET=ebb; BUILD_TARGET=$$OUTPUT/$$TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -s -C $$TARGET emit_tests
        +TARGET=sampling_tests; BUILD_TARGET=$$OUTPUT/$$TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -s -C $$TARGET emit_tests
        +TARGET=event_code_tests; BUILD_TARGET=$$OUTPUT/$$TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -s -C $$TARGET emit_tests
-endef
 
 DEFAULT_INSTALL_RULE := $(INSTALL_RULE)
 override define INSTALL_RULE
@@ -64,4 +65,4 @@ sampling_tests:
 event_code_tests:
        TARGET=$@; BUILD_TARGET=$$OUTPUT/$$TARGET; mkdir -p $$BUILD_TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -k -C $$TARGET all
 
-.PHONY: all run_tests ebb sampling_tests event_code_tests
+.PHONY: all run_tests ebb sampling_tests event_code_tests emit_tests