Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bd00cc36 authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'selftests-netdevsim-add-devlink-paramstests'



Jiri Pirko says:

====================
selftests: netdevsim: add devlink paramstests

The first patch is just a helper addition as a dependency of the actual
test in patch number two.
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 873343e7 dc8a670a
Loading
Loading
Loading
Loading
+61 −1
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@

lib_dir=$(dirname $0)/../../../net/forwarding

ALL_TESTS="fw_flash_test"
ALL_TESTS="fw_flash_test params_test"
NUM_NETIFS=0
source $lib_dir/lib.sh

@@ -30,6 +30,66 @@ fw_flash_test()
	log_test "fw flash test"
}

param_get()
{
	local name=$1

	cmd_jq "devlink dev param show $DL_HANDLE name $name -j" \
	       '.[][][].values[] | select(.cmode == "driverinit").value'
}

param_set()
{
	local name=$1
	local value=$2

	devlink dev param set $DL_HANDLE name $name cmode driverinit value $value
}

check_value()
{
	local name=$1
	local phase_name=$2
	local expected_param_value=$3
	local expected_debugfs_value=$4
	local value

	value=$(param_get $name)
	check_err $? "Failed to get $name param value"
	[ "$value" == "$expected_param_value" ]
	check_err $? "Unexpected $phase_name $name param value"
	value=$(<$DEBUGFS_DIR/$name)
	check_err $? "Failed to get $name debugfs value"
	[ "$value" == "$expected_debugfs_value" ]
	check_err $? "Unexpected $phase_name $name debugfs value"
}

params_test()
{
	RET=0

	local max_macs
	local test1

	check_value max_macs initial 32 32
	check_value test1 initial true Y

	param_set max_macs 16
	check_err $? "Failed to set max_macs param value"
	param_set test1 false
	check_err $? "Failed to set test1 param value"

	check_value max_macs post-set 16 32
	check_value test1 post-set false Y

	devlink dev reload $DL_HANDLE

	check_value max_macs post-reload 16 16
	check_value test1 post-reload false N

	log_test "params test"
}

setup_prepare()
{
	modprobe netdevsim
+19 −0
Original line number Diff line number Diff line
@@ -250,6 +250,25 @@ setup_wait()
	sleep $WAIT_TIME
}

cmd_jq()
{
	local cmd=$1
	local jq_exp=$2
	local ret
	local output

	output="$($cmd)"
	# it the command fails, return error right away
	ret=$?
	if [[ $ret -ne 0 ]]; then
		return $ret
	fi
	output=$(echo $output | jq -r "$jq_exp")
	echo $output
	# return success only in case of non-empty output
	[ ! -z "$output" ]
}

lldpad_app_wait_set()
{
	local dev=$1; shift
+4 −13
Original line number Diff line number Diff line
@@ -8,18 +8,9 @@ tc_check_packets()
	local id=$1
	local handle=$2
	local count=$3
	local ret

	output="$(tc -j -s filter show $id)"
	# workaround the jq bug which causes jq to return 0 in case input is ""
	ret=$?
	if [[ $ret -ne 0 ]]; then
		return $ret
	fi
	echo $output | \
		jq -e ".[] \
		| select(.options.handle == $handle) \
		| select(.options.actions[0].stats.packets == $count)" \
	cmd_jq "tc -j -s filter show $id" \
	       ".[] | select(.options.handle == $handle) | \
	              select(.options.actions[0].stats.packets == $count)" \
	       &> /dev/null
	return $?
}