On Sun, Nov 16, 2025 at 05:14:05PM +0000, Andre Carvalho wrote:
Introduce a new netconsole selftest to validate that netconsole is able to resume a deactivated target when the low level interface comes back.
The test setups the network using netdevsim, creates a netconsole target and then remove/add netdevsim in order to bring the same interfaces back. Afterwards, the test validates that the target works as expected.
Targets are created via cmdline parameters to the module to ensure that we are able to resume targets that were bound by mac and interface name.
Signed-off-by: Andre Carvalho asantostc@gmail.com
tools/testing/selftests/drivers/net/Makefile | 1 + .../selftests/drivers/net/lib/sh/lib_netcons.sh | 35 ++++++-- .../selftests/drivers/net/netcons_resume.sh | 97 ++++++++++++++++++++++ 3 files changed, 128 insertions(+), 5 deletions(-)
diff --git a/tools/testing/selftests/drivers/net/Makefile b/tools/testing/selftests/drivers/net/Makefile index 33f4816216ec..7dc9e5b23d5b 100644 --- a/tools/testing/selftests/drivers/net/Makefile +++ b/tools/testing/selftests/drivers/net/Makefile @@ -17,6 +17,7 @@ TEST_PROGS := \ netcons_cmdline.sh \ netcons_fragmented_msg.sh \ netcons_overflow.sh \
- netcons_resume.sh \ netcons_sysdata.sh \ netcons_torture.sh \ netpoll_basic.py \
diff --git a/tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh b/tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh index 87f89fd92f8c..6157db660067 100644 --- a/tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh +++ b/tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh @@ -203,19 +203,21 @@ function do_cleanup() { function cleanup_netcons() { # delete netconsole dynamic reconfiguration # do not fail if the target is already disabled
- if [[ ! -d "${NETCONS_PATH}" ]]
- local TARGET_PATH=${1:-${NETCONS_PATH}}
- if [[ ! -d "${TARGET_PATH}" ]] then # in some cases this is called before netcons path is created return fi
- if [[ $(cat "${NETCONS_PATH}"/enabled) != 0 ]]
- if [[ $(cat "${TARGET_PATH}"/enabled) != 0 ]] then
echo 0 > "${NETCONS_PATH}"/enabled || true
fi # Remove all the keys that got created during the selftestecho 0 > "${TARGET_PATH}"/enabled || true
- find "${NETCONS_PATH}/userdata/" -mindepth 1 -type d -delete
- find "${TARGET_PATH}/userdata/" -mindepth 1 -type d -delete # Remove the configfs entry
- rmdir "${NETCONS_PATH}"
- rmdir "${TARGET_PATH}"
} function cleanup() { @@ -377,6 +379,29 @@ function check_netconsole_module() { fi } +function wait_target_state() {
- local TARGET=${1}
- local STATE=${2}
- local TARGET_PATH="${NETCONS_CONFIGFS}"/"${TARGET}"
- local ENABLED=0
- if [ "${STATE}" == "enabled" ]
- then
local ENABLED=1
ENABLED is already marked as local above. "local" here is unnecessary.
Other than that, and with the "trap" fix, it might be in good shape.
Thanks for this selftest. --breno
-- pw-bot: cr