Add support for boolean properties in BuildbotSyncer while submitting build request...
authoraakash_jain@apple.com <aakash_jain@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 15 Mar 2018 03:17:37 +0000 (03:17 +0000)
committeraakash_jain@apple.com <aakash_jain@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 15 Mar 2018 03:17:37 +0000 (03:17 +0000)
https://bugs.webkit.org/show_bug.cgi?id=183638

Reviewed by Ryosuke Niwa.

* tools/js/buildbot-syncer.js:
(BuildbotSyncer._parseRepositoryGroupPropertyTemplate): Allow boolean properties.
* server-tests/tools-sync-buildbot-integration-tests.js: Tests for boolean properties.
* unit-tests/buildbot-syncer-tests.js: Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@229618 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Websites/perf.webkit.org/ChangeLog
Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js
Websites/perf.webkit.org/tools/js/buildbot-syncer.js
Websites/perf.webkit.org/unit-tests/buildbot-syncer-tests.js

index ad69f1b..454aec0 100644 (file)
@@ -1,3 +1,15 @@
+2018-03-14  Aakash Jain  <aakash_jain@apple.com>
+
+        Add support for boolean properties in BuildbotSyncer while submitting build request to Buildbot 0.9 server
+        https://bugs.webkit.org/show_bug.cgi?id=183638
+
+        Reviewed by Ryosuke Niwa.
+
+        * tools/js/buildbot-syncer.js:
+        (BuildbotSyncer._parseRepositoryGroupPropertyTemplate): Allow boolean properties.
+        * server-tests/tools-sync-buildbot-integration-tests.js: Tests for boolean properties.
+        * unit-tests/buildbot-syncer-tests.js: Ditto.
+
 2018-03-04  Dewei Zhu  <dewei_zhu@apple.com>
 
         Create analysis task should use build time as fallback when commit time is not available.
index 1a5755a..c737bb6 100644 (file)
@@ -25,6 +25,7 @@ const configWithOneTesterTwoBuilders = {
             testProperties: {'wk': {'revision': 'WebKit'}, 'roots': {'roots': {}}},
             buildProperties: {'wk': {'revision': 'WebKit'}, 'wk-patch': {'patch': 'WebKit'},
                 'checkbox': {'ifRepositorySet': ['WebKit'], 'value': 'build-wk'},
+                'build-wk': {'ifRepositorySet': ['WebKit'], 'value': true},
                 'owned-commits': {'ownedRevisions': 'WebKit'}},
             acceptsRoots: true,
         }
@@ -70,6 +71,7 @@ const configWithPlatformName = {
             testProperties: {'wk': {'revision': 'WebKit'}, 'roots': {'roots': {}}},
             buildProperties: {'wk': {'revision': 'WebKit'}, 'wk-patch': {'patch': 'WebKit'},
                 'checkbox': {'ifRepositorySet': ['WebKit'], 'value': 'build-wk'},
+                'build-wk': {'ifRepositorySet': ['WebKit'], 'value': true},
                 'owned-commits': {'ownedRevisions': 'WebKit'}},
             acceptsRoots: true,
         }
@@ -114,6 +116,7 @@ const configWithTwoTesters = {
             testProperties: {'wk': {'revision': 'WebKit'}, 'roots': {'roots': {}}},
             buildProperties: {'wk': {'revision': 'WebKit'}, 'wk-patch': {'patch': 'WebKit'},
                 'checkbox': {'ifRepositorySet': ['WebKit'], 'value': 'build-wk'},
+                'build-wk': {'ifRepositorySet': ['WebKit'], 'value': true},
                 'owned-commits': {'ownedRevisions': 'WebKit'}},
             acceptsRoots: true,
         }
