framework: Only print reports for regressions

The reports were too verbose to be useful. We don't need reports of
successfull test cases, so we now only print validation reports
for regressions or failed tests.

BUG=chromium-os:39362
TEST=run touchtests

Change-Id: I92083c9a45c62b807ae8e398f6c8b0ce7024b6c4
Reviewed-on: https://gerrit.chromium.org/gerrit/45480
Commit-Queue: Dennis Kempin <denniskempin@chromium.org>
Reviewed-by: Dennis Kempin <denniskempin@chromium.org>
Tested-by: Dennis Kempin <denniskempin@chromium.org>
diff --git a/framework/src/main.py b/framework/src/main.py
index 3ab4498..d346349 100644
--- a/framework/src/main.py
+++ b/framework/src/main.py
@@ -109,9 +109,23 @@
   runner = TestRunner(os.environ["TESTS_DIR"], os.environ["XORG_CONF_DIR"])
   results = runner.RunAll(glob)
 
+  # load reference
+  ref = {}
+  if ref_file:
+    ref = json.load(open(ref_file))
+
   # print reports
   sorted_results_items = sorted(results.items())
   for key, value in sorted_results_items:
+    if len(results) > 1:
+      # only print reports for regressions or failed tests
+      if key in ref:
+        delta = value["score"] - ref[key]["score"]
+        if math.fabs(delta) < 1e-10:
+          continue
+      elif value["result"] == "success":
+        continue
+
     print "### Validation report for", key
     print value["description"]
     if value["disabled"]:
@@ -120,11 +134,6 @@
       print value["logs"]["validation"]
       print value["error"]
 
-  # load reference
-  ref = {}
-  if ref_file:
-    ref = json.load(open(ref_file))
-
   # format result table
   table = Table()
   table.title = "Test Results"