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)
result = instance.run()
log_fd.write("Result: %s\n" % result)
log_fd.write("Logfile: %s\n" % log_name)
+ log_fd.write("Reproduce: %s %s %s\n" % (sys.argv[0], parsed.target,
+ name))
finally:
sys.stdout = real_stdout
log_fd.write("Time elapsed: %.2fs\n" % (time.time() - start))
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: