-
-
Notifications
You must be signed in to change notification settings - Fork 44
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
netconsole: selftest: verify userdata entry limit
Add a new selftest for netconsole that tests the userdata entry limit functionality. The test performs two key verifications: 1. Create MAX_USERDATA_ITEMS (16) userdata entries successfully 2. Confirm that attempting to create an additional userdata entry fails The selftest script uses the netcons library and checks the behavior by attempting to create entries beyond the maximum allowed limit. Signed-off-by: Breno Leitao <[email protected]> Tested-by: Simon Horman <[email protected]> Reviewed-by: Simon Horman <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
- Loading branch information
Showing
3 changed files
with
69 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -16171,7 +16171,7 @@ S: Maintained | |
F: Documentation/networking/netconsole.rst | ||
F: drivers/net/netconsole.c | ||
F: tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh | ||
F: tools/testing/selftests/drivers/net/netcons_basic.sh | ||
F: tools/testing/selftests/drivers/net/netcons\* | ||
|
||
NETDEVSIM | ||
M: Jakub Kicinski <[email protected]> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
#!/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 <[email protected]> | ||
|
||
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=16 | ||
|
||
# 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}" |