summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVic (Chun-Ju) Yang <victoryang@chromium.org>2014-01-10 11:50:18 +0800
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-01-20 23:39:40 +0000
commit5bd9949c6b6434e566931a724e0343b775e307b5 (patch)
tree3ce6c699b4eb8e3c1a5bceb39bbcfce8cb7c504c
parentd8f076cf3e36966307e9670630e1bb3fd213db29 (diff)
downloadchrome-ec-5bd9949c6b6434e566931a724e0343b775e307b5.tar.gz
Clean up run_host_test script
This includes: - Remove an unused function argument - Style fix - Handle EOF by pexpect instead of catching exception BUG=None Original-BUG=chrome-os-partner:19235 TEST=Run all tests TEST=Make a test crash and check EOF is handled properly BRANCH=None Change-Id: I23aa18d479ff59bcac9c4c1f0ee19497369788c1 Original-Change-Id: I286c6b9db719ec3de36b9eb5cdba1b7187950c60 Signed-off-by: Vic (Chun-Ju) Yang <victoryang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/182049 Reviewed-on: https://chromium-review.googlesource.com/182658 Commit-Queue: Dave Parker <dparker@chromium.org> Tested-by: Dave Parker <dparker@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/183157 Reviewed-by: Dave Parker <dparker@chromium.org>
-rwxr-xr-xutil/run_host_test18
1 files changed, 10 insertions, 8 deletions
diff --git a/util/run_host_test b/util/run_host_test
index c25374b95f..c130b822fb 100755
--- a/util/run_host_test
+++ b/util/run_host_test
@@ -15,8 +15,9 @@ TIMEOUT=10
RESULT_ID_TIMEOUT = 0
RESULT_ID_PASS = 1
RESULT_ID_FAIL = 2
+RESULT_ID_EOF = 3
-EXPECT_LIST = [pexpect.TIMEOUT, 'Pass!', 'Fail!']
+EXPECT_LIST = [pexpect.TIMEOUT, 'Pass!', 'Fail!', pexpect.EOF]
class Tee(object):
def __init__(self, target):
@@ -30,15 +31,12 @@ class Tee(object):
sys.stdout.flush()
self._target.flush()
-def RunOnce(test_name, log, timeout_secs):
+def RunOnce(test_name, log):
child = pexpect.spawn('build/host/{0}/{0}.exe'.format(test_name),
- timeout=TIMEOUT)
+ timeout=TIMEOUT)
child.logfile = log
try:
return child.expect(EXPECT_LIST)
- except pexpect.EOF:
- child.close()
- return RESULT_ID_FAIL
finally:
if child.isalive():
child.kill(signal.SIGTERM)
@@ -49,10 +47,9 @@ tee_log = Tee(log)
test_name = sys.argv[1]
start_time = time.time()
-result_id = RunOnce(test_name, tee_log, start_time + TIMEOUT - time.time())
+result_id = RunOnce(test_name, tee_log)
elapsed_time = time.time() - start_time
-failed = False
if result_id == RESULT_ID_TIMEOUT:
sys.stderr.write('Test %s timed out after %d seconds!\n' %
(test_name, TIMEOUT))
@@ -60,10 +57,15 @@ if result_id == RESULT_ID_TIMEOUT:
elif result_id == RESULT_ID_PASS:
sys.stderr.write('Test %s passed! (%.3f seconds)\n' %
(test_name, elapsed_time))
+ failed = False
elif result_id == RESULT_ID_FAIL:
sys.stderr.write('Test %s failed! (%.3f seconds)\n' %
(test_name, elapsed_time))
failed = True
+elif result_id == RESULT_ID_EOF:
+ sys.stderr.write('Test %s terminated unexpectedly! (%.3f seconds)\n' %
+ (test_name, elapsed_time))
+ failed = True
if failed:
sys.stderr.write('\n====== Emulator output ======\n')