Expands the self-tests to include the 'release' feature in sysdata. Verifies that enabling the 'release' feature appends the correct data and ensures that disabling it functions as expected. When enabled, the message should have an item similar to in the userdata: `release=$(uname -r)` Signed-off-by: Breno Leitao <leitao@xxxxxxxxxx> --- .../selftests/drivers/net/netcons_sysdata.sh | 44 ++++++++++++++++++++-- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/drivers/net/netcons_sysdata.sh b/tools/testing/selftests/drivers/net/netcons_sysdata.sh index f351206ed1bda..a737e377bf085 100755 --- a/tools/testing/selftests/drivers/net/netcons_sysdata.sh +++ b/tools/testing/selftests/drivers/net/netcons_sysdata.sh @@ -42,6 +42,17 @@ function set_taskname() { echo 1 > "${NETCONS_PATH}/userdata/taskname_enabled" } +# Enable the release to be appended to sysdata +function set_release() { + if [[ ! -f "${NETCONS_PATH}/userdata/release_enabled" ]] + then + echo "Not able to enable release sysdata append. Configfs not available in ${NETCONS_PATH}/userdata/release_enabled" >&2 + exit "${ksft_skip}" + fi + + echo 1 > "${NETCONS_PATH}/userdata/release_enabled" +} + # Disable the sysdata cpu_nr feature function unset_cpu_nr() { echo 0 > "${NETCONS_PATH}/userdata/cpu_nr_enabled" @@ -52,6 +63,10 @@ function unset_taskname() { echo 0 > "${NETCONS_PATH}/userdata/taskname_enabled" } +function unset_release() { + echo 0 > "${NETCONS_PATH}/userdata/release_enabled" +} + # Test if MSG contains sysdata function validate_sysdata() { # OUTPUT_FILE will contain something like: @@ -93,6 +108,21 @@ function validate_sysdata() { pkill_socat } +function validate_release() { + RELEASE=$(uname -r) + + if [ ! -f "$OUTPUT_FILE" ]; then + echo "FAIL: File was not generated." >&2 + exit "${ksft_fail}" + fi + + if ! grep -q "release=${RELEASE}" "${OUTPUT_FILE}"; then + echo "FAIL: 'release=${RELEASE}' not found in ${OUTPUT_FILE}" >&2 + cat "${OUTPUT_FILE}" >&2 + exit "${ksft_fail}" + fi +} + # Test if MSG content exists in OUTPUT_FILE but no `cpu=` and `taskname=` # strings function validate_no_sysdata() { @@ -119,6 +149,12 @@ function validate_no_sysdata() { exit "${ksft_fail}" fi + if grep -q "release=" "${OUTPUT_FILE}"; then + echo "FAIL: 'release= found in ${OUTPUT_FILE}" >&2 + cat "${OUTPUT_FILE}" >&2 + exit "${ksft_fail}" + fi + rm "${OUTPUT_FILE}" } @@ -169,9 +205,11 @@ MSG="Test #1 from CPU${CPU}" set_cpu_nr # Enable taskname to be appended to sysdata set_taskname +set_release runtest # Make sure the message was received in the dst part # and exit +validate_release validate_sysdata #==================================================== @@ -184,19 +222,19 @@ OUTPUT_FILE="/tmp/${TARGET}_2" MSG="Test #2 from CPU${CPU}" set_user_data runtest +validate_release validate_sysdata # =================================================== # TEST #3 -# Unset cpu_nr, so, no CPU should be appended. -# userdata is still set +# Unset all sysdata, fail if any userdata is set # =================================================== CPU=$((RANDOM % $(nproc))) OUTPUT_FILE="/tmp/${TARGET}_3" MSG="Test #3 from CPU${CPU}" -# Enable the auto population of cpu_nr unset_cpu_nr unset_taskname +unset_release runtest # At this time, cpu= shouldn't be present in the msg validate_no_sysdata -- 2.47.1