rebaseline_server: ignore TSAN, ASAN, Valgrind bots
authorcommit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Wed, 15 Jan 2014 19:16:09 +0000 (19:16 +0000)
committercommit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Wed, 15 Jan 2014 19:16:09 +0000 (19:16 +0000)
BUG=skia:2036
R=bsalomon@google.com

Author: epoger@google.com

Review URL: https://codereview.chromium.org/134643010

git-svn-id: http://skia.googlecode.com/svn/trunk@13094 2bbb7eff-a529-9590-31e7-b0007b416f81

gm/rebaseline_server/results.py
gm/rebaseline_server/tests/inputs/gm-actuals/Test-Ubuntu12-ShuttleA-ATI5770-x86_64-Release-Valgrind/actual-results.json [new file with mode: 0644]
gm/rebaseline_server/tests/inputs/gm-actuals/Test-Ubuntu13-ShuttleA-HD2000-x86_64-Debug-ASAN/actual-results.json [new file with mode: 0644]
gm/rebaseline_server/tests/inputs/gm-actuals/Test-Ubuntu13-ShuttleA-HD2000-x86_64-Debug-TSAN/actual-results.json [new file with mode: 0644]
gm/rebaseline_server/tests/inputs/gm-actuals/Test-Win7-ShuttleA-HD2000-x86_64-Debug-Trybot/actual-results.json [new file with mode: 0644]
gm/rebaseline_server/tests/inputs/gm-expectations/Test-Ubuntu12-ShuttleA-ATI5770-x86_64-Release-Valgrind/expected-results.json [new file with mode: 0644]
gm/rebaseline_server/tests/inputs/gm-expectations/Test-Ubuntu13-ShuttleA-HD2000-x86_64-Debug-ASAN/expected-results.json [new file with mode: 0644]
gm/rebaseline_server/tests/inputs/gm-expectations/Test-Ubuntu13-ShuttleA-HD2000-x86_64-Debug-TSAN/expected-results.json [new file with mode: 0644]
gm/rebaseline_server/tests/inputs/gm-expectations/Test-Win7-ShuttleA-HD2000-x86_64-Debug-Trybot/expected-results.json [new file with mode: 0644]

index 8fda3df..fff0a94 100755 (executable)
@@ -180,6 +180,26 @@ class Results(object):
     return self._results[type]
 
   @staticmethod
