diff options
author | Chris Johns <chrisj@rtems.org> | 2017-10-05 14:21:01 +1100 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2017-10-05 14:21:01 +1100 |
commit | 0737b4603b8b2b9b9567a1af4cb5a286941d1b40 (patch) | |
tree | 4fb6aea775d3b6bfd45c9ab8baef61b7502f8ac7 | |
parent | tester: Fix the TFTP ok to kill deadlock. (diff) | |
download | rtems-tools-0737b4603b8b2b9b9567a1af4cb5a286941d1b40.tar.bz2 |
tester: Add a target reset regular expression to detect a reset.
-rw-r--r-- | tester/rt/config.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/tester/rt/config.py b/tester/rt/config.py index a19cc6c..455b175 100644 --- a/tester/rt/config.py +++ b/tester/rt/config.py @@ -36,6 +36,7 @@ from __future__ import print_function import datetime import os +import re import threading from rtemstoolkit import config @@ -73,6 +74,7 @@ class file(config.file): self.kill_good = False self.kill_on_end = False self.test_label = None + self.target_reset_regx = None def __del__(self): if self.console: @@ -257,6 +259,13 @@ class file(config.file): print(' '.join(l)) def run(self): + if self.defined('target_reset_regex'): + try: + regex = self.expand('%{target_reset_regex}') + self.target_reset_regx = re.compile(regex, re.MULTILINE) + except: + msg = 'invalid target reset regex: %s' % (regex) + raise error.general(msg) self.load(self.name) def capture(self, text): @@ -264,9 +273,14 @@ class file(config.file): self.test_started = '*** BEGIN OF TEST ' in text ok_to_kill = '*** TEST STATE: USER_INPUT' in text or \ '*** TEST STATE: BENCHMARK' in text - reset_target = False if ok_to_kill: reset_target = True + else: + reset_target = False + if self.test_started and self.target_reset_regx is not None: + if self.target_reset_regx.match(text): + self.capture_console('target reset detected') + ok_to_kill = True if self.kill_on_end: if self.test_label is None: s = text.find('*** BEGIN OF TEST ') |