diff --git a/tools/parse_test_results.py b/tools/parse_test_results.py
index c6958a54c..768c27c70 100755
--- a/tools/parse_test_results.py
+++ b/tools/parse_test_results.py
@@ -62,7 +62,7 @@ def style_output(o):
elif ': warning: ' in l or ') : warning C' in l or \
'Uninitialised value was created by a' in l or \
'bytes after a block of size' in l:
- ret += '%s\n' % l
+ ret += '%s\n' % l.strip()
elif l == '====== END OUTPUT ======' and not subtle:
ret += '%s\n' % l
subtle = True
@@ -144,8 +144,8 @@ def parse_tests(rev_dir):
try:
j = json.loads(open(f, 'rb').read())
timestamp = os.stat(f).st_mtime
- except:
- print '\nFAILED TO LOAD "%s"\n' %f
+ except Exception, e:
+ print '\nFAILED TO LOAD "%s": %s\n' % (f, e)
continue
platform = platform_toolset[0]
@@ -248,18 +248,37 @@ for branch_name in revs:
idx = 0
for toolset in platforms[p]:
if idx > 0: print >>html, ''
- print >>html, '%s | ' % toolset
+ log_dir = 'logs-%s-%d' % (branch_name, r)
+ if not os.path.exists(log_dir):
+ os.mkdir(log_dir)
+ details_name = os.path.join(log_dir, '%s-%s.html' % (p, toolset))
+ details_file = open(details_name, 'w+')
+
+ print >>details_file, '''%s %s [%s]
+ ''' % (p, toolset, branch_name)
+ print >>html, '%s | ' % (details_name, toolset)
for f in platforms[p][toolset]:
+ print >>details_file, '%s |
' % f
for t in platforms[p][toolset][f]:
details = platforms[p][toolset][f][t]
if details['status'] == 0: c = 'passed'
else: c = 'failed'
log_name = os.path.join('logs-%s-%d' % (branch_name, r), p + '~' + toolset + '~' + t + '~' + f.replace(' ', '.') + '.html')
print >>html, ' | ' % (t, f, c, log_name)
+ print >>details_file, '%s |
' % (c, log_name, t)
save_log_file(log_name, project_name, branch_name, '%s - %s' % (t, f), int(details['timestamp']), details['output'])
+ print >>details_file, '
'
print >>html, '
'
idx += 1
+ print >>details_file, ''
+ details_file.close()
num_printed_revs += 1
if num_printed_revs >= 20: break