Improve log readability by printing a unified diff of the expected vs. actual iptables-save output. Signed-off-by: Phil Sutter <phil@xxxxxx> --- iptables-test.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/iptables-test.py b/iptables-test.py index 6f63cdbeda9af..179e366e02961 100755 --- a/iptables-test.py +++ b/iptables-test.py @@ -15,6 +15,7 @@ import sys import os import subprocess import argparse +from difflib import unified_diff IPTABLES = "iptables" IP6TABLES = "ip6tables" @@ -367,11 +368,12 @@ STDERR_IS_TTY = sys.stderr.isatty() out = out.decode('utf-8').rstrip() if out.find(out_expect) < 0: - msg = ["dumps differ!"] - msg.extend(["expect: " + l for l in out_expect.split("\n")]) - msg.extend(["got: " + l for l in out.split("\n") - if not l[0] in ['*', ':', '#']]) - print("\n".join(msg), file=log_file) + print("dumps differ!", file=log_file) + out_clean = [ l for l in out.split("\n") + if not l[0] in ['*', ':', '#']] + diff = unified_diff(out_expect.split("\n"), out_clean, + fromfile="expect", tofile="got", lineterm='') + print("\n".join(diff), file=log_file) return -1 return tests -- 2.43.0