Changeset 277671 in webkit
- Timestamp:
- May 18, 2021 12:56:03 PM (3 years ago)
- Location:
- trunk/Websites/perf.webkit.org
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Websites/perf.webkit.org/ChangeLog
r277220 r277671 1 2021-05-18 Zhifei Fang <zhifei_fang@apple.com> 2 3 Commits updater should ignore null revision identifier 4 https://bugs.webkit.org/show_bug.cgi?id=225911 5 6 Reviewed by Ryosuke Niwa. 7 8 * public/include/commit-updater.php: 9 * server-tests/api-report-commits-tests.js: 10 1 11 2021-05-07 Zhifei Fang <zhifei_fang@apple.com> 2 12 -
trunk/Websites/perf.webkit.org/public/include/commit-updater.php
r275329 r277671 82 82 83 83 $update = array('commit' => &$commit_data, 'repository' => &$commit_info['repository']); 84 if (array_key_exists('revisionIdentifier', $commit_info) ) {84 if (array_key_exists('revisionIdentifier', $commit_info) && isset($commit_info['revisionIdentifier'])) { 85 85 if (array_key_exists($commit_info['revisionIdentifier'], $commit_revision_identifiers)) 86 86 $this->exit_with_error('DuplicatedRevisionIdentifier', array('commit' => $commit_info)); … … 170 170 if (array_key_exists('previousCommit', $commit_info)) 171 171 require_format('Revision', $commit_info['previousCommit'], '/^[A-Za-z0-9 \.]+$/'); 172 if (array_key_exists('revisionIdentifier', $commit_info) )172 if (array_key_exists('revisionIdentifier', $commit_info) && isset($commit_info['revisionIdentifier'])) 173 173 require_format('RevisionIdentifier', $commit_info['revisionIdentifier'], '/^\d+@[\w\.\-]+$/'); 174 174 } -
trunk/Websites/perf.webkit.org/server-tests/api-report-commits-tests.js
r275329 r277671 111 111 "message": "some message", 112 112 }, 113 ] 114 } 115 116 const emptyRevisionIdentifierCommits = { 117 "workerName": "someWorker", 118 "workerPassword": "somePassword", 119 "commits": [ 120 { 121 "repository": "WebKit", 122 "revision": "210948", 123 "revisionIdentifier": null, 124 "time": "2017-01-20T02:52:34.577Z", 125 "author": {"name": "Zalan Bujtas", "account": "zalan@apple.com"}, 126 "message": "a message", 127 }, 128 { 129 "repository": "WebKit", 130 "revision": "210949", 131 "previousCommit": "210948", 132 "revisionIdentifier": null, 133 "time": "2017-01-20T03:23:50.645Z", 134 "author": {"name": "Chris Dumez", "account": "cdumez@apple.com"}, 135 "message": "some message", 136 }, 137 ] 138 } 139 140 const emptyRevisionIdentifierAndValidRevisionIdentifierCommits = { 141 "workerName": "someWorker", 142 "workerPassword": "somePassword", 143 "commits": [ 144 { 145 "repository": "WebKit", 146 "revision": "210948", 147 "revisionIdentifier": null, 148 "time": "2017-01-20T02:52:34.577Z", 149 "author": {"name": "Zalan Bujtas", "account": "zalan@apple.com"}, 150 "message": "a message", 151 }, 152 { 153 "repository": "WebKit", 154 "revision": "210949", 155 "previousCommit": "210948", 156 "revisionIdentifier": "184276@main", 157 "time": "2017-01-20T03:23:50.645Z", 158 "author": {"name": "Chris Dumez", "account": "cdumez@apple.com"}, 159 "message": "some message", 160 }, 161 ] 162 } 163 164 const emptyRevisionIdentifierWithInvalidRevisionIdentifierCommits = { 165 "workerName": "someWorker", 166 "workerPassword": "somePassword", 167 "commits": [ 168 { 169 "repository": "WebKit", 170 "revision": "210948", 171 "revisionIdentifier": null, 172 "time": "2017-01-20T02:52:34.577Z", 173 "author": {"name": "Zalan Bujtas", "account": "zalan@apple.com"}, 174 "message": "a message", 175 }, 176 { 177 "repository": "WebKit", 178 "revision": "210949", 179 "revisionIdentifier": "", 180 "time": "2017-01-20T03:23:50.645Z", 181 "author": {"name": "Chris Dumez", "account": "cdumez@apple.com"}, 182 "message": "some message", 183 }, 184 { 185 "repository": "WebKit", 186 "revision": "210950", 187 "revisionIdentifier": false, 188 "time": "2017-01-20T03:23:50.645Z", 189 "author": {"name": "Chris Dumez", "account": "cdumez@apple.com"}, 190 "message": "some message", 191 }, 192 { 193 "repository": "WebKit", 194 "revision": "210950", 195 "revisionIdentifier": 0, 196 "time": "2017-01-20T03:23:50.645Z", 197 "author": {"name": "Chris Dumez", "account": "cdumez@apple.com"}, 198 "message": "some message", 199 } 113 200 ] 114 201 } … … 198 285 }); 199 286 200 it("should reject an invalid revision label", async () => { 287 it("should reject with invalid revision identifier with empty revision identifier", async () => { 288 await addWorkerForReport(subversionCommit); 289 const response = await TestServer.remoteAPI().postJSON('/api/report-commits/', emptyRevisionIdentifierWithInvalidRevisionIdentifierCommits); 290 assert.strictEqual(response['status'], 'InvalidRevisionIdentifier'); 291 const rows = await TestServer.database().selectAll('commits'); 292 assert.strictEqual(rows.length, 0); 293 }); 294 295 it("should reject an invalid revision identifier", async () => { 201 296 await addWorkerForReport(subversionCommit); 202 297 const response = await TestServer.remoteAPI().postJSON('/api/report-commits/', invalidCommitRevisionIdentifierCommits); … … 206 301 }); 207 302 208 it("should reject with duplicated commit revision labels", async () => {303 it("should reject with duplicated commit revision identifiers", async () => { 209 304 await addWorkerForReport(subversionCommit); 210 305 const response = await TestServer.remoteAPI().postJSON('/api/report-commits/', duplicatedCommitRevisionIdentifierCommits); … … 212 307 const rows = await TestServer.database().selectAll('commits'); 213 308 assert.strictEqual(rows.length, 0); 309 }); 310 311 it("should store two commits with empty revision identifier", async () => { 312 await addWorkerForReport(emptyRevisionIdentifierCommits); 313 const response = await TestServer.remoteAPI().postJSON('/api/report-commits/', emptyRevisionIdentifierCommits); 314 assert.strictEqual(response['status'], 'OK'); 315 const db = TestServer.database(); 316 const result = await Promise.all([db.selectAll('commits'), db.selectAll('committers')]); 317 318 const commits = result[0]; 319 const committers = result[1]; 320 assert.strictEqual(commits.length, 2); 321 assert.strictEqual(committers.length, 2); 322 323 let reportedData = emptyRevisionIdentifierCommits.commits[0]; 324 assert.strictEqual(commits[0]['revision'], reportedData['revision']); 325 assert.strictEqual(commits[0]['revision_identifier'], null); 326 assert.strictEqual(commits[0]['time'].toString(), new Date('2017-01-20 02:52:34.577').toString()); 327 assert.strictEqual(commits[0]['message'], reportedData['message']); 328 assert.strictEqual(commits[0]['committer'], committers[0]['id']); 329 assert.strictEqual(commits[0]['previous_commit'], null); 330 assert.strictEqual(committers[0]['name'], reportedData['author']['name']); 331 assert.strictEqual(committers[0]['account'], reportedData['author']['account']); 332 333 reportedData = emptyRevisionIdentifierCommits.commits[1]; 334 assert.strictEqual(commits[1]['revision'], reportedData['revision']); 335 assert.strictEqual(commits[0]['revision_identifier'], null); 336 assert.strictEqual(commits[1]['time'].toString(), new Date('2017-01-20 03:23:50.645').toString()); 337 assert.strictEqual(commits[1]['message'], reportedData['message']); 338 assert.strictEqual(commits[1]['committer'], committers[1]['id']); 339 assert.strictEqual(commits[1]['previous_commit'], commits[0]['id']); 340 assert.strictEqual(committers[1]['name'], reportedData['author']['name']); 341 assert.strictEqual(committers[1]['account'], reportedData['author']['account']); 342 343 }); 344 345 it("should store two commits with one empty revision identifier and one valid revision identifier", async () => { 346 await addWorkerForReport(emptyRevisionIdentifierAndValidRevisionIdentifierCommits); 347 const response = await TestServer.remoteAPI().postJSON('/api/report-commits/', emptyRevisionIdentifierAndValidRevisionIdentifierCommits); 348 assert.strictEqual(response['status'], 'OK'); 349 const db = TestServer.database(); 350 const result = await Promise.all([db.selectAll('commits'), db.selectAll('committers')]); 351 352 const commits = result[0]; 353 const committers = result[1]; 354 assert.strictEqual(commits.length, 2); 355 assert.strictEqual(committers.length, 2); 356 357 let reportedData = emptyRevisionIdentifierAndValidRevisionIdentifierCommits.commits[0]; 358 assert.strictEqual(commits[0]['revision'], reportedData['revision']); 359 assert.strictEqual(commits[0]['revision_identifier'], null); 360 assert.strictEqual(commits[0]['time'].toString(), new Date('2017-01-20 02:52:34.577').toString()); 361 assert.strictEqual(commits[0]['message'], reportedData['message']); 362 assert.strictEqual(commits[0]['committer'], committers[0]['id']); 363 assert.strictEqual(commits[0]['previous_commit'], null); 364 assert.strictEqual(committers[0]['name'], reportedData['author']['name']); 365 assert.strictEqual(committers[0]['account'], reportedData['author']['account']); 366 367 reportedData = emptyRevisionIdentifierAndValidRevisionIdentifierCommits.commits[1]; 368 assert.strictEqual(commits[1]['revision'], reportedData['revision']); 369 assert.strictEqual(commits[1]['revision_identifier'], reportedData['revisionIdentifier']); 370 assert.strictEqual(commits[1]['time'].toString(), new Date('2017-01-20 03:23:50.645').toString()); 371 assert.strictEqual(commits[1]['message'], reportedData['message']); 372 assert.strictEqual(commits[1]['committer'], committers[1]['id']); 373 assert.strictEqual(commits[1]['previous_commit'], commits[0]['id']); 374 assert.strictEqual(committers[1]['name'], reportedData['author']['name']); 375 assert.strictEqual(committers[1]['account'], reportedData['author']['account']); 214 376 }); 215 377 … … 284 446 }); 285 447 286 it("should update an existing commit with commit labelif there is one", async () => {448 it("should update an existing commit with revision identifier if there is one", async () => { 287 449 const db = TestServer.database(); 288 450 const reportedData = subversionCommitWithRevisionIdentifier.commits[0];
Note: See TracChangeset
for help on using the changeset viewer.