WebKit Bugzilla
Attachment 370095 Details for
Bug 197973
: 'analysis-task-configurator-pane' does not update when switch from one analysis task to another
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-197973-20190516175400.patch (text/plain), 13.92 KB, created by
Zhifei Fang
on 2019-05-16 17:54:01 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Zhifei Fang
Created:
2019-05-16 17:54:01 PDT
Size:
13.92 KB
patch
obsolete
>Index: Websites/perf.webkit.org/ChangeLog >=================================================================== >--- Websites/perf.webkit.org/ChangeLog (revision 245429) >+++ Websites/perf.webkit.org/ChangeLog (working copy) >@@ -1,3 +1,17 @@ >+2019-05-16 Zhifei FANG <zhifei_fang@apple.com> >+ >+ Fix 'analysis-task-configurator-pane' doesn't update when switch from one analysis task to another >+ https://bugs.webkit.org/show_bug.cgi?id=197973. >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * browser-tests/analysis-task-page-tests.js: Added a unit test for this change. >+ * browser-tests/index.html: >+ * public/v3/components/custom-analysis-task-configurator.js: >+ (CustomAnalysisTaskConfigurator.prototype.setCommitSets): >+ * public/v3/pages/analysis-task-page.js: >+ (AnalysisTaskConfiguratorPane.prototype.setTestGroups): >+ > 2019-03-25 Dewei Zhu <dewei_zhu@apple.com> > > Primary cluster of measurement set should always contain latest point. >@@ -1422,7 +1436,7 @@ > * browser-tests/time-series-chart-tests.js: Fix a unit tests. > * public/shared/statistics.js: Added a function to t-test certain range based on segmentation results. > (Statistics.supportedOneSideTTestProbabilities): >- (Statistics.findRangesForChangeDetectionsWithWelchsTTest): The argument `segmentations`, every 2 items in the list defines >+ (Statistics.findRangesForChangeDetectionsWithWelchsTTest): The argument `segmentations`, every 2 items in the list defines > segmentation, that is why the index incremental is 2 in this funcion. > * public/v3/components/chart-pane-base.js: Will select the range if user clicks on a suggested annotation. > (ChartPaneBase.prototype.configure): >@@ -1905,7 +1919,7 @@ > Limit the number of builds to check to avoid using a lot of memory with a long delay. > > * public/include/report-processor.php: >- (ReportProcessor::resolve_build_id): >+ (ReportProcessor::resolve_build_id): > > 2018-01-17 Ryosuke Niwa <rniwa@webkit.org> > >Index: Websites/perf.webkit.org/browser-tests/analysis-task-page-tests.js >=================================================================== >--- Websites/perf.webkit.org/browser-tests/analysis-task-page-tests.js (nonexistent) >+++ Websites/perf.webkit.org/browser-tests/analysis-task-page-tests.js (working copy) >@@ -0,0 +1,252 @@ >+describe('AnalysisTaskPage', () => { >+ >+ const scripts = ['instrumentation.js', '../shared/common-component-base.js', 'components/base.js', 'models/data-model.js', 'models/commit-log.js', >+ 'models/commit-set.js', 'models/repository.js', 'models/metric.js', 'models/triggerable.js', 'models/test.js', 'models/platform.js', 'models/test-group.js', 'models/test.js', 'models/triggerable.js', >+ 'models/build-request.js', 'components/test-group-form.js', 'components/chart-pane-base.js', 'components/custom-analysis-task-configurator.js', 'components/instant-file-uploader.js', >+ 'lazily-evaluated-function.js', 'components/custom-configuration-test-group-form.js', 'pages/page.js', 'pages/page-with-heading.js', 'pages/analysis-task-page.js']; >+ >+ const fakeTestGroupData1 = { >+ author: "author1", >+ buildRequests: ["147071", "147072"], >+ commitSets: ["210948", "210949"], >+ createdAt: 1557868890126, >+ hidden: false, >+ id: "1", >+ initialRepetitionCount: "6", >+ mayNeedMoreRequests: false, >+ name: "Fake TestGroup 1", >+ needsNotification: true, >+ notificationSentAt: 0, >+ platform: "1", >+ task: "6490", >+ }; >+ >+ const fakeTestGroupData2 = { >+ author: "author2", >+ buildRequests: ["147073", "147074"], >+ commitSets: ["210949", "210950"], >+ createdAt: 1557670817494, >+ hidden: false, >+ id: "2", >+ initialRepetitionCount: "5", >+ mayNeedMoreRequests: true, >+ name: "Fake TestGroup 2", >+ needsNotification: true, >+ notificationSentAt: 0, >+ platform: "2", >+ task: "6083", >+ } >+ >+ const fakeMetricData = { >+ aggregator: null, >+ name: "Time", >+ test: 1 >+ } >+ >+ const fakePlatformData1 = { >+ metrics: [], >+ lastModified: [], >+ name: "Fake platform 1" >+ } >+ >+ const fakePlatformData2 = { >+ metrics: [], >+ lastModified: [], >+ name: "Fake platform 2" >+ } >+ >+ const fakeRepositoryData = { >+ blameUrl: null, >+ hasReportedCommits: true, >+ name: "OS X", >+ owner: null, >+ url: null >+ }; >+ >+ const fakeCommits = [ >+ {id: "1", repository: "1", commitOwner: null, revision: "240605", time: 1548716856285}, >+ {id: "2", repository: "1", commitOwner: null, revision: "240606", time: 1548684740000}, >+ {id: "3", repository: "1", commitOwner: null, revision: "240607", time: 1549637196578}, >+ ]; >+ >+ >+ const fakeCommitSets1 = [{ >+ customRoots: [], >+ id: "210948", >+ revisionItems: [ >+ {commit: "1", patch: null, rootFile: null, commitOwner: null, requiresBuild: false} >+ ] >+ },{ >+ customRoots: [], >+ id: "210949", >+ revisionItems: [ >+ {commit: "2", patch: null, rootFile: null, commitOwner: null, requiresBuild: false} >+ ] >+ }]; >+ >+ const fakeCommitSets2 = [{ >+ customRoots: [], >+ id: "210949", >+ revisionItems: [ >+ {commit: "2", patch: null, rootFile: null, commitOwner: null, requiresBuild: false} >+ ] >+ },{ >+ customRoots: [], >+ id: "210950", >+ revisionItems: [ >+ {commit: "3", patch: null, rootFile: null, commitOwner: null, requiresBuild: false} >+ ] >+ }]; >+ >+ const fakeBuildRequests1 = [{ >+ build: "1", >+ commitSet: "210948", >+ createdAt: 1548814524000, >+ id: "147071", >+ order: "-2", >+ platform: "1", >+ repositoryGroup: "9", >+ status: "completed", >+ task: "6083", >+ test: "1", >+ testGroup: "14554", >+ triggerable: "1", >+ url: "fake/url" >+ },{ >+ build: "2", >+ commitSet: "210949", >+ createdAt: 1548814624000, >+ id: "147072", >+ order: "-2", >+ platform: "1", >+ repositoryGroup: "9", >+ status: "completed", >+ task: "6083", >+ test: "1", >+ testGroup: "14554", >+ triggerable: "1", >+ url: "fake/url" >+ }]; >+ >+ const fakeBuildRequests2 = [{ >+ build: "3", >+ commitSet: "210949", >+ createdAt: 1548814524000, >+ id: "147073", >+ order: "-2", >+ platform: "1", >+ repositoryGroup: "9", >+ status: "completed", >+ task: "6083", >+ test: "1", >+ testGroup: "14554", >+ triggerable: "2", >+ url: "fake/url" >+ },{ >+ build: "4", >+ commitSet: "210950", >+ createdAt: 1548814624000, >+ id: "147074", >+ order: "-2", >+ platform: "1", >+ repositoryGroup: "9", >+ status: "completed", >+ task: "6083", >+ test: "1", >+ testGroup: "14554", >+ triggerable: "2", >+ url: "fake/url" >+ }]; >+ >+ const fakeTestData = { >+ name: "fake test", >+ parentId: null, >+ url: null, >+ }; >+ >+ const fakeTriggerableRepositoryGroupData = { >+ acceptsCustomRoots: false, >+ description: null, >+ hidden: true, >+ id: "1", >+ name: "fake-svn", >+ repositories: [], >+ } >+ >+ const fakeTriggerableData = { >+ name: "fake triggerable", >+ configurations: [], >+ repositoryGroups:[] >+ }; >+ >+ async function importScripts(context) >+ { >+ return await context.importScripts(scripts, 'AnalysisTaskConfiguratorPane', 'TestGroup', 'Platform', 'BuildRequest', 'Test', 'Repository', 'Metric', 'Triggerable', 'TriggerableRepositoryGroup', 'CommitLog'); >+ } >+ >+ it("should change task configurator content when switch between differnt task", async () => { >+ const context = new BrowsingContext; >+ await importScripts(context); >+ const taskConfiguratorPane = new context.symbols.AnalysisTaskConfiguratorPane; >+ context.document.body.appendChild(taskConfiguratorPane.element()); >+ const fakeRepository = context.symbols.Repository.ensureSingleton("1", fakeRepositoryData); >+ fakeTriggerableRepositoryGroupData.repositories= [{ >+ acceptsPatch: true, >+ repository: fakeRepository >+ }]; >+ const fakeTriggerableRepositoryGroup = context.symbols.TriggerableRepositoryGroup.ensureSingleton("1", fakeTriggerableRepositoryGroupData); >+ const fakeTest = context.symbols.Test.ensureSingleton("1", fakeTestData); >+ fakeMetricData.test = fakeTest; >+ const fakeMetric = context.symbols.Metric.ensureSingleton("1", fakeMetricData); >+ fakePlatformData1.metrics = [fakeMetric]; >+ const fakePlatform1 = context.symbols.Platform.ensureSingleton("1", fakePlatformData1); >+ fakePlatformData2.metrics = [fakeMetric]; >+ const fakePlatform2 = context.symbols.Platform.ensureSingleton("2", fakePlatformData2); >+ fakeTestGroupData1.platform = fakePlatform1; >+ fakeTestGroupData2.platform = fakePlatform2; >+ fakeTriggerableData.repositoryGroups = [fakeTriggerableRepositoryGroup]; >+ fakeTriggerableData.configurations = [{ >+ test: fakeTest, >+ platform: fakePlatform1, >+ }]; >+ >+ const fakeTriggerable1 = context.symbols.Triggerable.ensureSingleton("1", fakeTriggerableData); >+ fakeTriggerableData.configurations = [{ >+ test: fakeTest, >+ platform: fakePlatform2, >+ }]; >+ const fakeTriggerable2 = context.symbols.Triggerable.ensureSingleton("2", fakeTriggerableData); >+ const fakeTestGroup1 = context.symbols.TestGroup.ensureSingleton("1", fakeTestGroupData1); >+ const fakeTestGroup2 = context.symbols.TestGroup.ensureSingleton("2", fakeTestGroupData2); >+ const fakeTestGroups = [fakeTestGroup1, fakeTestGroup2]; >+ const configurator = taskConfiguratorPane.part('form').part('configurator'); >+ context.symbols.CommitLog._constructFromRawData({commits: fakeCommits}); >+ context.symbols.BuildRequest.constructBuildRequestsFromData({ >+ buildRequests: fakeBuildRequests1, >+ commitSets: fakeCommitSets1, >+ commits: fakeCommits, >+ uploadedFiles: [], >+ }).forEach((buildRequest) => { >+ fakeTestGroup1.addBuildRequest(buildRequest); >+ }); >+ configurator.render(); >+ taskConfiguratorPane.setTestGroups(fakeTestGroups, fakeTestGroup1); >+ expect(configurator.platform()).to.be(fakeTestGroup1.platform()); >+ expect(configurator.tests()[0]._id).to.be(fakeTestGroup1.test()._id); >+ expect(configurator.commitSets()[0].revisionForRepository(fakeRepository)).to.be("240605"); >+ expect(configurator.commitSets()[1].revisionForRepository(fakeRepository)).to.be("240606"); >+ context.symbols.BuildRequest.constructBuildRequestsFromData({ >+ buildRequests: fakeBuildRequests2, >+ commitSets: fakeCommitSets2, >+ commits: fakeCommits, >+ uploadedFiles: [], >+ }).forEach((buildRequest) => { >+ fakeTestGroup2.addBuildRequest(buildRequest); >+ }); >+ taskConfiguratorPane.setTestGroups(fakeTestGroups, fakeTestGroup2); >+ expect(configurator.platform()).to.be(fakeTestGroup2.platform()); >+ expect(configurator.tests()[0]._id).to.be(fakeTestGroup2.test()._id); >+ expect(configurator.commitSets()[0].revisionForRepository(fakeRepository)).to.be("240606"); >+ expect(configurator.commitSets()[1].revisionForRepository(fakeRepository)).to.be("240607"); >+ }) >+}); >Index: Websites/perf.webkit.org/browser-tests/index.html >=================================================================== >--- Websites/perf.webkit.org/browser-tests/index.html (revision 245267) >+++ Websites/perf.webkit.org/browser-tests/index.html (working copy) >@@ -31,6 +31,7 @@ mocha.setup('bdd'); > <script src="customizable-test-group-form-tests.js"></script> > <script src="markup-page-tests.js"></script> > <script src="test-group-result-page-tests.js"></script> >+<script src="analysis-task-page-tests.js"></script> > <script> > > afterEach(() => { >Index: Websites/perf.webkit.org/public/v3/components/custom-analysis-task-configurator.js >=================================================================== >--- Websites/perf.webkit.org/public/v3/components/custom-analysis-task-configurator.js (revision 245267) >+++ Websites/perf.webkit.org/public/v3/components/custom-analysis-task-configurator.js (working copy) >@@ -92,7 +92,7 @@ class CustomAnalysisTaskConfigurator ext > this._setPatchFiles('Baseline', baselineCommitSet); > } > >- const comparisonRepositoryGroup = triggerable.repositoryGroups().find((repositoryGroup) => repositoryGroup.accepts(baselineCommitSet)); >+ const comparisonRepositoryGroup = triggerable.repositoryGroups().find((repositoryGroup) => repositoryGroup.accepts(comparisonCommitSet)); > if (comparisonRepositoryGroup) { > this._repositoryGroupByConfiguration['Comparison'] = comparisonRepositoryGroup; > this._setUploadedFilesToUploader(this._customRootUploaders['Comparison'], comparisonCommitSet.customRoots()); >Index: Websites/perf.webkit.org/public/v3/pages/analysis-task-page.js >=================================================================== >--- Websites/perf.webkit.org/public/v3/pages/analysis-task-page.js (revision 245267) >+++ Websites/perf.webkit.org/public/v3/pages/analysis-task-page.js (working copy) >@@ -220,7 +220,7 @@ class AnalysisTaskConfiguratorPane exten > { > this._currentGroup = currentGroup; > const form = this.part('form'); >- if (!form.hasCommitSets() && currentGroup) >+ if (currentGroup) > form.setConfigurations(currentGroup.test(), currentGroup.platform(), currentGroup.repetitionCount(), currentGroup.requestedCommitSets()); > this.enqueueToRender(); > }
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
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 197973
:
370095
|
370325
|
370328
|
370378
|
371537
|
371568
|
372586