mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 07:13:54 -06:00
tests/tcg: Factor out gdbstub test functions
Both the report() function as well as the initial gdbstub test sequence are copy-pasted into ~10 files with slight modifications. This indicates that they are indeed generic, so factor them out. While at it, add a few newlines to make the formatting closer to PEP-8. Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Message-Id: <20240129093410.3151-3-iii@linux.ibm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
87ab270429
commit
4d48c1bc07
13 changed files with 98 additions and 395 deletions
60
tests/guest-debug/test_gdbstub.py
Normal file
60
tests/guest-debug/test_gdbstub.py
Normal file
|
@ -0,0 +1,60 @@
|
|||
"""Helper functions for gdbstub testing
|
||||
|
||||
"""
|
||||
from __future__ import print_function
|
||||
import gdb
|
||||
import os
|
||||
import sys
|
||||
import traceback
|
||||
|
||||
fail_count = 0
|
||||
|
||||
|
||||
def report(cond, msg):
|
||||
"""Report success/fail of a test"""
|
||||
if cond:
|
||||
print("PASS: {}".format(msg))
|
||||
else:
|
||||
print("FAIL: {}".format(msg))
|
||||
global fail_count
|
||||
fail_count += 1
|
||||
|
||||
|
||||
def main(test, expected_arch=None):
|
||||
"""Run a test function
|
||||
|
||||
This runs as the script it sourced (via -x, via run-test.py)."""
|
||||
try:
|
||||
inferior = gdb.selected_inferior()
|
||||
arch = inferior.architecture()
|
||||
print("ATTACHED: {}".format(arch.name()))
|
||||
if expected_arch is not None:
|
||||
report(arch.name() == expected_arch,
|
||||
"connected to {}".format(expected_arch))
|
||||
except (gdb.error, AttributeError):
|
||||
print("SKIP: not connected")
|
||||
exit(0)
|
||||
|
||||
if gdb.parse_and_eval("$pc") == 0:
|
||||
print("SKIP: PC not set")
|
||||
exit(0)
|
||||
|
||||
try:
|
||||
test()
|
||||
except:
|
||||
print("GDB Exception:")
|
||||
traceback.print_exc(file=sys.stdout)
|
||||
global fail_count
|
||||
fail_count += 1
|
||||
if "QEMU_TEST_INTERACTIVE" in os.environ:
|
||||
import code
|
||||
code.InteractiveConsole(locals=globals()).interact()
|
||||
raise
|
||||
|
||||
try:
|
||||
gdb.execute("kill")
|
||||
except gdb.error:
|
||||
pass
|
||||
|
||||
print("All tests complete: {} failures".format(fail_count))
|
||||
exit(fail_count)
|
Loading…
Add table
Add a link
Reference in a new issue