Hi Phil,

On Thu, Oct 29, 2026 at 07:10:18AM +0100, Philippe Mathieu-Daudé wrote:
> 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")
> ---
> 

ah, I was late for the party, you already found it :)

Reviewed-by: Gustavo Romero <[email protected]>


Cheers,
Gustavo


Reply via email to