From cff7faaccbebdd64275fa801bd65f514b5d14699 Mon Sep 17 00:00:00 2001 From: Pierrick HYMBERT Date: Sun, 17 Mar 2024 16:28:01 +0100 Subject: [PATCH] ci: tests: print server logs in case of scenario failure --- examples/server/tests/features/environment.py | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/examples/server/tests/features/environment.py b/examples/server/tests/features/environment.py index 3b45de6ba..9ae3954e9 100644 --- a/examples/server/tests/features/environment.py +++ b/examples/server/tests/features/environment.py @@ -33,16 +33,7 @@ def after_scenario(context, scenario): print("\x1b[33;101mERROR: Server stopped listening\x1b[0m\n") if not pid_exists(context.server_process.pid): - print("Trying to find server logs:") - out, err = context.server_process.communicate() - if out: - print("Server stdout:\n") - print(out) - print("\n") - if err: - print("Server stderr:\n") - print(err) - print("\n") + print_server_logs(context) assert False, f"Server not running pid={context.server_process.pid} ..." server_graceful_shutdown(context) @@ -58,6 +49,9 @@ def after_scenario(context, scenario): if attempts > 5: server_kill_hard(context) + if scenario.status == "failed" or context.debug: + print_server_logs(context) + def server_graceful_shutdown(context): print(f"shutting down server pid={context.server_process.pid} ...\n") @@ -108,3 +102,17 @@ def pid_exists(pid): return e.errno == errno.EPERM else: return True + + +def print_server_logs(context): + print("Trying to find server logs:") + out, err = context.server_process.communicate() + if out: + print("Server stdout:\n") + print(out.decode("utf-8")) + print("\n") + if err: + print("Server stderr:\n") + print(err.decode("utf-8")) + print("\n") +