selftests: mlxsw: resource_scale: Fix return value
authorAmit Cohen <amcohen@nvidia.com>
Wed, 2 Mar 2022 16:14:47 +0000 (18:14 +0200)
committerJakub Kicinski <kuba@kernel.org>
Thu, 3 Mar 2022 16:14:01 +0000 (08:14 -0800)
The test runs several test cases and is supposed to return an error in
case at least one of them failed.

Currently, the check of the return value of each test case is in the
wrong place, which can result in the wrong return value. For example:

 # TESTS='tc_police' ./resource_scale.sh
 TEST: 'tc_police' [default] 968                                     [FAIL]
         tc police offload count failed
 Error: mlxsw_spectrum: Failed to allocate policer index.
 We have an error talking to the kernel
 Command failed /tmp/tmp.i7Oc5HwmXY:969
 TEST: 'tc_police' [default] overflow 969                            [ OK ]
 ...
 TEST: 'tc_police' [ipv4_max] overflow 969                           [ OK ]

 $ echo $?
 0

Fix this by moving the check to be done after each test case.

Fixes: 059b18e21c63 ("selftests: mlxsw: Return correct error code in resource scale test")
Signed-off-by: Amit Cohen <amcohen@nvidia.com>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/drivers/net/mlxsw/spectrum/resource_scale.sh

index bcb110e..dea33dc 100755 (executable)
@@ -50,8 +50,8 @@ for current_test in ${TESTS:-$ALL_TESTS}; do
                        else
                                log_test "'$current_test' [$profile] overflow $target"
                        fi
+                       RET_FIN=$(( RET_FIN || RET ))
                done
-               RET_FIN=$(( RET_FIN || RET ))
        done
 done
 current_test=""