summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhil Sutter <phil@nwl.cc>2018-08-29 16:33:39 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2018-09-03 13:56:23 +0200
commit26c85388344e66abab8dda04f6f15963c7ad81d5 (patch)
treec17f3c4486c0b2e4aea8819e4809478645dfef48
parent6460c115e2603ac4e22d84a27a28945e29f9c0ca (diff)
tests/py: Make nft-test.py a little more robust
When adding a new test, missing payload file causes nft-test.py to choke due to accessing undeclared variables. Fix this by making sure relevant variables are declared outside of try-catch blocks. Signed-off-by: Phil Sutter <phil@nwl.cc> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rwxr-xr-xtests/py/nft-test.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/tests/py/nft-test.py b/tests/py/nft-test.py
index 23f73d50..4e69cd27 100755
--- a/tests/py/nft-test.py
+++ b/tests/py/nft-test.py
@@ -653,6 +653,9 @@ def payload_check(payload_buffer, file, cmd):
file.seek(0, 0)
i = 0
+ if not payload_buffer:
+ return False
+
for lineno, want_line in enumerate(payload_buffer):
line = file.readline()
@@ -698,11 +701,12 @@ def rule_add(rule, filename, lineno, force_all_family_option, filename_path):
return [-1, warning, error, unit_tests]
if rule[1].strip() == "ok":
+ payload_expected = None
try:
payload_log = open("%s.payload" % filename_path)
payload_expected = payload_find_expected(payload_log, rule[0])
except:
- payload_expected = None
+ payload_log = None
if enable_json_option:
try:
@@ -744,7 +748,10 @@ def rule_add(rule, filename, lineno, force_all_family_option, filename_path):
payload_log = open("%s.payload.%s" % (filename_path, table.family))
table_payload_expected = payload_find_expected(payload_log, rule[0])
except:
- if not payload_expected:
+ if not payload_log:
+ print_error("did not find any payload information",
+ filename_path)
+ elif not payload_expected:
print_error("did not find payload information for "
"rule '%s'" % rule[0], payload_log.name, 1)
if not table_payload_expected: