WebKit Bugzilla
Attachment 342472 Details for
Bug 186544
: Extend test group rule to support 'userInitiated' field.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-186544-20180611153253.patch (text/plain), 10.69 KB, created by
dewei_zhu
on 2018-06-11 15:32:54 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
dewei_zhu
Created:
2018-06-11 15:32:54 PDT
Size:
10.69 KB
patch
obsolete
>Subversion Revision: 232629 >diff --git a/Websites/perf.webkit.org/ChangeLog b/Websites/perf.webkit.org/ChangeLog >index d5335070ce4cf33b98b41711bc2d845a6b94462d..d96d3a0f6075de8930a3c4b60075f60bb5747588 100644 >--- a/Websites/perf.webkit.org/ChangeLog >+++ b/Websites/perf.webkit.org/ChangeLog >@@ -1,3 +1,18 @@ >+2018-06-11 Dewei Zhu <dewei_zhu@apple.com> >+ >+ Extend test group rule to support 'userInitiated' field. >+ https://bugs.webkit.org/show_bug.cgi?id=186544 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Added support for rule specifying whether or not test group is user initiated. >+ >+ * tools/js/analysis-results-notifier.js: Rule now support 'userInitiated' field. >+ (AnalysisResultsNotifier.prototype.async.sendNotificationsForTestGroups): >+ (AnalysisResultsNotifier.prototype._applyRules): >+ (AnalysisResultsNotifier._matchesRule): >+ * unit-tests/analysis-results-notifier-tests.js: Added unit tests for this change. >+ > 2018-05-29 Dewei Zhu <dewei_zhu@apple.com> > > CommitSet range bisector should use commits occur in commit sets which specify the range as valid commits for commits without ordering. >diff --git a/Websites/perf.webkit.org/tools/js/analysis-results-notifier.js b/Websites/perf.webkit.org/tools/js/analysis-results-notifier.js >index 759dc26be8b3b137f46bc5999e3223efceb3cac0..48e2129ebea45fefb92e1918b55d0d4fb9fc1d42 100644 >--- a/Websites/perf.webkit.org/tools/js/analysis-results-notifier.js >+++ b/Websites/perf.webkit.org/tools/js/analysis-results-notifier.js >@@ -39,7 +39,7 @@ class AnalysisResultsNotifier { > const title = `"${testGroup.task().name()}" - "${testGroup.name()}" has finished`; > const message = await AnalysisResultsNotifier._messageForTestGroup(testGroup, title); > let content = AnalysisResultsNotifier._instantiateNotificationTemplate(this._messageTemplate, title, message); >- content = this._applyRules(testGroup.platform().name(), testGroup.test().path()[0].name(), content); >+ content = this._applyRules(testGroup.platform().name(), testGroup.test().path()[0].name(), !!testGroup.author(), content); > const testGroupInfo = {author: testGroup.author()}; > > const tempDir = fs.mkdtempSync(os.tmpdir()); >@@ -77,16 +77,16 @@ class AnalysisResultsNotifier { > return instance; > } > >- _applyRules(platformName, testName, message) >+ _applyRules(platformName, testName, userInitiated, message) > { > for (const rule of this._messageConstructionRules) { >- if (AnalysisResultsNotifier._matchesRule(platformName, testName, rule)) >+ if (AnalysisResultsNotifier._matchesRule(platformName, testName, userInitiated, rule)) > message = AnalysisResultsNotifier._applyUpdate(message, rule.parameters); > } > return message; > } > >- static _matchesRule(platform, test, rule) >+ static _matchesRule(platform, test, userInitiated, rule) > { > if (rule.tests && !rule.tests.includes(test)) > return false; >@@ -94,6 +94,9 @@ class AnalysisResultsNotifier { > if (rule.platforms && !rule.platforms.includes(platform)) > return false; > >+ if ('userInitiated' in rule && userInitiated !== rule.userInitiated) >+ return false; >+ > return true; > } > >diff --git a/Websites/perf.webkit.org/unit-tests/analysis-results-notifier-tests.js b/Websites/perf.webkit.org/unit-tests/analysis-results-notifier-tests.js >index 104b57129354f7bfc6bce7d285db5b338447fc33..4710ce54c24d050701f222f3b2374436a26e1d89 100644 >--- a/Websites/perf.webkit.org/unit-tests/analysis-results-notifier-tests.js >+++ b/Websites/perf.webkit.org/unit-tests/analysis-results-notifier-tests.js >@@ -21,37 +21,67 @@ describe('AnalysisResultsNotifier', () => { > > it('should return a group of matching function based on configuration', () => { > const rule = {platforms: [trunkMacBook, trunkMacBookPro], tests: [speedometer, speedometer2]}; >- assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBook, speedometer2, rule)); >- assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer, rule)); >- assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer2, rule)); >- assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBook, jetStream, rule)); >- assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBookAir, speedometer, rule)); >- assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBookAir, jetStream, rule)); >+ assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBook, speedometer2, true, rule)); >+ assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer, true, rule)); >+ assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer2, true, rule)); >+ assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBook, jetStream, true, rule)); >+ assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBookAir, speedometer, true, rule)); >+ assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBookAir, jetStream, true, rule)); > > }); > > it('should match rule only contains tests correctly', () => { > const rule = {tests: [jetStream]}; >- assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBook, speedometer, rule)); >- assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBook, speedometer2, rule)); >- assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer, rule)); >- assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer2, rule)); >- assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBook, jetStream, rule)); >- assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBookPro, jetStream, rule)); >- assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBookAir, jetStream, rule)); >+ assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBook, speedometer, true, rule)); >+ assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBook, speedometer2, true, rule)); >+ assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer, true, rule)); >+ assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer2, true, rule)); >+ assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBook, jetStream, true, rule)); >+ assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBookPro, jetStream, true, rule)); >+ assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBookAir, jetStream, true, rule)); > }); > > it('should match rule only contains platforms correctly', () => { > const rule = {platforms: [trunkMacBook]}; >- assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBook, speedometer, rule)); >- assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBook, speedometer2, rule)); >- assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBook, jetStream, rule)); >- assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer, rule)); >- assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer2, rule)); >- assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBookPro, jetStream, rule)); >- assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBookAir, jetStream, rule)); >+ assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBook, speedometer, true, rule)); >+ assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBook, speedometer2, true, rule)); >+ assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBook, jetStream, true, rule)); >+ assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer, true, rule)); >+ assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer2, true, rule)); >+ assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBookPro, jetStream, true, rule)); >+ assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBookAir, jetStream, true, rule)); >+ }); >+ >+ it('should match rule with "userInitiated" set to true', () => { >+ const rule = {platforms: [trunkMacBook, trunkMacBookPro], tests: [speedometer, speedometer2], userInitiated: true}; >+ assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBook, speedometer2, true, rule)); >+ assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer, true, rule)); >+ assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer2, true, rule)); >+ assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBook, speedometer2, false, rule)); >+ assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer, false, rule)); >+ assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer2, false, rule)); >+ }); >+ >+ it('should match rule with "userInitiated" set to false', () => { >+ const rule = {platforms: [trunkMacBook, trunkMacBookPro], tests: [speedometer, speedometer2], userInitiated: false}; >+ assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBook, speedometer2, false, rule)); >+ assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer, false, rule)); >+ assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer2, false, rule)); >+ assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBook, speedometer2, true, rule)); >+ assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer, true, rule)); >+ assert.ok(!AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer2, true, rule)); > > }); >+ >+ it('should match the rule regardless whether or not "userInitiated" set or not if rule does not specify', () => { >+ const rule = {platforms: [trunkMacBook, trunkMacBookPro], tests: [speedometer, speedometer2]}; >+ assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBook, speedometer2, true, rule)); >+ assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer, true, rule)); >+ assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer2, true, rule)); >+ assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBook, speedometer2, false, rule)); >+ assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer, false, rule)); >+ assert.ok(AnalysisResultsNotifier._matchesRule(trunkMacBookPro, speedometer2, false, rule)); >+ }); > }); > > describe('_validateRules', () => {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
rniwa
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 186544
: 342472