self.active_child.sendline("c%s" % async)
self.active_child.expect("Continuing", timeout=ops * self.timeout)
- def c_all(self):
+ def c_all(self, wait=True):
"""
Resume every hart.
child.sendline("c")
child.expect("Continuing")
- # Now wait for them all to halt
- for child in self.children:
- child.expect(r"\(gdb\)")
+ if wait:
+ for child in self.children:
+ child.expect(r"\(gdb\)")
def interrupt(self):
self.active_child.send("\003")
self.active_child.expect(r"\(gdb\)", timeout=6000)
return self.active_child.before.strip()
+ def interrupt_all(self):
+ for child in self.children:
+ self.select_child(child)
+ self.interrupt()
+
def x(self, address, size='w'):
output = self.command("x/%s %s" % (size, address))
value = int(output.split(':')[1].strip(), 0)
del self.gdb
BaseTest.classTeardown(self)
-class GdbSingleHartTest(GdbTest):
- def classSetup(self):
- GdbTest.classSetup(self)
-
+ def parkOtherHarts(self):
+ """Park harts besides the currently selected one in loop_forever()."""
for hart in self.target.harts:
# Park all harts that we're not using in a safe place.
if hart != self.hart:
self.gdb.select_hart(self.hart)
+class GdbSingleHartTest(GdbTest):
+ def classSetup(self):
+ GdbTest.classSetup(self)
+ self.parkOtherHarts()
+
class ExamineTarget(GdbTest):
def test(self):
for hart in self.target.harts: