aboutsummaryrefslogtreecommitdiff
path: root/debug/gdbserver.py
diff options
context:
space:
mode:
authorPalmer Dabbelt <palmer@dabbelt.com>2017-10-31 16:07:21 -0700
committerGitHub <noreply@github.com>2017-10-31 16:07:21 -0700
commita98122fc00d8a7178f41d27cb801a8c9069a7d05 (patch)
treefaa6e4a5d678525a219786dfdda031e0a4341374 /debug/gdbserver.py
parent4a6eddab8ec709180e6294ce3794768a511baf82 (diff)
parent452853f0f96be65cde0900265b654c01b35f321d (diff)
downloadriscv-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-xdebug/gdbserver.py115
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")