From d5b7006223c1569e474f2a8b4529bca8282cdea5 Mon Sep 17 00:00:00 2001 From: Przemek Wirkus Date: Wed, 30 Jul 2014 17:52:05 +0100 Subject: [PATCH] Added reset option to host_test so in the future we can use different reset type, e.g. touch reset.txt on systems like MPS2 boards --- workspace_tools/host_tests/host_test.py | 52 ++++++++++++++++++------- 1 file changed, 39 insertions(+), 13 deletions(-) diff --git a/workspace_tools/host_tests/host_test.py b/workspace_tools/host_tests/host_test.py index e1d7362481..f021d763db 100644 --- a/workspace_tools/host_tests/host_test.py +++ b/workspace_tools/host_tests/host_test.py @@ -22,11 +22,11 @@ except ImportError, e: print "Error: Can't import 'serial' module: %s"% e exit(-1) +import os from optparse import OptionParser from time import sleep from sys import stdout - class Mbed: """ Base class for a host driven test @@ -34,20 +34,34 @@ class Mbed: def __init__(self): parser = OptionParser() - parser.add_option("-m", "--micro", dest="micro", - help="The target microcontroller ", metavar="MICRO") + parser.add_option("-m", "--micro", + dest="micro", + help="The target microcontroller ", + metavar="MICRO") - parser.add_option("-p", "--port", dest="port", - help="The serial port of the target mbed (ie: COM3)", metavar="PORT") + parser.add_option("-p", "--port", + dest="port", + help="The serial port of the target mbed (ie: COM3)", + metavar="PORT") - parser.add_option("-d", "--disk", dest="disk", - help="The target disk path", metavar="DISK_PATH") + parser.add_option("-d", "--disk", + dest="disk", + help="The target disk path", + metavar="DISK_PATH") - parser.add_option("-t", "--timeout", dest="timeout", - help="Timeout", metavar="TIMEOUT") + parser.add_option("-t", "--timeout", + dest="timeout", + help="Timeout", + metavar="TIMEOUT") - parser.add_option("-e", "--extra", dest="extra", - help="Extra serial port (used by some tests)", metavar="EXTRA") + parser.add_option("-e", "--extra", + dest="extra", + help="Extra serial port (used by some tests)", + metavar="EXTRA") + + parser.add_option("-r", "--reset", + dest="forced_reset_type", + help="Forces different type of reset") (self.options, _) = parser.parse_args() @@ -112,9 +126,21 @@ class Mbed: result = False return result + def touch_file(self, path, name): + with os.open(path, 'a'): + os.utime(path, None) + def reset(self): - self.safe_sendBreak(self.serial) # Instead of serial.sendBreak() - # Give time to wait for the image loading + """ reboot.txt - startup from standby state, reboots when in run mode. + shutdown.txt - shutdown from run mode + reset.txt - reset fpga during run mode """ + if self.options.forced_reset_type: + path = os.path.join([self.disk, self.options.forced_reset_type.lower()]) + if self.options.forced_reset_type.endswith('.txt'): + self.touch_file(path) + else: + self.safe_sendBreak(self.serial) # Instead of serial.sendBreak() + # Give time to wait for the image loading sleep(2) def flush(self):