tests: Gently exit from GDB when tests complete
authorGustavo Romero <gustavo.romero@linaro.org>
Wed, 15 May 2024 17:31:31 +0000 (17:31 +0000)
committerPhilippe Mathieu-Daudé <philmd@linaro.org>
Fri, 17 May 2024 14:49:04 +0000 (16:49 +0200)
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>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20240515173132.2462201-4-gustavo.romero@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
tests/guest-debug/test_gdbstub.py

index 7f71d34da162d47c026ef327933512a7f9678b1e..46fbf98f0c6b1ecfc7b778b8c0a90a1427778234 100644 (file)
@@ -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}")