selftests: mlxsw: qos_dscp_bridge: Fix
authorPetr Machata <petrm@mellanox.com>
Fri, 27 Jul 2018 22:48:13 +0000 (00:48 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 29 Jul 2018 20:00:01 +0000 (13:00 -0700)
There are two problems in this test case:

- When indexing in bash associative array, the subscript is interpreted as
  string, not as a variable name to be expanded.

- The keys stored to t0s and t1s are not DSCP values, but priority +
  base (i.e. the logical DSCP value, not the full bitfield value).

In combination these two bugs conspire to make the test just work,
except it doesn't really test anything and always passes.

Fix the above two problems in obvious manner.

Signed-off-by: Petr Machata <petrm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/drivers/net/mlxsw/qos_dscp_bridge.sh

index 418319f19108d8df45882042f76af669d5950012..cc527660a022389fc2780b4ae084eaa4a2b6547c 100755 (executable)
@@ -217,13 +217,13 @@ dscp_ping_test()
 
        for key in ${!t0s[@]}; do
                local expect
-               if ((key == dscp_10 || key == dscp_20)); then
+               if ((key == prio+10 || key == prio+20)); then
                        expect=10
                else
                        expect=0
                fi
 
-               local delta=$((t1s[key] - t0s[key]))
+               local delta=$((t1s[$key] - t0s[$key]))
                ((expect == delta))
                check_err $? "DSCP $key: Expected to capture $expect packets, got $delta."
        done