mirror of
https://github.com/xemu-project/xemu.git
synced 2026-07-11 01:24:41 +02:00
tests/functional: ensure GDB client is stopped on error
If the reverse_debugging_run method fails, the GDB client will not be closed resulting in python complaining about resource leaks. Hoisting the GDB client creation into the caller allows this to be cleaned up easily. While doing this, also move the VM shutdown call to match. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-ID: <20251014140047.385347-3-berrange@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
committed by
Thomas Huth
parent
5c2a4b59fa
commit
03ec40942d
@@ -96,7 +96,14 @@ class ReverseDebugging(LinuxKernelTest):
|
||||
|
||||
try:
|
||||
self.log.info('Connecting to gdbstub...')
|
||||
self.reverse_debugging_run(vm, port, gdb_arch, last_icount)
|
||||
gdb_cmd = os.getenv('QEMU_TEST_GDB')
|
||||
gdb = GDB(gdb_cmd)
|
||||
try:
|
||||
self.reverse_debugging_run(gdb, vm, port, gdb_arch, last_icount)
|
||||
finally:
|
||||
self.log.info('exiting gdb and qemu')
|
||||
gdb.exit()
|
||||
vm.shutdown()
|
||||
self.log.info('Test passed.')
|
||||
except GDB.TimeoutError:
|
||||
# Convert a GDB timeout exception into a unittest failure exception.
|
||||
@@ -107,10 +114,7 @@ class ReverseDebugging(LinuxKernelTest):
|
||||
# skipTest(), etc.
|
||||
raise
|
||||
|
||||
def reverse_debugging_run(self, vm, port, gdb_arch, last_icount):
|
||||
gdb_cmd = os.getenv('QEMU_TEST_GDB')
|
||||
gdb = GDB(gdb_cmd)
|
||||
|
||||
def reverse_debugging_run(self, gdb, vm, port, gdb_arch, last_icount):
|
||||
r = gdb.cli("set architecture").get_log()
|
||||
if gdb_arch not in r:
|
||||
self.skipTest(f"GDB does not support arch '{gdb_arch}'")
|
||||
@@ -191,7 +195,3 @@ class ReverseDebugging(LinuxKernelTest):
|
||||
self.fail("'reverse-continue' did not hit the first PC in reverse order!")
|
||||
|
||||
self.log.info('successfully reached %x' % steps[-1])
|
||||
|
||||
self.log.info('exiting gdb and qemu')
|
||||
gdb.exit()
|
||||
vm.shutdown()
|
||||
|
||||
Reference in New Issue
Block a user