소스 검색

Made test.py output parsable by summary.py

Also fixed an issue with truncation that resulted in a bunch of null
bytes being injected into the CSV output.
Christopher Haster 3 년 전
부모
커밋
1fcd82d5d8
2개의 변경된 파일6개의 추가작업 그리고 4개의 파일을 삭제
  1. 2 1
      scripts/summary.py
  2. 4 3
      scripts/test.py

+ 2 - 1
scripts/summary.py

@@ -18,7 +18,8 @@ CSV_PATHS = ['*.csv']
 MERGES = {
     'add': (
         ['code_size', 'data_size', 'stack_frame', 'struct_size',
-            'coverage_lines', 'coverage_branches'],
+            'coverage_lines', 'coverage_branches',
+            'test_passed'],
         lambda xs: sum(xs[1:], start=xs[0])
     ),
     'mul': (

+ 4 - 3
scripts/test.py

@@ -663,6 +663,7 @@ class TestOutput:
             else:
                 # need to rewrite the file
                 self.head.extend(row.keys() - (self.head + self.tail))
+                self.f.seek(0)
                 self.f.truncate()
                 self.writer = csv.DictWriter(self.f, self.head + self.tail)
                 self.writer.writeheader()
@@ -767,7 +768,7 @@ def run_stage(name, runner_, ids, output_, **args):
                                 runner_, m.group('id'), **args)
                             output_.writerow({
                                 'case': m.group('case'),
-                                'test_pass': 1,
+                                'test_passed': '1/1',
                                 **defines})
                     elif op == 'skipped':
                         locals.seen_perms += 1
@@ -822,7 +823,7 @@ def run_stage(name, runner_, ids, output_, **args):
                     defines = find_defines(runner_, failure.id, **args)
                     output_.writerow({
                         'case': ':'.join([suite, case]),
-                        'test_pass': 0,
+                        'test_passed': '0/1',
                         **defines})
 
                 # race condition for multiple failures?
@@ -936,7 +937,7 @@ def run(runner, test_ids=[], **args):
         trace = openio(args['trace'], 'w', 1)
     output = None
     if args.get('output'):
-        output = TestOutput(args['output'], ['case'], ['test_pass'])
+        output = TestOutput(args['output'], ['case'], ['test_passed'])
 
     # measure runtime
     start = time.time()