From 0565a4184194dcfa2f002320d35432a453c4f5ba Mon Sep 17 00:00:00 2001 From: "Pablo M. Bermudo Garay" Date: Tue, 1 Dec 2015 23:45:23 +0100 Subject: 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 Signed-off-by: Pablo Neira Ayuso --- tests/regression/any/meta.t | 2 +- tests/regression/nft-test.py | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) (limited to 'tests') 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() -- cgit v1.2.3