From: Tim Newsome Date: Fri, 14 Oct 2016 19:41:41 +0000 (-0700) Subject: Wait for OpenOCD to start fully before connecting. X-Git-Url: https://git.libre-soc.org/?p=riscv-tests.git;a=commitdiff_plain;h=f59770c98f8f3a7762e8a1751cca922ba8afe870 Wait for OpenOCD to start fully before connecting. Requires OpenOCD change 4eba841bfee4b6c347423ac28851ab7ee7e75532 --- diff --git a/debug/testlib.py b/debug/testlib.py index 8b799e7..0da09a1 100644 --- a/debug/testlib.py +++ b/debug/testlib.py @@ -137,6 +137,21 @@ class Openocd(object): # TODO: Pick a random port self.port = 3333 + # Wait for OpenOCD to have made it through riscv_examine(). When using + # OpenOCD to communicate with a simulator this may take a long time, + # and gdb will time out when trying to connect if we attempt too early. + start = time.time() + messaged = False + while True: + log = open(Openocd.logname).read() + if "Examined RISCV core" in log: + break + if not self.process.poll() is None: + raise Exception("OpenOCD exited before completing riscv_examine()") + if not messaged and time.time() - start > 1: + messaged = True + print "Waiting for OpenOCD to examine RISCV core..." + def __del__(self): try: self.process.kill()