The global variable RET needs to be initialized before each call to
log_test. This test case sets it once before running the tests, but then
calls log_tests for every individual test. Thus a failure in one of the
tests causes spurious failures in follow-up tests as well.

Fix by moving the initialization of RET from test_all() to
full_test_span_gre_dir_acl(), a function that implements the test.

Signed-off-by: Petr Machata <pe...@mellanox.com>
---
 tools/testing/selftests/net/forwarding/mirror_gre_flower.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/net/forwarding/mirror_gre_flower.sh 
b/tools/testing/selftests/net/forwarding/mirror_gre_flower.sh
index 12914f40612d..09389f3b9369 100755
--- a/tools/testing/selftests/net/forwarding/mirror_gre_flower.sh
+++ b/tools/testing/selftests/net/forwarding/mirror_gre_flower.sh
@@ -81,6 +81,8 @@ full_test_span_gre_dir_acl()
        local match_dip=$1; shift
        local what=$1; shift
 
+       RET=0
+
        mirror_install $swp1 $direction $tundev \
                       "protocol ip flower $tcflags dst_ip $match_dip"
        fail_test_span_gre_dir $tundev $direction
@@ -108,8 +110,6 @@ test_ip6gretap()
 
 test_all()
 {
-       RET=0
-
        slow_path_trap_install $swp1 ingress
        slow_path_trap_install $swp1 egress
 
-- 
2.4.11

Reply via email to