Thread (7 messages) flat view 7 messages, 6 authors, 10d ago

Re: [PATCH net] selftests/drivers/net: include lib/sh/*.sh

From: netdev-bot+sashiko@kernel.org
Date: 2026-09-08 07:29:17
Also in: linux-kselftest, lkml, virtualization

Thank you for your contribution! Sashiko AI review found 1 potential
issue(s) to consider:

Critical: 0 · High: 0 · Medium: 1 · Low: 0

- [Medium] Incomplete fix:
  `tools/testing/selftests/drivers/net/netdevsim/Makefile` is the only…

--

selftests/drivers/net: include lib/sh/*.sh

This adds $(wildcard ../../net/lib/sh/*.sh) to TEST_INCLUDES in the
drivers/net selftest Makefiles so that net/lib/sh/defer.sh gets installed
by "make install", and sorts the TEST_INCLUDES lists while at it.
quoted hunk ↗ jump to hunk
diff --git a/tools/testing/selftests/drivers/net/Makefile b/tools/testing/selftests/drivers/net/Makefile
index d5bf4cb638a8c..ab39c2e508f0a 100644
--- a/tools/testing/selftests/drivers/net/Makefile
+++ b/tools/testing/selftests/drivers/net/Makefile
@@ -3,6 +3,7 @@ CFLAGS += $(KHDR_INCLUDES)
 
 TEST_INCLUDES := $(wildcard lib/py/*.py) \
 		 $(wildcard lib/sh/*.sh) \
+		 $(wildcard ../../net/lib/sh/*.sh) \
 		 ../../net/lib.sh \
 
 TEST_GEN_FILES := \
[Severity: Medium]
Was drivers/net/netdevsim intentionally left out?  It is the only Makefile
under tools/testing/selftests/drivers/net/ that this patch does not touch,
and it defines no TEST_INCLUDES at all:

tools/testing/selftests/drivers/net/netdevsim/Makefile:
	TEST_PROGS := \
		devlink.sh \
		...
		peer.sh \
		...
	# end of TEST_PROGS

	TEST_FILES := \
		ethtool-common.sh
	# end of TEST_FILES

	include ../../../lib.mk

Its installed scripts do consume the net shell libraries.  peer.sh does:

	lib_dir=$(dirname $0)/../../../net
	source $lib_dir/lib.sh

and devlink.sh, devlink_in_netns.sh, devlink_trap.sh, fib.sh,
fib_notifications.sh, hw_stats_l3.sh, nexthop.sh and psample.sh do:

	lib_dir=$(dirname $0)/../../../net/forwarding
	source $lib_dir/lib.sh

which reaches net/lib.sh, and that unconditionally sources defer.sh:

tools/testing/selftests/net/lib.sh:
	net_dir=$(dirname "$(readlink -e "${BASH_SOURCE[0]}")")
	source "$net_dir/lib/sh/defer.sh"

There is also no automatic fallback for this target, since the top-level
Makefile only matches the exact strings net, drivers/net and
drivers/net/hw:

tools/testing/selftests/Makefile:
	# Networking tests want the net/lib target, include it automatically
	ifneq ($(filter net drivers/net drivers/net/hw,$(TARGETS)),)
	ifeq ($(filter net/lib,$(TARGETS)),)
		INSTALL_DEP_TARGETS := net/lib
	endif
	endif

So does the failure quoted in the changelog still reproduce with:

	make INSTALL_PATH=/tmp/kself TARGETS=drivers/net/netdevsim \
		-C tools/testing/selftests install

The commit message says the patch "adds a wildcard to include all shell
files for drivers/net tests that consume net lib.sh" — should that claim be
narrowed, or netdevsim covered too?

Note the gap in netdevsim is wider than defer.sh: adding only
$(wildcard ../../../net/lib/sh/*.sh) would not be enough, since
../../../net/lib.sh and ../../../net/forwarding/lib.sh are not installed
either (plus devlink_lib.sh, fib_offload_lib.sh and tc_common.sh, which
several of those scripts source).

For reference, drivers/net/dsa is also not in the default TARGETS list and
this patch does cover it, and drivers/net/{mlxsw,ocelot,microchip} have no
Makefile so they are not installable targets at all.

-- 
Sashiko AI review · https://netdev-ai.bots.linux.dev/sashiko/#/patchset/20260907-selftest_lib_defer-v1-1-8af94645aaa3%40kylinos.cn
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help