Fix MulticoreRegTest.
[riscv-tests.git] / debug / gdbserver.py
index f81a91686a4522e36dcf4f7289ef4d122552926a..4d8d99a2276debf89f0cf2e30868bc3c25c4cc0a 100755 (executable)
@@ -479,26 +479,23 @@ class MulticoreRegTest(GdbTest):
 
     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)
+            self.gdb.b("main")
+            self.gdb.c()
             assertIn("main", self.gdb.where())
-        self.gdb.select_hart(self.target.harts[0])
-        self.gdb.command("delete breakpoints")
+            self.gdb.command("delete breakpoints")
 
         # Run through the entire loop.
-        self.gdb.b("main_end")
-        self.gdb.c_all()
+        for hart in self.target.harts:
+            self.gdb.select_hart(hart)
+            self.gdb.b("main_end")
+            self.gdb.c()
+            assertIn("main_end", self.gdb.where())
 
         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)
@@ -514,7 +511,7 @@ class MulticoreRegTest(GdbTest):
             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()
+            self.gdb.c()
         for hart in self.target.harts:
             self.gdb.select_hart(hart)
             assertIn("main", self.gdb.where())