diff options
author | Pablo M. Bermudo Garay <pablombg@gmail.com> | 2015-12-01 23:45:23 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2015-12-14 20:32:41 +0100 |
commit | 0565a4184194dcfa2f002320d35432a453c4f5ba (patch) | |
tree | d1b50732d8fd135c8550d940ca072539c7169f78 /tests/regression | |
parent | 10a935abb110beb9e0b868fbf3ca5b3c80dd93f4 (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>
Diffstat (limited to 'tests/regression')
-rw-r--r-- | tests/regression/any/meta.t | 2 | ||||
-rwxr-xr-x | tests/regression/nft-test.py | 11 |
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() |