summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorPhil Sutter <phil@nwl.cc>2018-05-08 13:08:43 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2018-05-11 12:17:45 +0200
commit15ce42d6f7749fb391bb27b01aac735f0f0bbe95 (patch)
tree2196a57eba6f8512fa88ec398782ddd1985fa1f3 /tests
parent54e07e7980ea9fedbb590ec48e1c61fb70684066 (diff)
tests/py: Don't read expected payload for each table
When testing rule adding to different table families, expected payload was read for each tested family again. Instead, read it just once and just try to read a family-specific payload for each tested family. Signed-off-by: Phil Sutter <phil@nwl.cc> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'tests')
-rwxr-xr-xtests/py/nft-test.py22
1 files changed, 12 insertions, 10 deletions
diff --git a/tests/py/nft-test.py b/tests/py/nft-test.py
index 4a01fc23..6684bcd1 100755
--- a/tests/py/nft-test.py
+++ b/tests/py/nft-test.py
@@ -648,23 +648,25 @@ def rule_add(rule, filename, lineno, force_all_family_option, filename_path):
print_error(reason, filename, lineno)
return [-1, warning, error, unit_tests]
- payload_expected = []
-
- for table in table_list:
+ if rule[1].strip() == "ok":
try:
- payload_log = open("%s.payload.%s" % (filename_path, table.family))
- except IOError:
payload_log = open("%s.payload" % filename_path)
+ payload_expected = payload_find_expected(payload_log, rule[0])
+ except:
+ payload_expected = None
+ for table in table_list:
if rule[1].strip() == "ok":
+ table_payload_expected = None
try:
- payload_expected.index(rule[0])
- except ValueError:
- payload_expected = payload_find_expected(payload_log, rule[0])
-
+ 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:
print_error("did not find payload information for "
"rule '%s'" % rule[0], payload_log.name, 1)
+ if not table_payload_expected:
+ table_payload_expected = payload_expected
for table_chain in table.chains:
chain = chain_get_by_name(table_chain)
@@ -697,7 +699,7 @@ def rule_add(rule, filename, lineno, force_all_family_option, filename_path):
continue
# Check for matching payload
- if state == "ok" and not payload_check(payload_expected,
+ if state == "ok" and not payload_check(table_payload_expected,
payload_log, cmd):
error += 1
gotf = open("%s.payload.got" % filename_path, 'a')