Skip to content

Commit bd00cc3

Browse files
committed
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: David S. Miller <[email protected]>
2 parents 873343e + dc8a670 commit bd00cc3

File tree

3 files changed

+84
-14
lines changed

3 files changed

+84
-14
lines changed

tools/testing/selftests/drivers/net/netdevsim/devlink.sh

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

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

6-
ALL_TESTS="fw_flash_test"
6+
ALL_TESTS="fw_flash_test params_test"
77
NUM_NETIFS=0
88
source $lib_dir/lib.sh
99

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

33+
param_get()
34+
{
35+
local name=$1
36+
37+
cmd_jq "devlink dev param show $DL_HANDLE name $name -j" \
38+
'.[][][].values[] | select(.cmode == "driverinit").value'
39+
}
40+
41+
param_set()
42+
{
43+
local name=$1
44+
local value=$2
45+
46+
devlink dev param set $DL_HANDLE name $name cmode driverinit value $value
47+
}
48+
49+
check_value()
50+
{
51+
local name=$1
52+
local phase_name=$2
53+
local expected_param_value=$3
54+
local expected_debugfs_value=$4
55+
local value
56+
57+
value=$(param_get $name)
58+
check_err $? "Failed to get $name param value"
59+
[ "$value" == "$expected_param_value" ]
60+
check_err $? "Unexpected $phase_name $name param value"
61+
value=$(<$DEBUGFS_DIR/$name)
62+
check_err $? "Failed to get $name debugfs value"
63+
[ "$value" == "$expected_debugfs_value" ]
64+
check_err $? "Unexpected $phase_name $name debugfs value"
65+
}
66+
67+
params_test()
68+
{
69+
RET=0
70+
71+
local max_macs
72+
local test1
73+
74+
check_value max_macs initial 32 32
75+
check_value test1 initial true Y
76+
77+
param_set max_macs 16
78+
check_err $? "Failed to set max_macs param value"
79+
param_set test1 false
80+
check_err $? "Failed to set test1 param value"
81+
82+
check_value max_macs post-set 16 32
83+
check_value test1 post-set false Y
84+
85+
devlink dev reload $DL_HANDLE
86+
87+
check_value max_macs post-reload 16 16
88+
check_value test1 post-reload false N
89+
90+
log_test "params test"
91+
}
92+
3393
setup_prepare()
3494
{
3595
modprobe netdevsim

tools/testing/selftests/net/forwarding/lib.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,25 @@ setup_wait()
250250
sleep $WAIT_TIME
251251
}
252252

253+
cmd_jq()
254+
{
255+
local cmd=$1
256+
local jq_exp=$2
257+
local ret
258+
local output
259+
260+
output="$($cmd)"
261+
# it the command fails, return error right away
262+
ret=$?
263+
if [[ $ret -ne 0 ]]; then
264+
return $ret
265+
fi
266+
output=$(echo $output | jq -r "$jq_exp")
267+
echo $output
268+
# return success only in case of non-empty output
269+
[ ! -z "$output" ]
270+
}
271+
253272
lldpad_app_wait_set()
254273
{
255274
local dev=$1; shift

tools/testing/selftests/net/forwarding/tc_common.sh

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,9 @@ tc_check_packets()
88
local id=$1
99
local handle=$2
1010
local count=$3
11-
local ret
1211

13-
output="$(tc -j -s filter show $id)"
14-
# workaround the jq bug which causes jq to return 0 in case input is ""
15-
ret=$?
16-
if [[ $ret -ne 0 ]]; then
17-
return $ret
18-
fi
19-
echo $output | \
20-
jq -e ".[] \
21-
| select(.options.handle == $handle) \
22-
| select(.options.actions[0].stats.packets == $count)" \
23-
&> /dev/null
24-
return $?
12+
cmd_jq "tc -j -s filter show $id" \
13+
".[] | select(.options.handle == $handle) | \
14+
select(.options.actions[0].stats.packets == $count)" \
15+
&> /dev/null
2516
}

0 commit comments

Comments
 (0)