Files
linux/tools/testing/selftests/drivers/net/netconsole/netcons_overflow.sh
Andre Carvalho b3827c91cc netconsole: selftests: Move netconsole selftests to separate target
This patch moves netconsole selftests from drivers/net to its own target
in drivers/net/netconsole.

This change helps saving some resources from CI since tests in
drivers/net automatically run against real hardware which are not used
by netconsole tests as they rely solely on netdevsim.

lib_netcons.sh is kept under drivers/net/lib since it is also used by
bonding selftests. Finally, drivers/net config remains unchanged as
netpoll_basic.py requires netconsole (and does leverage real HW testing).

Reviewed-by: Breno Leitao <leitao@debian.org>
Signed-off-by: Andre Carvalho <asantostc@gmail.com>
Link: https://patch.msgid.link/20260127-netcons-selftest-target-v2-1-f509ab65b3bc@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-01-29 17:30:48 -08:00

68 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
# SPDX-License-Identifier: GPL-2.0
# This test verifies that users can successfully create up to
# MAX_USERDATA_ITEMS userdata entries without encountering any failures.
#
# Additionally, it tests for expected failure when attempting to exceed this
# maximum limit.
#
# Author: Breno Leitao <leitao@debian.org>
set -euo pipefail
SCRIPTDIR=$(dirname "$(readlink -e "${BASH_SOURCE[0]}")")
source "${SCRIPTDIR}"/../lib/sh/lib_netcons.sh
# This is coming from netconsole code. Check for it in drivers/net/netconsole.c
MAX_USERDATA_ITEMS=256
# Function to create userdata entries
function create_userdata_max_entries() {
# All these keys should be created without any error
for i in $(seq $MAX_USERDATA_ITEMS)
do
# USERDATA_KEY is used by set_user_data
USERDATA_KEY="key"${i}
set_user_data
done
}
# Function to verify the entry limit
function verify_entry_limit() {
# Allowing the test to fail without exiting, since the next command
# will fail
set +e
mkdir "${NETCONS_PATH}/userdata/key_that_will_fail" 2> /dev/null
ret="$?"
set -e
if [ "$ret" -eq 0 ];
then
echo "Adding more than ${MAX_USERDATA_ITEMS} entries in userdata should fail, but it didn't" >&2
ls "${NETCONS_PATH}/userdata/" >&2
exit "${ksft_fail}"
fi
}
# ========== #
# Start here #
# ========== #
modprobe netdevsim 2> /dev/null || true
modprobe netconsole 2> /dev/null || true
# Check for basic system dependency and exit if not found
check_for_dependencies
# Remove the namespace, interfaces and netconsole target on exit
trap cleanup EXIT
# Create one namespace and two interfaces
set_network
# Create a dynamic target for netconsole
create_dynamic_target
# populate the maximum number of supported keys in userdata
create_userdata_max_entries
# Verify an additional entry is not allowed
verify_entry_limit
exit "${ksft_pass}"