Hi Thomas,

On 10/3/25 10:30, Gustavo Romero wrote:
Hi Thomas,

On 10/2/25 14:52, Thomas Huth wrote:
On 02/10/2025 18.53, Thomas Huth wrote:
On 02/10/2025 04.04, Gustavo Romero wrote:
The goal of this series is to remove Avocado as a dependency for running
the reverse_debugging functional test.

After several rounds of discussions about v1 and v2, and experiments
done by Daniel and Thomas (thanks for all the experiments and comments
so far), I've taken a new approach and moved away from using a runner
for GDB. The changes, I believe, are much simpler now.

  Hi Gustavo,

unfortunately, this still seems to be broken on Fedora. After applying your 
series, I get:

stderr:
Traceback (most recent call last):
   File "/home/thuth/devel/qemu/tests/functional/reverse_debugging.py", line 
100, in reverse_debugging
     self.reverse_debugging_run(vm, port, gdb_arch, last_icount)
     ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/lib64/python3.13/unittest/case.py", line 156, in skip_wrapper
     raise SkipTest(reason)
unittest.case.SkipTest: Missing env var(s): QEMU_TEST_GDB

Looks like it's required to explicitly use the --gdb=... parameter of configure 
to make it work, and it does not work without that paramter? Could you please 
have a look whether it works without --gdb with the auto-detected gdb for you?

Yes, it works without passing --gdb on Ubuntu. I'm checking it on Fedora.

But at least have you got the test skipped properly (displayed on Meson as 
skipped) since QEMU_TEST_GDB is missing?

hmm actually, no it's not skipped correctly. The @skipIfMissingEnv() annotation 
is in the wrong method.

I've just sent a v6 with:

diff --git a/tests/functional/reverse_debugging.py 
b/tests/functional/reverse_debugging.py
index f06996089a..2a2e51b912 100644
--- a/tests/functional/reverse_debugging.py
+++ b/tests/functional/reverse_debugging.py
@@ -63,6 +63,7 @@ def vm_get_icount(vm):
         return vm.qmp('query-replay')['return']['icount']
@skipIfMissingImports("pygdbmi") # Required by GDB class
+    @skipIfMissingEnv("QEMU_TEST_GDB")
     def reverse_debugging(self, gdb_arch, shift=7, args=None):
         from qemu_test import GDB
@@ -108,7 +109,6 @@ def reverse_debugging(self, gdb_arch, shift=7, args=None):
             # skipTest(), etc.
             raise
- @skipIfMissingEnv("QEMU_TEST_GDB")
     def reverse_debugging_run(self, vm, port, gdb_arch, last_icount):
         logger = logging.getLogger('replay')


Now, I have not idea why GDB is not detected in Fedora. I'm setting up a Fedora 
env. to try it.

Are you sure GDB is installed in your test env?

Do mind checking if:

gromero@gromero0:/mnt/git/qemu_$ gdb_bin=$(command -v "gdb-multiarch" || command -v 
"gdb")
gromero@gromero0:/mnt/git/qemu_$ echo $gdb_bin
/usr/bin/gdb

works in your env and if QEMU_TEST_GDB is in:

$ ./pyvenv/bin/meson test  --verbose --no-rebuild -t 1 --setup thorough  
--suite func-thorough  func-aarch64-reverse_debug

output?


Cheers,
Gustavo



Reply via email to