summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo M. Bermudo Garay <pablombg@gmail.com>2015-12-01 23:45:23 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2015-12-14 20:32:41 +0100
commit0565a4184194dcfa2f002320d35432a453c4f5ba (patch)
treed1b50732d8fd135c8550d940ca072539c7169f78
parent10a935abb110beb9e0b868fbf3ca5b3c80dd93f4 (diff)
tests: fix crash when rule test is malformed
The tests script suffers a crash when a rule test line is malformed (e.g. if expected result is missing). This commit fixes these crashes and now the line is skipped and a warning is printed. While at it, fix a malformed test line too. Signed-off-by: Pablo M. Bermudo Garay <pablombg@gmail.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--tests/regression/any/meta.t2
-rwxr-xr-xtests/regression/nft-test.py11
2 files changed, 6 insertions, 7 deletions
diff --git a/tests/regression/any/meta.t b/tests/regression/any/meta.t
index 6d9f9d22..c03e7f4e 100644
--- a/tests/regression/any/meta.t
+++ b/tests/regression/any/meta.t
@@ -166,7 +166,7 @@ meta iifgroup 0;ok;iifgroup default
meta iifgroup != 0;ok;iifgroup != default
meta iifgroup default;ok;iifgroup default
meta iifgroup != default;ok;iifgroup != default
-meta iifgroup {default};ok;;iifgroup {default}
+meta iifgroup {default};ok;iifgroup {default}
- meta iifgroup != {default};ok
meta iifgroup { 11,33};ok
meta iifgroup {11-33};ok
diff --git a/tests/regression/nft-test.py b/tests/regression/nft-test.py
index 9d623b70..e68087f3 100755
--- a/tests/regression/nft-test.py
+++ b/tests/regression/nft-test.py
@@ -508,12 +508,6 @@ def rule_add(rule, table_list, chain_list, filename, lineno,
print_error("did not find payload information for rule '%s'" % rule[0], payload_log.name, 1)
for chain in chain_list:
- if len(rule) == 1:
- reason = "Skipping malformed test. (" + \
- str(rule[0].rstrip('\n')) + ")"
- print_warning(reason, filename, lineno)
- continue
-
unit_tests += 1
table_flush(table, filename, lineno)
table_info = " " + table[0] + " " + table[1] + " "
@@ -808,6 +802,11 @@ def run_test_file(filename, force_all_family_option, specific_file):
# Rule
rule = line.split(';') # rule[1] Ok or FAIL
+ if len(rule) == 1 or len(rule) > 3 or rule[1].rstrip() not in {"ok", "fail"}:
+ reason = "Skipping malformed rule test. (" + line.rstrip('\n') + ")"
+ print_warning(reason, filename, lineno)
+ continue
+
if line[0] == "-": # Run omitted lines
if need_fix_option:
rule[0] = rule[0].rstrip()[1:].strip()