| from __future__ import print_function |
| |
| # |
| # Test that signals and debugging mix well together on s390x. |
| # |
| # This is launched via tests/guest-debug/run-test.py |
| # |
| |
| import gdb |
| from test_gdbstub import main, report |
| |
| |
| def run_test(): |
| """Run through the tests one by one""" |
| illegal_op = gdb.Breakpoint("illegal_op") |
| stg = gdb.Breakpoint("stg") |
| mvc_8 = gdb.Breakpoint("mvc_8") |
| |
| # Expect the following events: |
| # 1x illegal_op breakpoint |
| # 2x stg breakpoint, segv, breakpoint |
| # 2x mvc_8 breakpoint, segv, breakpoint |
| for _ in range(14): |
| gdb.execute("c") |
| report(illegal_op.hit_count == 1, "illegal_op.hit_count == 1") |
| report(stg.hit_count == 4, "stg.hit_count == 4") |
| report(mvc_8.hit_count == 4, "mvc_8.hit_count == 4") |
| |
| # The test must succeed. |
| gdb.Breakpoint("_exit") |
| gdb.execute("c") |
| status = int(gdb.parse_and_eval("$r2")) |
| report(status == 0, "status == 0") |
| |
| |
| main(run_test) |