]> git.proxmox.com Git - mirror_qemu.git/blob - tests/tcg/s390x/gdbstub/test-svc.py
qga: Solaris has net/if_arp.h and netinet/if_ether.h but not ETHER_ADDR_LEN
[mirror_qemu.git] / tests / tcg / s390x / gdbstub / test-svc.py
1 """Test single-stepping SVC.
2
3 This runs as a sourced script (via -x, via run-test.py)."""
4 from __future__ import print_function
5 import gdb
6 import sys
7
8
9 n_failures = 0
10
11
12 def report(cond, msg):
13 """Report success/fail of a test"""
14 if cond:
15 print("PASS: {}".format(msg))
16 else:
17 print("FAIL: {}".format(msg))
18 global n_failures
19 n_failures += 1
20
21
22 def run_test():
23 """Run through the tests one by one"""
24 report("lghi\t" in gdb.execute("x/i $pc", False, True), "insn #1")
25 gdb.execute("si")
26 report("larl\t" in gdb.execute("x/i $pc", False, True), "insn #2")
27 gdb.execute("si")
28 report("lgrl\t" in gdb.execute("x/i $pc", False, True), "insn #3")
29 gdb.execute("si")
30 report("svc\t" in gdb.execute("x/i $pc", False, True), "insn #4")
31 gdb.execute("si")
32 report("xgr\t" in gdb.execute("x/i $pc", False, True), "insn #5")
33 gdb.execute("si")
34 report("svc\t" in gdb.execute("x/i $pc", False, True), "insn #6")
35 gdb.execute("si")
36
37
38 def main():
39 """Prepare the environment and run through the tests"""
40 try:
41 inferior = gdb.selected_inferior()
42 print("ATTACHED: {}".format(inferior.architecture().name()))
43 except (gdb.error, AttributeError):
44 print("SKIPPING (not connected)")
45 exit(0)
46
47 if gdb.parse_and_eval('$pc') == 0:
48 print("SKIP: PC not set")
49 exit(0)
50
51 try:
52 # Run the actual tests
53 run_test()
54 except gdb.error:
55 report(False, "GDB Exception: {}".format(sys.exc_info()[0]))
56 print("All tests complete: %d failures" % n_failures)
57 exit(n_failures)
58
59
60 main()