xls-report.py: make behaviour more intelligent in case of repeated results
authorRoman Donchenko <roman.donchenko@itseez.com>
Thu, 4 Jul 2013 15:59:26 +0000 (19:59 +0400)
committerRoman Donchenko <roman.donchenko@itseez.com>
Thu, 4 Jul 2013 16:01:27 +0000 (20:01 +0400)
modules/ts/misc/xls-report.py

index 0aeb1c3..131f3fa 100755 (executable)
@@ -163,7 +163,13 @@ class Collector(object):
 
         for test in run.tests:
             test_results = module_tests.setdefault((test.shortName(), test.param()), {})
-            test_results[configuration] = test.get("gmean") if test.status == 'run' else test.status
+            new_result = test.get("gmean") if test.status == 'run' else test.status
+            test_results[configuration] = min(
+              test_results.get(configuration), new_result,
+              key=lambda r: (1, r) if isinstance(r, numbers.Number) else
+                            (2,) if r is not None else
+                            (3,)
+            ) # prefer lower result; prefer numbers to errors and errors to nothing
 
 def make_match_func(matchers):
     def match_func(properties):