+  def _ignore_builder(builder):
+    """Returns True if we should ignore expectations and actuals for a builder.
+
+    This allows us to ignore builders for which we don't maintain expectations
+    (trybots, Valgrind, ASAN, TSAN), and avoid problems like
+    https://code.google.com/p/skia/issues/detail?id=2036 ('rebaseline_server
+    produces error when trying to add baselines for ASAN/TSAN builders')
+
+    Args:
+      builder: name of this builder, as a string
+
+    Returns:
+      True if we should ignore expectations and actuals for this builder.
+    """
+    return (builder.endswith('-Trybot') or
+            ('Valgrind' in builder) or
+            ('TSAN' in builder) or
+            ('ASAN' in builder))
+
+  @staticmethod
   def _read_dicts_from_root(root, pattern='*.json'):
     """Read all JSON dictionaries within a directory tree.
 
@@ -200,9 +220,7 @@ class Results(object):
     for dirpath, dirnames, filenames in os.walk(root):
       for matching_filename in fnmatch.filter(filenames, pattern):
         builder = os.path.basename(dirpath)
-        # If we are reading from the collection of actual results, skip over
-        # the Trybot results (we don't maintain baselines for them).
-        if builder.endswith('-Trybot'):
+        if Results._ignore_builder(builder):
           continue
         fullpath = os.path.join(dirpath, matching_filename)
         meta_dict[builder] = gm_json.LoadFromFile(fullpath)
@@ -236,11 +254,7 @@ class Results(object):
     for dirpath, dirnames, filenames in os.walk(root):
       for matching_filename in fnmatch.filter(filenames, pattern):
         builder = os.path.basename(dirpath)
-        # We should never encounter Trybot *expectations*, but if we are
-        # writing into the actual-results dir, skip the Trybot actuals.
-        # (I don't know why we would ever write into the actual-results dir,
-        # though.)
-        if builder.endswith('-Trybot'):
+        if Results._ignore_builder(builder):
           continue
         per_builder_dict = meta_dict.get(builder)
         if per_builder_dict is not None:
diff --git a/gm/rebaseline_server/tests/inputs/gm-actuals/Test-Ubuntu12-ShuttleA-ATI5770-x86_64-Release-Valgrind/actual-results.json b/gm/rebaseline_server/tests/inputs/gm-actuals/Test-Ubuntu12-ShuttleA-ATI5770-x86_64-Release-Valgrind/actual-results.json
new file mode 100644 (file)
index 0000000..a60da4f
--- /dev/null
@@ -0,0 +1 @@
+This file should not be read by results.py, so its contents don't matter.
diff --git a/gm/rebaseline_server/tests/inputs/gm-actuals/Test-Ubuntu13-ShuttleA-HD2000-x86_64-Debug-ASAN/actual-results.json b/gm/rebaseline_server/tests/inputs/gm-actuals/Test-Ubuntu13-ShuttleA-HD2000-x86_64-Debug-ASAN/actual-results.json
new file mode 100644 (file)
index 0000000..a60da4f
--- /dev/null
@@ -0,0 +1 @@
+This file should not be read by results.py, so its contents don't matter.
diff --git a/gm/rebaseline_server/tests/inputs/gm-actuals/Test-Ubuntu13-ShuttleA-HD2000-x86_64-Debug-TSAN/actual-results.json b/gm/rebaseline_server/tests/inputs/gm-actuals/Test-Ubuntu13-ShuttleA-HD2000-x86_64-Debug-TSAN/actual-results.json
new file mode 100644 (file)
index 0000000..a60da4f
--- /dev/null
@@ -0,0 +1 @@
+This file should not be read by results.py, so its contents don't matter.
diff --git a/gm/rebaseline_server/tests/inputs/gm-actuals/Test-Win7-ShuttleA-HD2000-x86_64-Debug-Trybot/actual-results.json b/gm/rebaseline_server/tests/inputs/gm-actuals/Test-Win7-ShuttleA-HD2000-x86_64-Debug-Trybot/actual-results.json
new file mode 100644 (file)
index 0000000..a60da4f
--- /dev/null
@@ -0,0 +1 @@
+This file should not be read by results.py, so its contents don't matter.
diff --git a/gm/rebaseline_server/tests/inputs/gm-expectations/Test-Ubuntu12-ShuttleA-ATI5770-x86_64-Release-Valgrind/expected-results.json b/gm/rebaseline_server/tests/inputs/gm-expectations/Test-Ubuntu12-ShuttleA-ATI5770-x86_64-Release-Valgrind/expected-results.json
new file mode 100644 (file)
index 0000000..a60da4f
--- /dev/null
@@ -0,0 +1 @@
+This file should not be read by results.py, so its contents don't matter.
diff --git a/gm/rebaseline_server/tests/inputs/gm-expectations/Test-Ubuntu13-ShuttleA-HD2000-x86_64-Debug-ASAN/expected-results.json b/gm/rebaseline_server/tests/inputs/gm-expectations/Test-Ubuntu13-ShuttleA-HD2000-x86_64-Debug-ASAN/expected-results.json
new file mode 100644 (file)
index 0000000..a60da4f
--- /dev/null
@@ -0,0 +1 @@
+This file should not be read by results.py, so its contents don't matter.
diff --git a/gm/rebaseline_server/tests/inputs/gm-expectations/Test-Ubuntu13-ShuttleA-HD2000-x86_64-Debug-TSAN/expected-results.json b/gm/rebaseline_server/tests/inputs/gm-expectations/Test-Ubuntu13-ShuttleA-HD2000-x86_64-Debug-TSAN/expected-results.json
new file mode 100644 (file)
index 0000000..a60da4f
--- /dev/null
@@ -0,0 +1 @@
+This file should not be read by results.py, so its contents don't matter.
diff --git a/gm/rebaseline_server/tests/inputs/gm-expectations/Test-Win7-ShuttleA-HD2000-x86_64-Debug-Trybot/expected-results.json b/gm/rebaseline_server/tests/inputs/gm-expectations/Test-Win7-ShuttleA-HD2000-x86_64-Debug-Trybot/expected-results.json
new file mode 100644 (file)
index 0000000..a60da4f
--- /dev/null
@@ -0,0 +1 @@
+This file should not be read by results.py, so its contents don't matter.