diff options
author | Palmer Dabbelt <palmer@dabbelt.com> | 2017-10-31 16:07:21 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-31 16:07:21 -0700 |
commit | a98122fc00d8a7178f41d27cb801a8c9069a7d05 (patch) | |
tree | faa6e4a5d678525a219786dfdda031e0a4341374 /debug/gdbserver.py | |
parent | 4a6eddab8ec709180e6294ce3794768a511baf82 (diff) | |
parent | 452853f0f96be65cde0900265b654c01b35f321d (diff) | |
download | riscv-tests-a98122fc00d8a7178f41d27cb801a8c9069a7d05.zip riscv-tests-a98122fc00d8a7178f41d27cb801a8c9069a7d05.tar.gz riscv-tests-a98122fc00d8a7178f41d27cb801a8c9069a7d05.tar.bz2 |
Merge pull request #90 from richardxia/comment-out-multicore-reg-test
Temporarily comment out MulticoreRegTest due to flakiness.
Diffstat (limited to 'debug/gdbserver.py')
-rwxr-xr-x | debug/gdbserver.py | 115 |
1 files changed, 58 insertions, 57 deletions
diff --git a/debug/gdbserver.py b/debug/gdbserver.py index f81a916..51c6ab6 100755 --- a/debug/gdbserver.py +++ b/debug/gdbserver.py @@ -465,63 +465,64 @@ class InterruptTest(GdbSingleHartTest): self.gdb.p("interrupt_count") self.gdb.p("local") -class MulticoreRegTest(GdbTest): - compile_args = ("programs/infinite_loop.S", "-DMULTICORE") - - def early_applicable(self): - return len(self.target.harts) > 1 - - def setup(self): - self.gdb.load() - for hart in self.target.harts: - self.gdb.select_hart(hart) - self.gdb.p("$pc=_start") - - def test(self): - # Run to main - # Hart 0 is the first to be resumed, so we have to set the breakpoint - # there. gdb won't actually set the breakpoint until we tell it to - # resume. - self.gdb.select_hart(self.target.harts[0]) - self.gdb.b("main") - self.gdb.c_all() - for hart in self.target.harts: - self.gdb.select_hart(hart) - assertIn("main", self.gdb.where()) - self.gdb.select_hart(self.target.harts[0]) - self.gdb.command("delete breakpoints") - - # Run through the entire loop. - self.gdb.b("main_end") - self.gdb.c_all() - - hart_ids = [] - for hart in self.target.harts: - self.gdb.select_hart(hart) - assertIn("main_end", self.gdb.where()) - # Check register values. - hart_id = self.gdb.p("$x1") - assertNotIn(hart_id, hart_ids) - hart_ids.append(hart_id) - for n in range(2, 32): - value = self.gdb.p("$x%d" % n) - assertEqual(value, hart_ids[-1] + n - 1) - - # Confirmed that we read different register values for different harts. - # Write a new value to x1, and run through the add sequence again. - - for hart in self.target.harts: - self.gdb.select_hart(hart) - self.gdb.p("$x1=0x%x" % (hart.index * 0x800)) - self.gdb.p("$pc=main_post_csrr") - self.gdb.c_all() - for hart in self.target.harts: - self.gdb.select_hart(hart) - assertIn("main", self.gdb.where()) - # Check register values. - for n in range(1, 32): - value = self.gdb.p("$x%d" % n) - assertEqual(value, hart.index * 0x800 + n - 1) +# Fails nondeterministically. +#class MulticoreRegTest(GdbTest): +# compile_args = ("programs/infinite_loop.S", "-DMULTICORE") +# +# def early_applicable(self): +# return len(self.target.harts) > 1 +# +# def setup(self): +# self.gdb.load() +# for hart in self.target.harts: +# self.gdb.select_hart(hart) +# self.gdb.p("$pc=_start") +# +# def test(self): +# # Run to main +# # Hart 0 is the first to be resumed, so we have to set the breakpoint +# # there. gdb won't actually set the breakpoint until we tell it to +# # resume. +# self.gdb.select_hart(self.target.harts[0]) +# self.gdb.b("main") +# self.gdb.c_all() +# for hart in self.target.harts: +# self.gdb.select_hart(hart) +# assertIn("main", self.gdb.where()) +# self.gdb.select_hart(self.target.harts[0]) +# self.gdb.command("delete breakpoints") +# +# # Run through the entire loop. +# self.gdb.b("main_end") +# self.gdb.c_all() +# +# hart_ids = [] +# for hart in self.target.harts: +# self.gdb.select_hart(hart) +# assertIn("main_end", self.gdb.where()) +# # Check register values. +# hart_id = self.gdb.p("$x1") +# assertNotIn(hart_id, hart_ids) +# hart_ids.append(hart_id) +# for n in range(2, 32): +# value = self.gdb.p("$x%d" % n) +# assertEqual(value, hart_ids[-1] + n - 1) +# +# # Confirmed that we read different register values for different harts. +# # Write a new value to x1, and run through the add sequence again. +# +# for hart in self.target.harts: +# self.gdb.select_hart(hart) +# self.gdb.p("$x1=0x%x" % (hart.index * 0x800)) +# self.gdb.p("$pc=main_post_csrr") +# self.gdb.c_all() +# for hart in self.target.harts: +# self.gdb.select_hart(hart) +# assertIn("main", self.gdb.where()) +# # Check register values. +# for n in range(1, 32): +# value = self.gdb.p("$x%d" % n) +# assertEqual(value, hart.index * 0x800 + n - 1) class MulticoreRunHaltStepiTest(GdbTest): compile_args = ("programs/multicore.c", "-DMULTICORE") |