From f74f277a3a965261d16f60b0331bad6c22af10a9 Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Wed, 11 Aug 2021 18:14:06 +0200 Subject: tests: json_echo: Print errors to stderr Apart from the obvious, this fixes exit_dump() which tried to dump the wrong variable ('out' instead of 'obj') and missed that json.dumps() doesn't print but just returns a string. Make it call exit_err() to share some code, which changes the prefix from 'FAIL' to 'Error' as a side-effect. While being at it, fix for a syntax warning with newer Python in unrelated code. Fixes: bb32d8db9a125 ("JSON: Add support for echo option") Signed-off-by: Phil Sutter --- tests/json_echo/run-test.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/json_echo/run-test.py b/tests/json_echo/run-test.py index 36a377ac..a6bdfc61 100755 --- a/tests/json_echo/run-test.py +++ b/tests/json_echo/run-test.py @@ -95,25 +95,25 @@ add_quota = { "add": { # helper functions def exit_err(msg): - print("Error: %s" %msg) + print("Error: %s" %msg, file=sys.stderr) sys.exit(1) def exit_dump(e, obj): - print("FAIL: {}".format(e)) - print("Output was:") - json.dumps(out, sort_keys = True, indent = 4, separators = (',', ': ')) - sys.exit(1) + msg = "{}\n".format(e) + msg += "Output was:\n" + msg += json.dumps(obj, sort_keys = True, indent = 4, separators = (',', ': ')) + exit_err(msg) def do_flush(): rc, out, err = nftables.json_cmd({ "nftables": [flush_ruleset] }) - if not rc is 0: + if rc != 0: exit_err("flush ruleset failed: {}".format(err)) def do_command(cmd): if not type(cmd) is list: cmd = [cmd] rc, out, err = nftables.json_cmd({ "nftables": cmd }) - if not rc is 0: + if rc != 0: exit_err("command failed: {}".format(err)) return out -- cgit v1.2.3