mirror of
https://github.com/qemu/qemu.git
synced 2025-07-22 18:27:05 +00:00
tests/tcg: Stop using exit() in the gdbstub testcases
GDB 15 does not like exit() anymore:
(gdb) python exit(0)
Python Exception <class 'SystemExit'>: 0
Error occurred in Python: 0
Use the GDB's own exit command, like it's already done in a couple
places, everywhere. This is the same fix as commit 93a3048dcf
("tests: Gently exit from GDB when tests complete"), but applied to
more places.
Acked-by: Gustavo Romero <gustavo.romero@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Message-Id: <20241022113939.19989-1-iii@linux.ibm.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
This commit is contained in:

committed by
Alex Bennée

parent
0fbc798e4f
commit
cb241df412
@ -10,10 +10,16 @@ import traceback
|
|||||||
|
|
||||||
fail_count = 0
|
fail_count = 0
|
||||||
|
|
||||||
|
|
||||||
|
def gdb_exit(status):
|
||||||
|
gdb.execute(f"exit {status}")
|
||||||
|
|
||||||
|
|
||||||
class arg_parser(argparse.ArgumentParser):
|
class arg_parser(argparse.ArgumentParser):
|
||||||
def exit(self, status=None, message=""):
|
def exit(self, status=None, message=""):
|
||||||
print("Wrong GDB script test argument! " + message)
|
print("Wrong GDB script test argument! " + message)
|
||||||
gdb.execute("exit 1")
|
gdb_exit(1)
|
||||||
|
|
||||||
|
|
||||||
def report(cond, msg):
|
def report(cond, msg):
|
||||||
"""Report success/fail of a test"""
|
"""Report success/fail of a test"""
|
||||||
@ -38,11 +44,11 @@ def main(test, expected_arch=None):
|
|||||||
"connected to {}".format(expected_arch))
|
"connected to {}".format(expected_arch))
|
||||||
except (gdb.error, AttributeError):
|
except (gdb.error, AttributeError):
|
||||||
print("SKIP: not connected")
|
print("SKIP: not connected")
|
||||||
exit(0)
|
gdb_exit(0)
|
||||||
|
|
||||||
if gdb.parse_and_eval("$pc") == 0:
|
if gdb.parse_and_eval("$pc") == 0:
|
||||||
print("SKIP: PC not set")
|
print("SKIP: PC not set")
|
||||||
exit(0)
|
gdb_exit(0)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
test()
|
test()
|
||||||
@ -62,4 +68,4 @@ def main(test, expected_arch=None):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
print("All tests complete: {} failures".format(fail_count))
|
print("All tests complete: {} failures".format(fail_count))
|
||||||
gdb.execute(f"exit {fail_count}")
|
gdb_exit(fail_count)
|
||||||
|
@ -8,7 +8,7 @@ from __future__ import print_function
|
|||||||
#
|
#
|
||||||
|
|
||||||
import gdb
|
import gdb
|
||||||
from test_gdbstub import main, report
|
from test_gdbstub import gdb_exit, main, report
|
||||||
|
|
||||||
|
|
||||||
def check_interrupt(thread):
|
def check_interrupt(thread):
|
||||||
@ -49,7 +49,7 @@ def run_test():
|
|||||||
"""
|
"""
|
||||||
if len(gdb.selected_inferior().threads()) == 1:
|
if len(gdb.selected_inferior().threads()) == 1:
|
||||||
print("SKIP: set to run on a single thread")
|
print("SKIP: set to run on a single thread")
|
||||||
exit(0)
|
gdb_exit(0)
|
||||||
|
|
||||||
gdb.execute("set scheduler-locking on")
|
gdb.execute("set scheduler-locking on")
|
||||||
for thread in gdb.selected_inferior().threads():
|
for thread in gdb.selected_inferior().threads():
|
||||||
|
@ -5,7 +5,7 @@ This runs as a sourced script (via -x, via run-test.py).
|
|||||||
SPDX-License-Identifier: GPL-2.0-or-later
|
SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
"""
|
"""
|
||||||
import ctypes
|
import ctypes
|
||||||
from test_gdbstub import main, report
|
from test_gdbstub import gdb_exit, main, report
|
||||||
|
|
||||||
|
|
||||||
def probe_proc_self_mem():
|
def probe_proc_self_mem():
|
||||||
@ -22,7 +22,7 @@ def run_test():
|
|||||||
"""Run through the tests one by one"""
|
"""Run through the tests one by one"""
|
||||||
if not probe_proc_self_mem():
|
if not probe_proc_self_mem():
|
||||||
print("SKIP: /proc/self/mem is not usable")
|
print("SKIP: /proc/self/mem is not usable")
|
||||||
exit(0)
|
gdb_exit(0)
|
||||||
gdb.Breakpoint("break_here")
|
gdb.Breakpoint("break_here")
|
||||||
gdb.execute("continue")
|
gdb.execute("continue")
|
||||||
val = gdb.parse_and_eval("*(char[2] *)q").string()
|
val = gdb.parse_and_eval("*(char[2] *)q").string()
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
This runs as a sourced script (via -x, via run-test.py)."""
|
This runs as a sourced script (via -x, via run-test.py)."""
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
import gdb
|
import gdb
|
||||||
from test_gdbstub import main, report
|
from test_gdbstub import gdb_exit, main, report
|
||||||
|
|
||||||
|
|
||||||
def run_test():
|
def run_test():
|
||||||
@ -12,7 +12,7 @@ def run_test():
|
|||||||
# m68k GDB supports only GDB_OSABI_SVR4, but GDB_OSABI_LINUX is
|
# m68k GDB supports only GDB_OSABI_SVR4, but GDB_OSABI_LINUX is
|
||||||
# required for the info proc support (see set_gdbarch_info_proc()).
|
# required for the info proc support (see set_gdbarch_info_proc()).
|
||||||
print("SKIP: m68k GDB does not support GDB_OSABI_LINUX")
|
print("SKIP: m68k GDB does not support GDB_OSABI_LINUX")
|
||||||
exit(0)
|
gdb_exit(0)
|
||||||
mappings = gdb.execute("info proc mappings", False, True)
|
mappings = gdb.execute("info proc mappings", False, True)
|
||||||
report(isinstance(mappings, str), "Fetched the mappings from the inferior")
|
report(isinstance(mappings, str), "Fetched the mappings from the inferior")
|
||||||
# Broken with host page size > guest page size
|
# Broken with host page size > guest page size
|
||||||
|
Reference in New Issue
Block a user