Bug 1274980 part 1: Add support for test platform regex match. r=dustin
authorWander Lairson Costa <wcosta@mozilla.com>
Tue, 08 Nov 2016 12:11:15 -0200
changeset 351613 ef393dc07cb861db2bdc19a7635b3f3cdec8bc6d
parent 351612 39feb13d796211eb37dda17e3b2c74a5ea283aa6
child 351614 9d6b5736f9c8feee1b11cce37e3b7b6e5c7c116f
push id6795
push userjlund@mozilla.com
push dateMon, 23 Jan 2017 14:19:46 +0000
treeherdermozilla-esr52@76101b503191 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdustin
bugs1274980
milestone52.0a1
Bug 1274980 part 1: Add support for test platform regex match. r=dustin Often we need to setup a test configuration for different platforms, but not for different platform builds (opt/debug). This leads to cumbersome configuration duplicates. This patch adds support for platform regular expression matching. For example, if you want to configure the chunk size for linux64 platform both for opt and debug, originally you would do this: chunks: by-test-platform: linux64/opt: 4 linux64/debug: 4 default: 8 With regular expression matching, you only need: chunks: by-test-platform: linux64/.*: 4 default: 8 This patch was originally written by Geoffrey Brown for Windows support. MozReview-Commit-ID: KbMHV7UkTLe
taskcluster/taskgraph/test/test_transforms_base.py
--- a/taskcluster/taskgraph/test/test_transforms_base.py
+++ b/taskcluster/taskgraph/test/test_transforms_base.py
@@ -76,16 +76,30 @@ class TestKeyedBy(unittest.TestCase):
                     'a': 10,
                     'b': 20,
                 },
             },
             'other-value': 'b',
         }
         self.assertEqual(get_keyed_by(test, 'option', 'x'), 20)
 
+    def test_by_value_regex(self):
+        test = {
+            'test-name': 'tname',
+            'option': {
+                'by-test-platform': {
+                    'macosx64/.*': 10,
+                    'linux64/debug': 20,
+                    'default': 5,
+                },
+            },
+            'test-platform': 'macosx64/debug',
+        }
+        self.assertEqual(get_keyed_by(test, 'option', 'x'), 10)
+
     def test_by_value_default(self):
         test = {
             'test-name': 'tname',
             'option': {
                 'by-other-value': {
                     'a': 10,
                     'default': 30,
                 },