summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhil Sutter <phil@nwl.cc>2024-10-22 16:56:21 +0200
committerPhil Sutter <phil@nwl.cc>2024-11-05 18:10:24 +0100
commitd6068deba5a51f906abea6c99dc7d2d07d0d4901 (patch)
tree4c7bf99fe37f3779924018877439d631cb4c5e1b
parentce7aab8a5c852352421463a3dcb6f30ca53fb5b2 (diff)
tests: iptables-test: Fix for duplicate supposed-to-fail errors
Unexpected results for lines which are supposed to fail are reported twice: Once when fast mode runs them individually to clear the path before batch-handling all others, a second time when non-fast mode takes over after fast mode had failed and runs all tests individually again. Sort this nuisance by running these tests silently in fast mode, knowing that they will run again if failing anyway. Fixes: 0e80cfea3762b ("tests: iptables-test: Implement fast test mode") Signed-off-by: Phil Sutter <phil@nwl.cc>
-rwxr-xr-xiptables-test.py20
1 files changed, 10 insertions, 10 deletions
diff --git a/iptables-test.py b/iptables-test.py
index 77278925..28029ad3 100755
--- a/iptables-test.py
+++ b/iptables-test.py
@@ -47,12 +47,12 @@ def maybe_colored(color, text, isatty):
)
-def print_error(reason, filename=None, lineno=None):
+def print_error(reason, filename=None, lineno=None, log_file=sys.stderr):
'''
Prints an error with nice colors, indicating file and line number.
'''
- print(filename + ": " + maybe_colored('red', "ERROR", STDERR_IS_TTY) +
- ": line %d (%s)" % (lineno, reason), file=sys.stderr)
+ print(filename + ": " + maybe_colored('red', "ERROR", log_file.isatty()) +
+ ": line %d (%s)" % (lineno, reason), file=log_file)
def delete_rule(iptables, rule, filename, lineno, netns = None):
@@ -69,7 +69,7 @@ def delete_rule(iptables, rule, filename, lineno, netns = None):
return 0
-def run_test(iptables, rule, rule_save, res, filename, lineno, netns):
+def run_test(iptables, rule, rule_save, res, filename, lineno, netns, stderr=sys.stderr):
'''
Executes an unit test. Returns the output of delete_rule().
@@ -93,7 +93,7 @@ def run_test(iptables, rule, rule_save, res, filename, lineno, netns):
if ret:
if res != "FAIL":
reason = "cannot load: " + cmd
- print_error(reason, filename, lineno)
+ print_error(reason, filename, lineno, stderr)
return -1
else:
# do not report this error
@@ -101,7 +101,7 @@ def run_test(iptables, rule, rule_save, res, filename, lineno, netns):
else:
if res == "FAIL":
reason = "should fail: " + cmd
- print_error(reason, filename, lineno)
+ print_error(reason, filename, lineno, stderr)
delete_rule(iptables, rule, filename, lineno, netns)
return -1
@@ -140,7 +140,7 @@ def run_test(iptables, rule, rule_save, res, filename, lineno, netns):
#
if proc.returncode == -11:
reason = command + " segfaults!"
- print_error(reason, filename, lineno)
+ print_error(reason, filename, lineno, stderr)
delete_rule(iptables, rule, filename, lineno, netns)
return -1
@@ -150,7 +150,7 @@ def run_test(iptables, rule, rule_save, res, filename, lineno, netns):
if matching < 0:
if res == "OK":
reason = "cannot find: " + iptables + " -I " + rule
- print_error(reason, filename, lineno)
+ print_error(reason, filename, lineno, stderr)
delete_rule(iptables, rule, filename, lineno, netns)
return -1
else:
@@ -159,7 +159,7 @@ def run_test(iptables, rule, rule_save, res, filename, lineno, netns):
else:
if res != "OK":
reason = "should not match: " + cmd
- print_error(reason, filename, lineno)
+ print_error(reason, filename, lineno, stderr)
delete_rule(iptables, rule, filename, lineno, netns)
return -1
@@ -298,7 +298,7 @@ def run_test_file_fast(iptables, filename, netns):
if res != "OK":
rule = chain + " -t " + table + " " + item[0]
ret = run_test(iptables, rule, rule_save,
- res, filename, lineno + 1, netns)
+ res, filename, lineno + 1, netns, log_file)
if ret < 0:
return -1