- # This part isn't working right, because gdb doesn't resume Thread 2
- # when asked. I don't know the root cause for that, but up to this
- # point the test is still useful.
-
-# for t in threads:
-# self.gdb.thread(t)
-# self.gdb.p("$x1=0x%x" % (int(t.id) + 0x800))
-# self.gdb.p("$pc=main_post_csrr")
-# for t in threads:
-# self.gdb.thread(t)
-# self.gdb.c()
-# for t in self.gdb.threads():
-# assertIn("main_end", t.frame)
-# # Check register values.
-# self.gdb.thread(t)
-# for n in range(1, 32):
-# value = self.gdb.p("$x%d" % n)
-# assertEqual(value, int(t.id) + 0x800 + n - 1)
+ for t in threads:
+ self.gdb.thread(t)
+ self.gdb.p("$x1=0x%x" % (int(t.id) * 0x800))
+ self.gdb.p("$pc=main_post_csrr")
+ self.gdb.c()
+ for t in self.gdb.threads():
+ assertIn("main_end", t.frame)
+ # Check register values.
+ self.gdb.thread(t)
+ for n in range(1, 32):
+ value = self.gdb.p("$x%d" % n)
+ assertEqual(value, int(t.id) * 0x800 + n - 1)