From d86670b837fbe1994e8b1ce9d1f56f1272038ad1 Mon Sep 17 00:00:00 2001 From: Jakub Kicinski Date: Tue, 3 Mar 2026 08:35:01 -0800 Subject: [PATCH 1/4] tools: ynl: rename TESTS variable to TEST_PROGS Use the standard kselftest variable naming for tests in the Makefile. NIPA depends on being able to selectively target tests by setting those variables on the CLI. Acked-by: Matthieu Baerts (NGI0) Reviewed-by: Hangbin Liu Reviewed-by: Donald Hunter Link: https://patch.msgid.link/20260303163504.2084981-2-kuba@kernel.org Signed-off-by: Jakub Kicinski --- tools/net/ynl/tests/Makefile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/net/ynl/tests/Makefile b/tools/net/ynl/tests/Makefile index c1df2e001255..ee4362ca286d 100644 --- a/tools/net/ynl/tests/Makefile +++ b/tools/net/ynl/tests/Makefile @@ -1,23 +1,23 @@ # SPDX-License-Identifier: GPL-2.0 # Makefile for YNL tests -TESTS := \ +TEST_PROGS := \ test_ynl_cli.sh \ test_ynl_ethtool.sh \ -# end of TESTS +# end of TEST_PROGS -all: $(TESTS) +all: $(TEST_PROGS) run_tests: - @for test in $(TESTS); do \ + @for test in $(TEST_PROGS); do \ ./$$test; \ done -install: $(TESTS) +install: $(TEST_PROGS) @mkdir -p $(DESTDIR)/usr/bin @mkdir -p $(DESTDIR)/usr/share/kselftest @cp ../../../testing/selftests/kselftest/ktap_helpers.sh $(DESTDIR)/usr/share/kselftest/ - @for test in $(TESTS); do \ + @for test in $(TEST_PROGS); do \ name=$$(basename $$test .sh); \ sed -e 's|^ynl=.*|ynl="ynl"|' \ -e 's|^ynl_ethtool=.*|ynl_ethtool="ynl-ethtool"|' \ From 3e90e00da96b6eddc91b5fffb19089d35af48695 Mon Sep 17 00:00:00 2001 From: Jakub Kicinski Date: Tue, 3 Mar 2026 08:35:02 -0800 Subject: [PATCH 2/4] tools: ynl: don't install tests in /usr/bin/ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Until commit 790792ebc960 ("tools: ynl: don't install tests") YNL selftests were installed with all the other YNL outputs. That's no longer the case, as tests are not really production artifacts. Let's not install them in /usr/bin at all, and mirror kselftest format more closely: For: make -C tools/net/ynl/tests/ install DESTDIR=tmp tmp/usr/share/kselftest ├── ktap_helpers.sh └── ynl ├── test_ynl_cli.sh └── test_ynl_ethtool.sh Acked-by: Matthieu Baerts (NGI0) Reviewed-by: Hangbin Liu Reviewed-by: Donald Hunter Link: https://patch.msgid.link/20260303163504.2084981-3-kuba@kernel.org Signed-off-by: Jakub Kicinski --- tools/net/ynl/tests/Makefile | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tools/net/ynl/tests/Makefile b/tools/net/ynl/tests/Makefile index ee4362ca286d..5045341300e2 100644 --- a/tools/net/ynl/tests/Makefile +++ b/tools/net/ynl/tests/Makefile @@ -14,16 +14,15 @@ run_tests: done install: $(TEST_PROGS) - @mkdir -p $(DESTDIR)/usr/bin - @mkdir -p $(DESTDIR)/usr/share/kselftest + @mkdir -p $(DESTDIR)/usr/share/kselftest/ynl @cp ../../../testing/selftests/kselftest/ktap_helpers.sh $(DESTDIR)/usr/share/kselftest/ @for test in $(TEST_PROGS); do \ - name=$$(basename $$test .sh); \ + name=$$(basename $$test); \ sed -e 's|^ynl=.*|ynl="ynl"|' \ -e 's|^ynl_ethtool=.*|ynl_ethtool="ynl-ethtool"|' \ -e 's|KSELFTEST_KTAP_HELPERS=.*|KSELFTEST_KTAP_HELPERS="/usr/share/kselftest/ktap_helpers.sh"|' \ - $$test > $(DESTDIR)/usr/bin/$$name; \ - chmod +x $(DESTDIR)/usr/bin/$$name; \ + $$test > $(DESTDIR)/usr/share/kselftest/ynl/$$name; \ + chmod +x $(DESTDIR)/usr/share/kselftest/ynl/$$name; \ done clean distclean: From 2bfc36f5ea163b9ea620c99cac9582245e3681ef Mon Sep 17 00:00:00 2001 From: Jakub Kicinski Date: Tue, 3 Mar 2026 08:35:03 -0800 Subject: [PATCH 3/4] tools: ynl: support INSTALL_PATH in the tests Makefile We have modelled the YNL tests after ksft to be able to reuse the NIPA wrappers. Make sure YNL honors INSTALL_PATH not just DESTDIR, ksft uses INSTALL_PATH. Acked-by: Matthieu Baerts (NGI0) Reviewed-by: Hangbin Liu Reviewed-by: Donald Hunter Link: https://patch.msgid.link/20260303163504.2084981-4-kuba@kernel.org Signed-off-by: Jakub Kicinski --- tools/net/ynl/tests/Makefile | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tools/net/ynl/tests/Makefile b/tools/net/ynl/tests/Makefile index 5045341300e2..ee717db12dff 100644 --- a/tools/net/ynl/tests/Makefile +++ b/tools/net/ynl/tests/Makefile @@ -6,6 +6,8 @@ TEST_PROGS := \ test_ynl_ethtool.sh \ # end of TEST_PROGS +INSTALL_PATH ?= $(DESTDIR)/usr/share/kselftest + all: $(TEST_PROGS) run_tests: @@ -14,15 +16,15 @@ run_tests: done install: $(TEST_PROGS) - @mkdir -p $(DESTDIR)/usr/share/kselftest/ynl - @cp ../../../testing/selftests/kselftest/ktap_helpers.sh $(DESTDIR)/usr/share/kselftest/ + @mkdir -p $(INSTALL_PATH)/ynl + @cp ../../../testing/selftests/kselftest/ktap_helpers.sh $(INSTALL_PATH)/ @for test in $(TEST_PROGS); do \ name=$$(basename $$test); \ sed -e 's|^ynl=.*|ynl="ynl"|' \ -e 's|^ynl_ethtool=.*|ynl_ethtool="ynl-ethtool"|' \ - -e 's|KSELFTEST_KTAP_HELPERS=.*|KSELFTEST_KTAP_HELPERS="/usr/share/kselftest/ktap_helpers.sh"|' \ - $$test > $(DESTDIR)/usr/share/kselftest/ynl/$$name; \ - chmod +x $(DESTDIR)/usr/share/kselftest/ynl/$$name; \ + -e 's|KSELFTEST_KTAP_HELPERS=.*|KSELFTEST_KTAP_HELPERS="$(INSTALL_PATH)/ktap_helpers.sh"|' \ + $$test > $(INSTALL_PATH)/ynl/$$name; \ + chmod +x $(INSTALL_PATH)/ynl/$$name; \ done clean distclean: From 32d6fd5832ad8773fa19192a3e6695cac5cd4379 Mon Sep 17 00:00:00 2001 From: Jakub Kicinski Date: Tue, 3 Mar 2026 08:35:04 -0800 Subject: [PATCH 4/4] tools: ynl: produce kselftest-list.txt from tests Executors will need kselftest-list.txt so create it when tests are installed. Acked-by: Matthieu Baerts (NGI0) Reviewed-by: Hangbin Liu Reviewed-by: Donald Hunter Link: https://patch.msgid.link/20260303163504.2084981-5-kuba@kernel.org Signed-off-by: Jakub Kicinski --- tools/net/ynl/tests/Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/net/ynl/tests/Makefile b/tools/net/ynl/tests/Makefile index ee717db12dff..eb166c9550db 100644 --- a/tools/net/ynl/tests/Makefile +++ b/tools/net/ynl/tests/Makefile @@ -26,6 +26,9 @@ install: $(TEST_PROGS) $$test > $(INSTALL_PATH)/ynl/$$name; \ chmod +x $(INSTALL_PATH)/ynl/$$name; \ done + @for test in $(TEST_PROGS); do \ + echo "ynl:$$test"; \ + done > $(INSTALL_PATH)/kselftest-list.txt clean distclean: @# Nothing to clean