@@ -382,7 +385,7 @@ describe('sync-buildbot', function () {
             assert.equal(requests.length, 7);
             assertAndResolveRequest(requests[6], 'POST', '/builders/some%20builder/force', 'OK');
             assert.deepEqual(requests[6].data, {'wk': '191622', 'wk-patch': RemoteAPI.url('/api/uploaded-file/1.dat'),
-                'build-request-id': '1', 'forcescheduler': 'force-ab-builds', 'checkbox': 'build-wk'});
+                'build-request-id': '1', 'forcescheduler': 'force-ab-builds', 'checkbox': 'build-wk', 'build-wk': true});
             return MockRemoteAPI.waitForRequest();
         }).then(() => {
             assert.equal(requests.length, 10);
@@ -496,7 +499,7 @@ describe('sync-buildbot', function () {
         }).then(() => {
             assert.equal(requests.length, 7);
             assertAndResolveRequest(requests[6], 'POST', '/builders/some%20builder/force', 'OK');
-            assert.deepEqual(requests[6].data, {'wk': '191622', 'build-request-id': '2', 'forcescheduler': 'force-ab-builds', 'checkbox': 'build-wk'});
+            assert.deepEqual(requests[6].data, {'wk': '191622', 'build-request-id': '2', 'forcescheduler': 'force-ab-builds', 'checkbox': 'build-wk', 'build-wk': true});
             return MockRemoteAPI.waitForRequest();
         }).then(() => {
             assert.equal(requests.length, 10);
@@ -655,7 +658,7 @@ describe('sync-buildbot', function () {
             assert.equal(requests.length, 7);
             assertAndResolveRequest(requests[6], 'POST', '/builders/some%20builder/force', 'OK');
             assert.deepEqual(requests[6].data, {'wk': '191622', 'wk-patch': RemoteAPI.url('/api/uploaded-file/1.dat'),
-                'build-request-id': '1', 'forcescheduler': 'force-ab-builds', 'checkbox': 'build-wk', 'platform-name': 'some platform'});
+                'build-request-id': '1', 'forcescheduler': 'force-ab-builds', 'checkbox': 'build-wk', 'build-wk': true, 'platform-name': 'some platform'});
             return MockRemoteAPI.waitForRequest();
         }).then(() => {
             assert.equal(requests.length, 10);
@@ -769,7 +772,7 @@ describe('sync-buildbot', function () {
         }).then(() => {
             assert.equal(requests.length, 7);
             assertAndResolveRequest(requests[6], 'POST', '/builders/some%20builder/force', 'OK');
-            assert.deepEqual(requests[6].data, {'wk': '191622', 'build-request-id': '2', 'forcescheduler': 'force-ab-builds', 'checkbox': 'build-wk', 'platform-name': 'some platform'});
+            assert.deepEqual(requests[6].data, {'wk': '191622', 'build-request-id': '2', 'forcescheduler': 'force-ab-builds', 'checkbox': 'build-wk', 'build-wk': true, 'platform-name': 'some platform'});
             return MockRemoteAPI.waitForRequest();
         }).then(() => {
             assert.equal(requests.length, 10);
index beed3c0..38039c2 100644 (file)
@@ -576,7 +576,7 @@ class BuildbotSyncer {
         for (const propertyName in properties) {
             let value = properties[propertyName];
             const isDictionary = typeof(value) == 'object';
-            assert(isDictionary || typeof(value) == 'string',
+            assert(isDictionary || typeof(value) == 'string' || typeof(value) == 'boolean',
                 `Repository group "${groupName}" uses an invalid value "${value}" in property "${propertyName}"`);
 
             if (!isDictionary) {
index 425fa7c..41367d8 100644 (file)
@@ -1102,6 +1102,7 @@ describe('BuildbotSyncer', () => {
                     'webkit': {'revision': 'WebKit'},
                     'webkit-patch': {'patch': 'WebKit'},
                     'checkbox': {'ifRepositorySet': ['WebKit'], 'value': 'build-webkit'},
+                    'build-webkit': {'ifRepositorySet': ['WebKit'], 'value': true},
                     'shared': {'revision': 'Shared'},
                 },
                 'acceptsRoots': true,
@@ -1112,6 +1113,7 @@ describe('BuildbotSyncer', () => {
             assert.equal(properties['webkit'], '197463');
             assert.equal(properties['webkit-patch'], 'http://build.webkit.org/api/uploaded-file/453.dat');
             assert.equal(properties['checkbox'], 'build-webkit');
+            assert.equal(properties['build-webkit'], true);
         });
 
         it('should resolve "ifBuilt"', () => {
@@ -1162,12 +1164,14 @@ describe('BuildbotSyncer', () => {
                     'webkit': {'revision': 'WebKit'},
                     'shared': {'revision': 'Shared'},
                     'roots': {'roots': {}},
-                    'checkbox': {'ifBuilt': ['WebKit'], 'value': 'test-webkit'}
+                    'checkbox': {'ifBuilt': ['WebKit'], 'value': 'test-webkit'},
+                    'test-webkit': {'ifBuilt': ['WebKit'], 'value': true}
                 },
                 'buildProperties': {
                     'webkit': {'revision': 'WebKit'},
                     'webkit-patch': {'patch': 'WebKit'},
                     'checkbox': {'ifRepositorySet': ['WebKit'], 'value': 'build-webkit'},
+                    'build-webkit': {'ifRepositorySet': ['WebKit'], 'value': true},
                     'shared': {'revision': 'Shared'},
                 },
                 'acceptsRoots': true,
@@ -1179,6 +1183,7 @@ describe('BuildbotSyncer', () => {
             assert.equal(properties['webkit'], '197463');
             assert.equal(properties['roots'], '[{"url":"http://build.webkit.org/api/uploaded-file/456.dat"}]');
             assert.equal(properties['checkbox'], 'test-webkit');
+            assert.equal(properties['test-webkit'], true);
         });
 
         it('should not set the value for "ifBuilt" if no build for the repository in the list appears', () => {
@@ -1190,13 +1195,15 @@ describe('BuildbotSyncer', () => {
                     'webkit': {'revision': 'WebKit'},
                     'owner-repo': {'revision': 'Owner Repository'},
                     'roots': {'roots': {}},
-                    'checkbox': {'ifBuilt': ['WebKit'], 'value': 'test-webkit'}
+                    'checkbox': {'ifBuilt': ['WebKit'], 'value': 'test-webkit'},
+                    'test-webkit': {'ifBuilt': ['WebKit'], 'value': true}
                 },
                 'buildProperties': {
                     'webkit': {'revision': 'WebKit'},
                     'webkit-patch': {'patch': 'WebKit'},
                     'owner-repo': {'revision': 'Owner Repository'},
                     'checkbox': {'ifRepositorySet': ['WebKit'], 'value': 'build-webkit'},
+                    'build-webkit': {'ifRepositorySet': ['WebKit'], 'value': true},
                     'owned-commits': {'ownedRevisions': 'Owner Repository'}
                 },
                 'acceptsRoots': true,
@@ -1209,6 +1216,7 @@ describe('BuildbotSyncer', () => {
             assert.equal(properties['webkit'], '197463');
             assert.equal(properties['roots'], '[{"url":"http://build.webkit.org/api/uploaded-file/456.dat"}]');
             assert.equal(properties['checkbox'], undefined);
+            assert.equal(properties['test-webkit'], undefined);
         });
 
         it('should resolve "ifRepositorySet" and "requiresBuild"', () => {
@@ -1226,6 +1234,7 @@ describe('BuildbotSyncer', () => {
                     'webkit-patch': {'patch': 'WebKit'},
                     'owner-repo': {'revision': 'Owner Repository'},
                     'checkbox': {'ifRepositorySet': ['WebKit'], 'value': 'build-webkit'},
+                    'build-webkit': {'ifRepositorySet': ['WebKit'], 'value': true},
                     'owned-commits': {'ownedRevisions': 'Owner Repository'}
                 },
                 'acceptsRoots': true,
@@ -1236,6 +1245,7 @@ describe('BuildbotSyncer', () => {
             assert.equal(properties['webkit'], '197463');
             assert.equal(properties['owner-repo'], 'owner-001');
             assert.equal(properties['checkbox'], undefined);
+            assert.equal(properties['build-webkit'], undefined);
             assert.deepEqual(JSON.parse(properties['owned-commits']), {'Owner Repository': [{revision: 'owned-002', repository: 'Owned Repository', ownerRevision: 'owner-001'}]});
         });
 
@@ -1255,6 +1265,7 @@ describe('BuildbotSyncer', () => {
                     'webkit-patch': {'patch': 'WebKit'},
                     'owner-repo': {'revision': 'Owner Repository'},
                     'checkbox': {'ifRepositorySet': ['WebKit'], 'value': 'build-webkit'},
+                    'build-webkit': {'ifRepositorySet': ['WebKit'], 'value': true},
                     'owned-commits': {'ownedRevisions': 'Owner Repository'}
                 },
                 'acceptsRoots': true,
@@ -1265,6 +1276,7 @@ describe('BuildbotSyncer', () => {
             assert.equal(properties['webkit'], '197463');
             assert.equal(properties['owner-repo'], 'owner-001');
             assert.equal(properties['checkbox'], 'build-webkit');
+            assert.equal(properties['build-webkit'], true);
             assert.equal(properties['webkit-patch'], 'http://build.webkit.org/api/uploaded-file/453.dat');
             assert.deepEqual(JSON.parse(properties['owned-commits']), {'Owner Repository': [{revision: 'owned-002', repository: 'Owned Repository', ownerRevision: 'owner-001'}]});
         });