Skip to content

Commit

Permalink
netconsole: selftest: add task name append testing
Browse files Browse the repository at this point in the history
Add test coverage for the netconsole task name feature to the existing
sysdata selftest script. This extends the test infrastructure to verify
that task names are correctly appended when enabled and absent when
disabled.

The test validates that:
  - Task names appear in the expected format "taskname=<name>"
  - Task names are included when the feature is enabled
  - Task names are excluded when the feature is disabled
  - The feature works correctly alongside other sysdata fields like CPU

Signed-off-by: Breno Leitao <leitao@debian.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  • Loading branch information
Breno Leitao authored and Paolo Abeni committed Mar 4, 2025
1 parent 7010b61 commit d7a2522
Showing 1 changed file with 44 additions and 7 deletions.
51 changes: 44 additions & 7 deletions tools/testing/selftests/drivers/net/netcons_sysdata.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,38 @@ function set_cpu_nr() {
echo 1 > "${NETCONS_PATH}/userdata/cpu_nr_enabled"
}

# Enable the taskname to be appended to sysdata
function set_taskname() {
if [[ ! -f "${NETCONS_PATH}/userdata/taskname_enabled" ]]
then
echo "Not able to enable taskname sysdata append. Configfs not available in ${NETCONS_PATH}/userdata/taskname_enabled" >&2
exit "${ksft_skip}"
fi

echo 1 > "${NETCONS_PATH}/userdata/taskname_enabled"
}

# Disable the sysdata cpu_nr feature
function unset_cpu_nr() {
echo 0 > "${NETCONS_PATH}/userdata/cpu_nr_enabled"
}

# Test if MSG content and `cpu=${CPU}` exists in OUTPUT_FILE
function validate_sysdata_cpu_exists() {
# Once called, taskname=<..> will not be appended anymore
function unset_taskname() {
echo 0 > "${NETCONS_PATH}/userdata/taskname_enabled"
}

# Test if MSG contains sysdata
function validate_sysdata() {
# OUTPUT_FILE will contain something like:
# 6.11.1-0_fbk0_rc13_509_g30d75cea12f7,13,1822,115075213798,-;netconsole selftest: netcons_gtJHM
# userdatakey=userdatavalue
# cpu=X
# taskname=<taskname>

# Echo is what this test uses to create the message. See runtest()
# function
SENDER="echo"

if [ ! -f "$OUTPUT_FILE" ]; then
echo "FAIL: File was not generated." >&2
Expand All @@ -62,12 +83,19 @@ function validate_sysdata_cpu_exists() {
exit "${ksft_fail}"
fi

if ! grep -q "taskname=${SENDER}" "${OUTPUT_FILE}"; then
echo "FAIL: 'taskname=echo' not found in ${OUTPUT_FILE}" >&2
cat "${OUTPUT_FILE}" >&2
exit "${ksft_fail}"
fi

rm "${OUTPUT_FILE}"
pkill_socat
}

# Test if MSG content exists in OUTPUT_FILE but no `cpu=` string
function validate_sysdata_no_cpu() {
# Test if MSG content exists in OUTPUT_FILE but no `cpu=` and `taskname=`
# strings
function validate_no_sysdata() {
if [ ! -f "$OUTPUT_FILE" ]; then
echo "FAIL: File was not generated." >&2
exit "${ksft_fail}"
Expand All @@ -85,6 +113,12 @@ function validate_sysdata_no_cpu() {
exit "${ksft_fail}"
fi

if grep -q "taskname=" "${OUTPUT_FILE}"; then
echo "FAIL: 'taskname= found in ${OUTPUT_FILE}" >&2
cat "${OUTPUT_FILE}" >&2
exit "${ksft_fail}"
fi

rm "${OUTPUT_FILE}"
}

Expand Down Expand Up @@ -133,10 +167,12 @@ OUTPUT_FILE="/tmp/${TARGET}_1"
MSG="Test #1 from CPU${CPU}"
# Enable the auto population of cpu_nr
set_cpu_nr
# Enable taskname to be appended to sysdata
set_taskname
runtest
# Make sure the message was received in the dst part
# and exit
validate_sysdata_cpu_exists
validate_sysdata

#====================================================
# TEST #2
Expand All @@ -148,7 +184,7 @@ OUTPUT_FILE="/tmp/${TARGET}_2"
MSG="Test #2 from CPU${CPU}"
set_user_data
runtest
validate_sysdata_cpu_exists
validate_sysdata

# ===================================================
# TEST #3
Expand All @@ -160,8 +196,9 @@ OUTPUT_FILE="/tmp/${TARGET}_3"
MSG="Test #3 from CPU${CPU}"
# Enable the auto population of cpu_nr
unset_cpu_nr
unset_taskname
runtest
# At this time, cpu= shouldn't be present in the msg
validate_sysdata_no_cpu
validate_no_sysdata

exit "${ksft_pass}"

0 comments on commit d7a2522

Please sign in to comment.