selftests: mlxsw: resource_scale: Update scale target after test setup
authorIdo Schimmel <idosch@nvidia.com>
Thu, 16 Jun 2022 10:42:39 +0000 (13:42 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 17 Jun 2022 09:31:33 +0000 (10:31 +0100)
The scale of each resource is tested in the following manner:

1. The scale target is queried.
2. The test setup is prepared.
3. The test is invoked.

In some cases, the occupancy of a resource changes as part of the second
step, requiring the test to return a scale target that takes this change
into account.

Make this more robust by re-querying the scale target after the second
step.

Another possible solution is to swap the first and second steps, but
when a test needs to be skipped (i.e., scale target is zero), the setup
would have been in vain.

Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/drivers/net/mlxsw/spectrum-2/resource_scale.sh
tools/testing/selftests/drivers/net/mlxsw/spectrum/resource_scale.sh

index e9f65bd2e29914649fda98bd37ca1ceee817365d..22f761442bad703127463210872623f1a3091866 100755 (executable)
@@ -38,6 +38,9 @@ for current_test in ${TESTS:-$ALL_TESTS}; do
                target=$(${current_test}_get_target "$should_fail")
                ${current_test}_setup_prepare
                setup_wait $num_netifs
+               # Update target in case occupancy of a certain resource changed
+               # following the test setup.
+               target=$(${current_test}_get_target "$should_fail")
                ${current_test}_test "$target" "$should_fail"
                ${current_test}_cleanup
                devlink_reload
index dea33dc937906adb9adf4f7707386e7efe6f5925..12201acc00b96f40fc783c3061e09b22f4607244 100755 (executable)
@@ -43,6 +43,9 @@ for current_test in ${TESTS:-$ALL_TESTS}; do
                        target=$(${current_test}_get_target "$should_fail")
                        ${current_test}_setup_prepare
                        setup_wait $num_netifs
+                       # Update target in case occupancy of a certain resource
+                       # changed following the test setup.
+                       target=$(${current_test}_get_target "$should_fail")
                        ${current_test}_test "$target" "$should_fail"
                        ${current_test}_cleanup
                        if [[ "$should_fail" -eq 0 ]]; then