From 2f21c29c1e3490f9a0074713bcd1db74b7e78b89 Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Fri, 17 Jul 2026 11:14:04 +0200 Subject: [PATCH] tests/py: prepare for set debug change JIRA: https://issues.redhat.com/browse/RHEL-190549 Upstream Status: nftables commit 7cec20e45a7549d82b7eac8eac6c8a31458fe291 commit 7cec20e45a7549d82b7eac8eac6c8a31458fe291 Author: Florian Westphal Date: Tue Apr 8 16:21:29 2025 +0200 tests/py: prepare for set debug change Next patch will make initial set dump from kernel emit set debug information, so the obtained netlink debug file won't match what is recorded in tests/py. Furthermore, as the python add rules for each of the family the test is for, subsequent dump will include debug information of the other/previous families. Change the script to skip all unrelated information to only compare the relevant set element information and the generated expressions. This change still finds changes in [ expr ... ] and set elem debug output. Signed-off-by: Florian Westphal Signed-off-by: Phil Sutter --- tests/py/nft-test.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/tests/py/nft-test.py b/tests/py/nft-test.py index 90c7612..06f1701 100755 --- a/tests/py/nft-test.py +++ b/tests/py/nft-test.py @@ -717,17 +717,20 @@ def payload_check(payload_buffer, file, cmd): return False for lineno, want_line in enumerate(payload_buffer): + # skip irreleant parts, such as "ip test-ipv4 output" + if want_line.find("[") < 0 or want_line.find("]") < 0: + continue + line = file.readline() + while line.find("[") < 0 or line.find("]") < 0: + line = file.readline() + if line == "": + break if want_line == line: i += 1 continue - if want_line.find('[') < 0 and line.find('[') < 0: - continue - if want_line.find(']') < 0 and line.find(']') < 0: - continue - if payload_check_set_elems(want_line, line): continue @@ -875,6 +878,8 @@ def rule_add(rule, filename, lineno, force_all_family_option, filename_path): gotf.write("# %s\n" % rule[0]) while True: line = payload_log.readline() + if line.startswith("family "): + continue if line == "": break gotf.write(line)