summaryrefslogtreecommitdiffstats
path: root/tests/regression/nft-test.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/regression/nft-test.py')
-rwxr-xr-xtests/regression/nft-test.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/regression/nft-test.py b/tests/regression/nft-test.py
index 8168203b..d2fbe458 100755
--- a/tests/regression/nft-test.py
+++ b/tests/regression/nft-test.py
@@ -424,6 +424,32 @@ def output_clean(pre_output, chain):
return ""
return rule
+def payload_check_elems_to_set(elems):
+ newset = set()
+
+ for n, line in enumerate(elems.split('[end]')):
+ e = line.strip()
+ if e in newset:
+ print_error("duplicate", e, n)
+ return newset
+
+ newset.add(e)
+
+ return newset
+
+def payload_check_set_elems(want, got):
+
+ if want.find('element') < 0 or want.find('[end]') < 0:
+ return 0
+
+ if got.find('element') < 0 or got.find('[end]') < 0:
+ return 0
+
+ set_want = payload_check_elems_to_set(want)
+ set_got = payload_check_elems_to_set(got)
+
+ return set_want == set_got
+
def payload_check(payload_buffer, file, cmd):
file.seek(0, 0)
@@ -443,6 +469,9 @@ def payload_check(payload_buffer, file, cmd):
if want_line.find(']') < 0 and line.find(']') < 0:
continue
+ if payload_check_set_elems(want_line, line):
+ continue
+
print_differences_warning(file.name, lineno, want_line.strip(), line.strip(), cmd);
return 0