On 29/10/26 06:51, Pierrick Bouvier wrote:
On 10/28/26 10:46 PM, Philippe Mathieu-Daudé wrote:
On 29/10/26 06:39, Philippe Mathieu-Daudé wrote:
On 29/10/26 06:33, Pierrick Bouvier wrote:
On 10/28/26 12:25 PM, Philippe Mathieu-Daudé wrote:
Add R5900 system tests, code is covered, CPU can come back,
allowing to fix a bug on PCGT opcode.


See some test failures, related to gdb:
https://github.com/p-b-o/qemu-ci/actions/runs/40776744817/
job/123131480244

Ah hmm I had similar failures due to too old gdb, I might have
missed to check the version in that container image. IIRC
Gustavo had similar problem with ARM I'll see how he fixed
that (I suppose check gdb version and skip the tests).

Found it, this is 'gdb_feat_version' :)

That's the right way to deal with it indeed.

That said, the gdb used in this test (on GitHub) comes from debian stable, which is fairly recent (16.3).

Is a more recent version needed for complete mips support?
If yes, I can update to the latest gdb so we can get full coverage on GitHub. Meanwhile, you can find which minimum version is needed.

Indeed, the problem is simpler, located in the tests/tcg/multiarch/gdbstub/registers.py.

Before there were no register descriptions for MIPS and the test was
skipping (registers with no names). Now it runs for real. Apparently
this is what commit 6ef164188d00 ("tests/tcg: finesse the registers
check for "hidden" regs") aimed to resolve but was a bit too
restrictive, this fixes it:

-- >8 --
diff --git a/tests/tcg/multiarch/gdbstub/registers.py b/tests/tcg/multiarch/gdbstub/registers.py
index b3d13cb077f1..8d886413eb28 100644
--- a/tests/tcg/multiarch/gdbstub/registers.py
+++ b/tests/tcg/multiarch/gdbstub/registers.py
@@ -180,10 +180,13 @@ def complete_and_diff(reg_map):

     for e in reg_map.values():
-        if "initial" in e and "hidden" not in e:
+        if "initial" in e:
             name = e["name"]
             old_val = e["initial"]

             try:
-                new_val = frame.read_register(name)
+                if "hidden" in e:
+                    new_val = frame.read_register(e["regnum"])
+                else:
+                    new_val = frame.read_register(name)
             except ValueError:
                 report(False, f"failed to read {name} at end of run")
---

Reply via email to