mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-11 02:15:14 +00:00
Add more debugging to run_host_test
If a host test fails, record the execution state of the EC host process. This is an attempt to provide a hint whether the test was blocked on I/O, if so it might be in 'D' state (but it might have recovered too late too). Signed-off-by: Vincent Palatin <vpalatin@chromium.org> BRANCH=none BUG=chromium:715011 TEST=run 'make runtests -j', then run it again with TIMEOUT reduced to 1 see it fail on 'kb_scan' and 'interrupt' tests with the trace containing '*** test [...] in state Ssl+ ***' Change-Id: I4590a4b84a2aba8d385d3ef911d5d0186e8ce2e3 Reviewed-on: https://chromium-review.googlesource.com/859771 Commit-Ready: Vincent Palatin <vpalatin@chromium.org> Tested-by: Vincent Palatin <vpalatin@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
This commit is contained in:
committed by
chrome-bot
parent
d52ba1a4d4
commit
07230f772e
@@ -7,6 +7,7 @@
|
||||
from cStringIO import StringIO
|
||||
import pexpect
|
||||
import signal
|
||||
import subprocess
|
||||
import sys
|
||||
import time
|
||||
|
||||
@@ -19,6 +20,8 @@ RESULT_ID_EOF = 3
|
||||
|
||||
EXPECT_LIST = [pexpect.TIMEOUT, 'Pass!', 'Fail!', pexpect.EOF]
|
||||
|
||||
PS_ARGS = ['ps', '--no-headers', '-o', 'stat', '--pid']
|
||||
|
||||
class Tee(object):
|
||||
def __init__(self, target):
|
||||
self._target = target
|
||||
@@ -39,6 +42,10 @@ def RunOnce(test_name, log):
|
||||
return child.expect(EXPECT_LIST)
|
||||
finally:
|
||||
if child.isalive():
|
||||
ps_cmd = PS_ARGS + ['%d' % (child.pid)]
|
||||
ps_stat = subprocess.check_output(ps_cmd).strip()
|
||||
log.write('\n*** test %s process %d in state %s ***\n' %
|
||||
(test_name, child.pid, ps_stat))
|
||||
child.kill(signal.SIGTERM)
|
||||
child.read()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user