diff mbox series

[3/4] tests: Gently exit from GDB when tests complete

Message ID 20240515173132.2462201-4-gustavo.romero@linaro.org
State New
Headers show
Series Add MTE stubs for aarch64 user mode | expand

Commit Message

Gustavo Romero May 15, 2024, 5:31 p.m. UTC
GDB commit a207f6b3a38 ('Rewrite "python" command exception handling')
changed how exit() called from Python scripts loaded by GDB behave,
turning it into an exception instead of a generic error code that is
returned. This change caused several QEMU tests to crash with the
following exception:

Python Exception <class 'SystemExit'>: 0
Error occurred in Python: 0

This happens because in tests/guest-debug/test_gdbstub.py exit is
called after the tests have completed.

This commit fixes it by politely asking GDB to exit via gdb.execute,
passing the proper fail_count to be reported to 'make', instead of
abruptly calling exit() from the Python script.

Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org>
---
 tests/guest-debug/test_gdbstub.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Philippe Mathieu-Daudé May 16, 2024, 7:07 a.m. UTC | #1
On 15/5/24 19:31, Gustavo Romero wrote:
> GDB commit a207f6b3a38 ('Rewrite "python" command exception handling')
> changed how exit() called from Python scripts loaded by GDB behave,
> turning it into an exception instead of a generic error code that is
> returned. This change caused several QEMU tests to crash with the
> following exception:
> 
> Python Exception <class 'SystemExit'>: 0
> Error occurred in Python: 0
> 
> This happens because in tests/guest-debug/test_gdbstub.py exit is
> called after the tests have completed.
> 
> This commit fixes it by politely asking GDB to exit via gdb.execute,
> passing the proper fail_count to be reported to 'make', instead of
> abruptly calling exit() from the Python script.
> 
> Signed-off-by: Gustavo Romero <gustavo.romero@linaro.org>
> ---
>   tests/guest-debug/test_gdbstub.py | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tests/guest-debug/test_gdbstub.py b/tests/guest-debug/test_gdbstub.py
> index 7f71d34da1..46fbf98f0c 100644
> --- a/tests/guest-debug/test_gdbstub.py
> +++ b/tests/guest-debug/test_gdbstub.py
> @@ -57,4 +57,4 @@ def main(test, expected_arch=None):
>           pass
>   
>       print("All tests complete: {} failures".format(fail_count))
> -    exit(fail_count)
> +    gdb.execute(f"exit {fail_count}")

Yay!

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
diff mbox series

Patch

diff --git a/tests/guest-debug/test_gdbstub.py b/tests/guest-debug/test_gdbstub.py
index 7f71d34da1..46fbf98f0c 100644
--- a/tests/guest-debug/test_gdbstub.py
+++ b/tests/guest-debug/test_gdbstub.py
@@ -57,4 +57,4 @@  def main(test, expected_arch=None):
         pass
 
     print("All tests complete: {} failures".format(fail_count))
-    exit(fail_count)
+    gdb.execute(f"exit {fail_count}")