Message ID | 20190814152604.6385-3-jiri@resnulli.us |
---|---|
State | Changes Requested |
Delegated to: | David Miller |
Headers | show |
Series | selftests: netdevsim: add devlink paramstests | expand |
On Wed, 14 Aug 2019 17:26:04 +0200, Jiri Pirko wrote: > From: Jiri Pirko <jiri@mellanox.com> > > Test recently added netdevsim devlink param implementation. > > Signed-off-by: Jiri Pirko <jiri@mellanox.com> > --- > v1->v2: > -using cmd_jq helper Still failing here :( # ./devlink.sh TEST: fw flash test [ OK ] TEST: params test [FAIL] Failed to get test1 param value TEST: regions test [ OK ] # jq --version jq-1.5-1-a5b5cbe # echo '{ "a" : false }' | jq -e -r '.[]' false # echo $? 1 On another machine: $ echo '{ "a" : false }' | jq -e -r '.[]' false $ echo $? 1 Did you mean to drop the -e ?
Thu, Aug 15, 2019 at 03:09:00AM CEST, jakub.kicinski@netronome.com wrote: >On Wed, 14 Aug 2019 17:26:04 +0200, Jiri Pirko wrote: >> From: Jiri Pirko <jiri@mellanox.com> >> >> Test recently added netdevsim devlink param implementation. >> >> Signed-off-by: Jiri Pirko <jiri@mellanox.com> >> --- >> v1->v2: >> -using cmd_jq helper > >Still failing here :( Ugh :/ > ># ./devlink.sh >TEST: fw flash test [ OK ] >TEST: params test [FAIL] > Failed to get test1 param value >TEST: regions test [ OK ] > ># jq --version >jq-1.5-1-a5b5cbe ># echo '{ "a" : false }' | jq -e -r '.[]' >false ># echo $? >1 > >On another machine: > >$ echo '{ "a" : false }' | jq -e -r '.[]' >false >$ echo $? >1 > >Did you mean to drop the -e ? No. -e is needed in order to jq return error in case there is no output. Looks like a bug in jq 1.6 fixed. How about I add a check for jq >= 1.6?
Thu, Aug 15, 2019 at 03:09:00AM CEST, jakub.kicinski@netronome.com wrote: >On Wed, 14 Aug 2019 17:26:04 +0200, Jiri Pirko wrote: >> From: Jiri Pirko <jiri@mellanox.com> >> >> Test recently added netdevsim devlink param implementation. >> >> Signed-off-by: Jiri Pirko <jiri@mellanox.com> >> --- >> v1->v2: >> -using cmd_jq helper > >Still failing here :( > ># ./devlink.sh >TEST: fw flash test [ OK ] >TEST: params test [FAIL] > Failed to get test1 param value >TEST: regions test [ OK ] > ># jq --version >jq-1.5-1-a5b5cbe ># echo '{ "a" : false }' | jq -e -r '.[]' >false ># echo $? >1 Odd, could you please try: $ jq --version jq-1.5 $ echo '{"param":{"netdevsim/netdevsim11":[{"name":"test1","type":"driver-specific","values":[{"cmode":"driverinit","value":"false"}]}]}}' | jq -e -r '.[][][].values[] | select(.cmode == "driverinit").value' false $ echo $? 0 > >On another machine: > >$ echo '{ "a" : false }' | jq -e -r '.[]' >false >$ echo $? >1 > >Did you mean to drop the -e ?
Thu, Aug 15, 2019 at 10:45:45AM CEST, jiri@resnulli.us wrote: >Thu, Aug 15, 2019 at 03:09:00AM CEST, jakub.kicinski@netronome.com wrote: >>On Wed, 14 Aug 2019 17:26:04 +0200, Jiri Pirko wrote: >>> From: Jiri Pirko <jiri@mellanox.com> >>> >>> Test recently added netdevsim devlink param implementation. >>> >>> Signed-off-by: Jiri Pirko <jiri@mellanox.com> >>> --- >>> v1->v2: >>> -using cmd_jq helper >> >>Still failing here :( >> >># ./devlink.sh >>TEST: fw flash test [ OK ] >>TEST: params test [FAIL] >> Failed to get test1 param value >>TEST: regions test [ OK ] >> >># jq --version >>jq-1.5-1-a5b5cbe >># echo '{ "a" : false }' | jq -e -r '.[]' >>false >># echo $? >>1 > >Odd, could you please try: >$ jq --version >jq-1.5 >$ echo '{"param":{"netdevsim/netdevsim11":[{"name":"test1","type":"driver-specific","values":[{"cmode":"driverinit","value":"false"}]}]}}' | jq -e -r '.[][][].values[] | select(.cmode == "driverinit").value' >false >$ echo $? >0 Ah, it is not the jq version, it is the iproute2 version: 8257e6c49cca9847e01262f6e749c6e88e2ddb72 I'll think about how to fix this. > > >> >>On another machine: >> >>$ echo '{ "a" : false }' | jq -e -r '.[]' >>false >>$ echo $? >>1 >> >>Did you mean to drop the -e ?
On Thu, 15 Aug 2019 10:52:14 +0200, Jiri Pirko wrote: > Thu, Aug 15, 2019 at 10:45:45AM CEST, jiri@resnulli.us wrote: > >Thu, Aug 15, 2019 at 03:09:00AM CEST, jakub.kicinski@netronome.com wrote: > >>On Wed, 14 Aug 2019 17:26:04 +0200, Jiri Pirko wrote: > >>> From: Jiri Pirko <jiri@mellanox.com> > >>> > >>> Test recently added netdevsim devlink param implementation. > >>> > >>> Signed-off-by: Jiri Pirko <jiri@mellanox.com> > >>> --- > >>> v1->v2: > >>> -using cmd_jq helper > >> > >>Still failing here :( > >> > >># ./devlink.sh > >>TEST: fw flash test [ OK ] > >>TEST: params test [FAIL] > >> Failed to get test1 param value > >>TEST: regions test [ OK ] > >> > >># jq --version > >>jq-1.5-1-a5b5cbe > >># echo '{ "a" : false }' | jq -e -r '.[]' > >>false > >># echo $? > >>1 > > > >Odd, could you please try: > >$ jq --version > >jq-1.5 > >$ echo '{"param":{"netdevsim/netdevsim11":[{"name":"test1","type":"driver-specific","values":[{"cmode":"driverinit","value":"false"}]}]}}' | jq -e -r '.[][][].values[] | select(.cmode == "driverinit").value' > >false > >$ echo $? > >0 > > Ah, it is not the jq version, it is the iproute2 version: > 8257e6c49cca9847e01262f6e749c6e88e2ddb72 > > I'll think about how to fix this. Ah, wow, you're right! Old iproute2 works fine here, too! > >> > >>On another machine: > >> > >>$ echo '{ "a" : false }' | jq -e -r '.[]' > >>false > >>$ echo $? > >>1 > >> > >>Did you mean to drop the -e ?
diff --git a/tools/testing/selftests/drivers/net/netdevsim/devlink.sh b/tools/testing/selftests/drivers/net/netdevsim/devlink.sh index 9d8baf5d14b3..6828e9404460 100755 --- a/tools/testing/selftests/drivers/net/netdevsim/devlink.sh +++ b/tools/testing/selftests/drivers/net/netdevsim/devlink.sh @@ -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