summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xrtemstoolkit/execute.py19
-rw-r--r--tester/rt/gdb.py4
-rw-r--r--tester/rt/report.py4
-rw-r--r--tester/rt/test.py5
4 files changed, 20 insertions, 12 deletions
diff --git a/rtemstoolkit/execute.py b/rtemstoolkit/execute.py
index 7c168af..90ddce0 100755
--- a/rtemstoolkit/execute.py
+++ b/rtemstoolkit/execute.py
@@ -43,6 +43,7 @@ import sys
import subprocess
import threading
import time
+import traceback
#
# Support to handle use in a package and as a unit test.
@@ -138,7 +139,7 @@ class execute(object):
block and return None or False if this thread is to exit and True if this
is a timeout check."""
if trace_threads:
- print('executte:_writethread: start')
+ print('execute:_writethread: start')
encoding = True
try:
tmp = bytes('temp', sys.stdin.encoding)
@@ -146,7 +147,9 @@ class execute(object):
encoding = False
try:
while True:
- lines = eval(input())
+ if trace_threads:
+ print('execute:_writethread: call input', input)
+ lines = input()
if type(lines) == str or type(lines) == bytes:
try:
if encoding:
@@ -160,14 +163,15 @@ class execute(object):
break
except:
if trace_threads:
- print('executte:_writethread: exception')
+ print('execute:_writethread: exception')
+ print(traceback.format_exc())
pass
try:
fh.close()
except:
pass
if trace_threads:
- print('executte:_writethread: finished')
+ print('execute:_writethread: finished')
def _readthread(exe, fh, out, prefix = ''):
"""Read from a file handle and write to the output handler
@@ -184,7 +188,7 @@ class execute(object):
log.flush()
if trace_threads:
- print('executte:_readthread: start')
+ print('execute:_readthread: start')
count = 0
line = ''
try:
@@ -206,7 +210,8 @@ class execute(object):
except:
raise
if trace_threads:
- print('executte:_readthread: exception')
+ print('execute:_readthread: exception')
+ print(traceback.format_exc())
pass
try:
fh.close()
@@ -215,7 +220,7 @@ class execute(object):
if len(line):
_output_line(line, exe, prefix, out, 100)
if trace_threads:
- print('executte:_readthread: finished')
+ print('execute:_readthread: finished')
def _timerthread(exe, interval, function):
"""Timer thread is used to timeout a process if no output is
diff --git a/tester/rt/gdb.py b/tester/rt/gdb.py
index 4045f17..443e849 100644
--- a/tester/rt/gdb.py
+++ b/tester/rt/gdb.py
@@ -144,12 +144,12 @@ class gdb(object):
def _writer(self):
try:
try:
- self._lock('_open')
+ self._lock('_writer')
try:
if self.process is None:
return None
finally:
- self._unlock('_open')
+ self._unlock('_writer')
line = self.input.get(timeout = 0.5)
if self.trace:
print('>>> input: queue=%d' % (self.input.qsize()), line)
diff --git a/tester/rt/report.py b/tester/rt/report.py
index 1aa1f35..ee282a5 100644
--- a/tester/rt/report.py
+++ b/tester/rt/report.py
@@ -145,6 +145,7 @@ class report(object):
if name not in self.results:
self.lock.release()
raise error.general('test report missing: %s' % (name))
+ exe = path.basename(self.results[name]['exe'])
result = self.results[name]['result']
time = self.results[name]['end'] - self.results[name]['start']
if mode != 'none':
@@ -158,8 +159,7 @@ class report(object):
log.output(header)
if output:
log.output(output)
- if header:
- log.output('Result: %-10s Time: %s' % (result, str(time)))
+ log.output('Result: %-10s Time: %s %s' % (result, str(time), exe))
def summary(self):
def show_state(results, state, max_len):
diff --git a/tester/rt/test.py b/tester/rt/test.py
index 3f8ee49..9a34234 100644
--- a/tester/rt/test.py
+++ b/tester/rt/test.py
@@ -217,7 +217,10 @@ def run(command_path = None):
opts.log_info()
debug_trace = opts.find_arg('--debug-trace')
if debug_trace:
- debug_trace = debug_trace[1]
+ if len(debug_trace) != 1:
+ debug_trace = debug_trace[1]
+ else:
+ raise error.general('no debug flags, can be: console,gdb,output')
else:
debug_trace = ''
opts.defaults['debug_trace'] = debug_trace