Bug 1307043 - Make [Ubuntu] in try syntax include ASan tests, r?dustin draft
authorPhil Ringnalda <philringnalda@gmail.com>
Sun, 02 Oct 2016 23:20:02 -0700
changeset 420018 5189af78659ebf99ff14da24fb0cf234f592254c
parent 420017 955840bfd3c20eb24dd5a01be27bdc55c489a285
child 532699 88bc63d2aaf78f62570ace05aa38b392c5ddb0bd
push id31069
push userphilringnalda@gmail.com
push dateMon, 03 Oct 2016 06:21:05 +0000
reviewersdustin
bugs1307043
milestone52.0a1
Bug 1307043 - Make [Ubuntu] in try syntax include ASan tests, r?dustin If you want to run tests on Linux32 and Linux64, you use trychooser syntax like "-u all[Ubuntu]" which taskcluster supports, but if you also built ASan, and want tests on ASan, there's no supported documented way to get them. That sounds like an edge-case, except that to get tests to run on WinXP or Win8 you have to explicitly list them, so to get tests on every platform you build you have to list all of them, and if ASan is one of them you have to somehow know to dig around in the .yml and to know that linux64-asan is the thing to dig out. MozReview-Commit-ID: 2REf0cUWmK8
taskcluster/taskgraph/test/test_try_option_syntax.py
taskcluster/taskgraph/try_option_syntax.py
--- a/taskcluster/taskgraph/test/test_try_option_syntax.py
+++ b/taskcluster/taskgraph/test/test_try_option_syntax.py
@@ -196,20 +196,20 @@ class TestTryOptionSyntax(unittest.TestC
     def test_u_platforms(self):
         "-u gtest[linux,win32] selects the linux and win32 platforms for gtest"
         tos = TryOptionSyntax('try: -u gtest[linux,win32]', graph_with_jobs)
         self.assertEqual(sorted(tos.unittests), sorted([
             {'test': 'gtest', 'platforms': ['linux', 'win32']},
         ]))
 
     def test_u_platforms_pretty(self):
-        "-u gtest[Ubuntu] selects the linux and linux64 platforms for gtest"
+        "-u gtest[Ubuntu] selects the linux, linux64 and linux64-asan platforms for gtest"
         tos = TryOptionSyntax('try: -u gtest[Ubuntu]', graph_with_jobs)
         self.assertEqual(sorted(tos.unittests), sorted([
-            {'test': 'gtest', 'platforms': ['linux', 'linux64']},
+            {'test': 'gtest', 'platforms': ['linux', 'linux64', 'linux64-asan']},
         ]))
 
     def test_u_platforms_negated(self):
         "-u gtest[-linux] selects all platforms but linux for gtest"
         tos = TryOptionSyntax('try: -u gtest[-linux]', graph_with_jobs)
         self.assertEqual(sorted(tos.unittests), sorted([
             {'test': 'gtest', 'platforms': ['linux64']},
         ]))
--- a/taskcluster/taskgraph/try_option_syntax.py
+++ b/taskcluster/taskgraph/try_option_syntax.py
@@ -119,17 +119,17 @@ UNITTEST_ALIASES = {
 }
 
 # unittest platforms can be specified by substring of the "pretty name", which
 # is basically the old Buildbot builder name.  This dict has {pretty name,
 # [test_platforms]} translations, This includes only the most commonly-used
 # substrings.  This is intended only for backward-compatibility.  New test
 # platforms should have their `test_platform` spelled out fully in try syntax.
 UNITTEST_PLATFORM_PRETTY_NAMES = {
-    'Ubuntu': ['linux', 'linux64'],
+    'Ubuntu': ['linux', 'linux64', 'linux64-asan'],
     'x64': ['linux64', 'linux64-asan'],
     # other commonly-used substrings for platforms not yet supported with
     # in-tree taskgraphs:
     # '10.10': [..TODO..],
     # '10.10.5': [..TODO..],
     # '10.6': [..TODO..],
     # '10.8': [..TODO..],
     # 'Android 2.3 API9': [..TODO..],