X-Git-Url: https://git.libre-soc.org/?p=riscv-tests.git;a=blobdiff_plain;f=debug%2Fgdbserver.py;h=17e1734010d13047c8215eba0a32b25643937b46;hp=c352bc0471cf98d0f81c390e6eace2ec1ee42ef1;hb=79064081503b53fdb44094e32ff54a3ab20a9bf2;hpb=ce2b91bad31742fffb8377cf24f43f5a2b429a17 diff --git a/debug/gdbserver.py b/debug/gdbserver.py index c352bc0..17e1734 100755 --- a/debug/gdbserver.py +++ b/debug/gdbserver.py @@ -137,6 +137,37 @@ class SimpleF18Test(SimpleRegisterTest): def test(self): self.check_reg("f18", "fs2") +class CustomRegisterTest(SimpleRegisterTest): + def early_applicable(self): + return self.target.implements_custom_test + + def check_custom(self, magic): + regs = {k: v for k, v in self.gdb.info_registers("all").iteritems() + if k.startswith("custom")} + assertEqual(set(regs.keys()), + set(("custom1", + "custom12345", + "custom12346", + "custom12347", + "custom12348"))) + for name, value in regs.iteritems(): + number = int(name[6:]) + if number % 2: + expect = number + magic + assertIn(value, (expect, expect + (1<<32))) + else: + assertIn("Could not fetch register", value) + + def test(self): + self.check_custom(0) + + # Now test writing + magic = 6667 + self.gdb.p("$custom12345=%d" % (12345 + magic)) + self.gdb.stepi() + + self.check_custom(magic) + class SimpleNoExistTest(GdbTest): def test(self): try: