def run(self): """ Test runner for host test. This function will start executing test and forward test result via serial port to test suite """ # Copy image to device self.notify("HOST: Copy image onto target...") result = self.mbed.copy_image() if not result: self.print_result(self.RESULT_IOERR_COPY) # Initialize and open target's serial port (console) self.notify("HOST: Initialize serial port...") result = self.mbed.init_serial() if not result: self.print_result(self.RESULT_IO_SERIAL) # Reset device self.notify("HOST: Reset target...") result = self.mbed.reset() if not result: self.print_result(self.RESULT_IO_SERIAL) # Run test try: CONFIG = self.detect_test_config(verbose=True) # print CONFIG if "host_test_name" in CONFIG: if host_tests.is_host_test(CONFIG["host_test_name"]): self.test_supervisor = host_tests.get_host_test( CONFIG["host_test_name"]) result = self.test_supervisor.test(self) #result = self.test() if result is not None: self.print_result(result) else: self.notify("HOST: Passive mode...") except Exception as e: print(str(e)) self.print_result(self.RESULT_ERROR)
def run(self): """ Test runner for host test. This function will start executing test and forward test result via serial port to test suite """ # Copy image to device self.notify("HOST: Copy image onto target...") result = self.mbed.copy_image() if not result: self.print_result(self.RESULT_IOERR_COPY) # Initialize and open target's serial port (console) self.notify("HOST: Initialize serial port...") result = self.mbed.init_serial() if not result: self.print_result(self.RESULT_IO_SERIAL) # Reset device self.notify("HOST: Reset target...") result = self.mbed.reset() if not result: self.print_result(self.RESULT_IO_SERIAL) # Run test try: CONFIG = self.detect_test_config(verbose=True) # print CONFIG if "host_test_name" in CONFIG: if host_tests.is_host_test(CONFIG["host_test_name"]): self.test_supervisor = host_tests.get_host_test(CONFIG["host_test_name"]) result = self.test_supervisor.test(self) #result = self.test() if result is not None: self.print_result(result) else: self.notify("HOST: Passive mode...") except Exception, e: print str(e) self.print_result(self.RESULT_ERROR)
class Test(HostTestResults): """ Base class for host test's test runner """ # Select default host_test supervision (replaced after autodetection) test_supervisor = host_tests.get_host_test("default") def __init__(self): self.mbed = Mbed() def detect_test_config(self, verbose=False): """ Detects test case configuration """ result = {} while True: line = self.mbed.serial_readline() if "{start}" in line: self.notify("HOST: Start test...") break else: # Detect if this is property from TEST_ENV print m = re.search('{([\w_]+);([\w\d\+ ]+)}}', line[:-1]) if m and len(m.groups()) == 2: # This is most likely auto-detection property result[m.group(1)] = m.group(2) if verbose: self.notify("HOST: Property '%s' = '%s'" % (m.group(1), m.group(2))) else: # We can check if this is TArget Id in mbed specific format m2 = re.search('^([\$]+)([a-fA-F0-9]+)', line[:-1]) if m2 and len(m2.groups()) == 2: if verbose: target_id = m2.group(1) + m2.group(2) self.notify("HOST: TargetID '%s'" % target_id) self.notify(line[len(target_id):-1]) else: self.notify("HOST: Unknown property: %s" % line.strip()) return result def run(self): """ Test runner for host test. This function will start executing test and forward test result via serial port to test suite """ # Copy image to device self.notify("HOST: Copy image onto target...") result = self.mbed.copy_image() if not result: self.print_result(self.RESULT_IOERR_COPY) # Initialize and open target's serial port (console) self.notify("HOST: Initialize serial port...") result = self.mbed.init_serial() if not result: self.print_result(self.RESULT_IO_SERIAL) # Reset device self.notify("HOST: Reset target...") result = self.mbed.reset() if not result: self.print_result(self.RESULT_IO_SERIAL) # Run test try: CONFIG = self.detect_test_config(verbose=True) # print CONFIG if "host_test_name" in CONFIG: if host_tests.is_host_test(CONFIG["host_test_name"]): self.test_supervisor = host_tests.get_host_test( CONFIG["host_test_name"]) result = self.test_supervisor.test(self) #result = self.test() if result is not None: self.print_result(result) else: self.notify("HOST: Passive mode...") except Exception as e: print(str(e)) self.print_result(self.RESULT_ERROR) def setup(self): """ Setup and check if configuration for test is correct. E.g. if serial port can be opened. """ result = True if not self.mbed.serial: result = False self.print_result(self.RESULT_IO_SERIAL) return result def notify(self, message): """ On screen notification function """ print(message) stdout.flush() def print_result(self, result): """ Test result unified printing function """ self.notify("\r\n{{%s}}\r\n{{end}}" % result)