[webkit-changes] [WebKit/WebKit] 473724: Add test parameter to performance dashboard to sup...

dewei-zhu noreply at github.com
Fri Jun 23 13:49:20 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 473724c9a49c6b95dc3104784c2eb7fbc0c0764b
      https://github.com/WebKit/WebKit/commit/473724c9a49c6b95dc3104784c2eb7fbc0c0764b
  Author: Dewei Zhu <dewei_zhu at apple.com>
  Date:   2023-06-23 (Fri, 23 Jun 2023)

  Changed paths:
    M Websites/perf.webkit.org/init-database.sql
    M Websites/perf.webkit.org/migrate-database.sql
    A Websites/perf.webkit.org/public/admin/test-parameters.php
    M Websites/perf.webkit.org/public/api/build-requests.php
    M Websites/perf.webkit.org/public/api/test-groups.php
    M Websites/perf.webkit.org/public/api/update-triggerable.php
    M Websites/perf.webkit.org/public/include/admin-header.php
    M Websites/perf.webkit.org/public/include/build-requests-fetcher.php
    M Websites/perf.webkit.org/public/include/commit-sets-helpers.php
    M Websites/perf.webkit.org/public/include/db.php
    M Websites/perf.webkit.org/public/include/manifest-generator.php
    M Websites/perf.webkit.org/public/privileged-api/add-build-requests.php
    M Websites/perf.webkit.org/public/privileged-api/create-analysis-task.php
    M Websites/perf.webkit.org/public/privileged-api/create-test-group.php
    M Websites/perf.webkit.org/public/v3/components/custom-configuration-test-group-form.js
    M Websites/perf.webkit.org/public/v3/index.html
    M Websites/perf.webkit.org/public/v3/models/build-request.js
    M Websites/perf.webkit.org/public/v3/models/commit-set.js
    M Websites/perf.webkit.org/public/v3/models/manifest.js
    M Websites/perf.webkit.org/public/v3/models/measurement-adaptor.js
    M Websites/perf.webkit.org/public/v3/models/test-group.js
    A Websites/perf.webkit.org/public/v3/models/test-parameter.js
    M Websites/perf.webkit.org/public/v3/models/triggerable.js
    M Websites/perf.webkit.org/public/v3/pages/analysis-task-page.js
    M Websites/perf.webkit.org/public/v3/pages/create-analysis-task-page.js
    M Websites/perf.webkit.org/server-tests/api-build-requests-tests.js
    M Websites/perf.webkit.org/server-tests/api-manifest-tests.js
    M Websites/perf.webkit.org/server-tests/api-test-groups.js
    M Websites/perf.webkit.org/server-tests/api-update-triggerable-tests.js
    M Websites/perf.webkit.org/server-tests/privileged-api-add-build-requests-tests.js
    M Websites/perf.webkit.org/server-tests/privileged-api-create-analysis-task-tests.js
    M Websites/perf.webkit.org/server-tests/privileged-api-create-test-group-tests.js
    M Websites/perf.webkit.org/server-tests/resources/mock-data.js
    M Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js
    M Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js
    M Websites/perf.webkit.org/tools/js/buildbot-syncer.js
    M Websites/perf.webkit.org/tools/js/buildbot-triggerable.js
    M Websites/perf.webkit.org/tools/js/database.js
    M Websites/perf.webkit.org/tools/js/v3-models.js
    M Websites/perf.webkit.org/unit-tests/build-request-tests.js
    M Websites/perf.webkit.org/unit-tests/resources/mock-v3-models.js
    M Websites/perf.webkit.org/unit-tests/test-groups-tests.js
    A Websites/perf.webkit.org/unit-tests/test-parameter-tests.js

  Log Message:
  -----------
  Add test parameter to performance dashboard to support more customization in A/B testing.
https://bugs.webkit.org/show_bug.cgi?id=257017
rdar://100645382

Reviewed by Alexey Proskuryakov.

Introduce 'test parameter' concept to performance dashboard which adds more customization ability.
Create 1-to-N relationship between triggerable configuration and test parameter so that different
(platform, test) pair can support different test parameters.
Add test parameter set which stores a set of parameter value and build requests can optionally refer to it.

* Websites/perf.webkit.org/init-database.sql: Added 'test_parameters' and its related tables.
Added 'test_parameter_sets' and a corresponding field in 'build_requests' table that refers to it.
* Websites/perf.webkit.org/migrate-database.sql: Added migration SQL queries.
* Websites/perf.webkit.org/public/admin/test-parameters.php: Added an admin page for 'test_parameters' table.
* Websites/perf.webkit.org/public/api/build-requests.php: Added 'testParameterSets' to API return value.
* Websites/perf.webkit.org/public/api/test-groups.php: Added 'testParameterSets' to API return value.
* Websites/perf.webkit.org/public/api/update-triggerable.php: Added support for updating test parameters
for triggerable configurations.
* Websites/perf.webkit.org/public/include/admin-header.php: Added 'Test Parameters' tab.
Updated 'assert' usage to avoid using deprecated syntax.
Fixed a bug in 'update_boolean_field' that updating a boolean column on a table with multile boolean
columns only works for first column.
Added 'select' type in 'render_form_control_for_column'.
* Websites/perf.webkit.org/public/include/build-requests-fetcher.php: Added 'testParameterSets' to
API return value.
* Websites/perf.webkit.org/public/include/commit-sets-helpers.php: Added code to support inserting
test parameters to build requests while creating a test group.
* Websites/perf.webkit.org/public/include/db.php: Added helper function to be able to fetch enum values.
* Websites/perf.webkit.org/public/include/manifest-generator.php: Added 'testParameters' to manifest.
Added test parameter and triggerable configuration relationship in manifest.
* Websites/perf.webkit.org/public/privileged-api/add-build-requests.php: Build requests added using this API
should created with the same test parameter sets as the original build requests.
* Websites/perf.webkit.org/public/privileged-api/create-analysis-task.php: Added 'testParametersList' arugment
to this API and corresponding test parameter sets will be created.
* Websites/perf.webkit.org/public/privileged-api/create-test-group.php: Added 'testParametersList' argument
to this API and correspoding test parameter sets will be created.
* Websites/perf.webkit.org/public/v3/components/custom-configuration-test-group-form.js: Adopted new API.
(CustomConfigurationTestGroupForm.prototype.startTesting):
* Websites/perf.webkit.org/public/v3/index.html: Added 'test-parameter.js'.
* Websites/perf.webkit.org/public/v3/models/build-request.js: Added 'testParameterSet'.
(BuildRequest):
(BuildRequest.prototype.updateSingleton):
(BuildRequest.prototype.testParameterSet):
(BuildRequest.prototype.async findBuildRequestWithSameRoots):
(BuildRequest.constructBuildRequestsFromData):
* Websites/perf.webkit.org/public/v3/models/commit-set.js: Removed an extra space.
(CommitSet.prototype.commits):
* Websites/perf.webkit.org/public/v3/models/manifest.js: Added code to resolve test parameters.
(Manifest.reset):
(Manifest._didFetchManifest):
(Manifest):
* Websites/perf.webkit.org/public/v3/models/measurement-adaptor.js: Added testParameterSet function which currently
returns null.
* Websites/perf.webkit.org/public/v3/models/test-group.js: Extend API to support optional test parameter sets.
(TestGroup):
(TestGroup.prototype.addBuildRequest):
(TestGroup._computeRequestedCommitSets.set return):
(TestGroup._computeRequestedCommitSets.set requestedCommitSets):
(TestGroup._computeRequestedCommitSets.const.set request):
(TestGroup._computeRequestedCommitSets):
(TestGroup.set const):
(TestGroup.async createWithTask):
(TestGroup.async createWithCustomConfiguration):
(TestGroup.async createAndRefetchTestGroups):
* Websites/perf.webkit.org/public/v3/models/test-parameter.js: Added 'TestParameter' and 'TestParameterSet'
models which are JavaScript representations of 'test_paramters' and 'test_parameter_sets' tables.
Added 'CustomTestParameterSet' to be used in the UI.
(TestParameter):
(TestParameter.prototype.get disabled):
(TestParameter.prototype.get type):
(TestParameter.prototype.get description):
(TestParameter.prototype.get hasFile):
(TestParameter.prototype.get hasValue):
(TestParameter.findByName):
(TestParameterSet):
(TestParameterSet.prototype.updateSingleton):
(TestParameterSet.prototype._updateFromObject):
(TestParameterSet.prototype.get buildTypeParameters):
(TestParameterSet.prototype.get testTypeParameters):
(TestParameterSet.prototype.get parameters):
(TestParameterSet.prototype.asPayload):
(TestParameterSet.prototype.hasSameBuildParametersAs):
(TestParameterSet.prototype.equals):
(TestParameterSet.prototype.valueForParameter):
(TestParameterSet.prototype.fileForParameter):
(TestParameterSet.prototype.valueForParameterName):
(TestParameterSet.prototype.fileForParameterName):
(TestParameterSet.prototype._createPayloadForParameters):
(TestParameterSet.prototype._checkEquals):
(TestParameterSet.isValueEqual):
(TestParameterSet.equals):
(TestParameterSet.hasSameBuildParameters):
(CustomTestParameterSet):
(CustomTestParameterSet.prototype.get buildTypeParameters):
(CustomTestParameterSet.prototype.get testTypeParameters):
(CustomTestParameterSet.prototype.get parameters):
(CustomTestParameterSet.prototype.asPayload):
(CustomTestParameterSet.prototype.valueForParameter):
(CustomTestParameterSet.prototype.fileForParameter):
(CustomTestParameterSet.prototype.valueForParameterName):
(CustomTestParameterSet.prototype.fileForParameterName):
(CustomTestParameterSet.prototype.set):
(CustomTestParameterSet.prototype.get):
(CustomTestParameterSet.prototype.delete):
(CustomTestParameterSet.prototype.setByName):
(CustomTestParameterSet.prototype.getByName):
(CustomTestParameterSet.prototype._createPayloadForParameters):
* Websites/perf.webkit.org/public/v3/models/triggerable.js: Added 'testParamters' to 'TriggerableConfiguration' to reflect
corresponding database change.
(Triggerable):
(prototype.get testParameters):
(createForTriggerable):
* Websites/perf.webkit.org/public/v3/pages/analysis-task-page.js: Adopted APIs that create test groups now require test parameter sets to be specified.
(AnalysisTaskPage.prototype.async _retryCurrentTestGroup):
(AnalysisTaskPage.prototype.async _bisectCurrentTestGroup):
(AnalysisTaskPage.set const):
(AnalysisTaskPage.prototype.async _createTestGroupAfterVerifyingCommitSetList):
(AnalysisTaskPage.prototype.async _createCustomTestGroup):
* Websites/perf.webkit.org/public/v3/pages/create-analysis-task-page.js:
(CreateAnalysisTaskPage.prototype.async _createAnalysisTaskWithGroup):
* Websites/perf.webkit.org/server-tests/api-build-requests-tests.js:
(then):
(async await):
* Websites/perf.webkit.org/server-tests/api-manifest-tests.js:
(return.TestServer.remoteAPI.getJSON.string_appeared_here.then):
* Websites/perf.webkit.org/server-tests/api-test-groups.js:
(async const):
* Websites/perf.webkit.org/server-tests/api-update-triggerable-tests.js: Updated and added unit tests.
* Websites/perf.webkit.org/server-tests/privileged-api-add-build-requests-tests.js: Updated and added unit tests.
(async addTriggerableAndCreateTask):
(async await):
(webkit.id):
(const.commitSet.of.updatedGroups.0.requestedCommitSets):
* Websites/perf.webkit.org/server-tests/privileged-api-create-analysis-task-tests.js: Updated and added unit tests.
* Websites/perf.webkit.org/server-tests/privileged-api-create-test-group-tests.js: Updated and added unit tests.
(async await):
(webkit.id):
(async const):
* Websites/perf.webkit.org/server-tests/resources/mock-data.js: Added test parameters related mock data.
(MockData.addMockConfiguration):
(MockData.async await):
(MockData.set addMockDataWithBuildAndTestTypeTestParameterSets):
(MockData.set addMockDataWithTestParameterSets):
(MockData.mockTestSyncConfigWithTestParameters):
(MockData.addEmptyTriggerable): Deleted.
(MockData.addMockTestGroupWithGitWebKit): Deleted.
* Websites/perf.webkit.org/server-tests/tools-buildbot-triggerable-tests.js: Updated and added unit tests.
(async const):
* Websites/perf.webkit.org/server-tests/tools-sync-buildbot-integration-tests.js:
(configWithOneTesterTwoBuilders):
* Websites/perf.webkit.org/tools/js/buildbot-syncer.js:
(BuildbotSyncer):
(BuildbotSyncer.prototype.addTestConfiguration):
(BuildbotSyncer.prototype.addBuildConfiguration):
(BuildbotSyncer.prototype.matchesConfiguration):
(BuildbotSyncer.prototype._propertiesForBuildRequest):
(BuildbotSyncer._loadConfig):
(BuildbotSyncer._resolveBuildersWithPlatforms):
(BuildbotSyncer._validateAndMergeConfig):
* Websites/perf.webkit.org/tools/js/buildbot-triggerable.js: Updated and added unit tests.
(BuildbotTriggerable.prototype.updateTriggerable):
* Websites/perf.webkit.org/tools/js/database.js:
* Websites/perf.webkit.org/tools/js/v3-models.js:
* Websites/perf.webkit.org/unit-tests/build-request-tests.js: Updated and added unit tests.
(sampleBuildRequestData):
(oneTestGroup):
(threeTestGroups):
* Websites/perf.webkit.org/unit-tests/resources/mock-v3-models.js: Added mock test parameters.
* Websites/perf.webkit.org/unit-tests/test-groups-tests.js: Updated and added unit tests.
(sampleTestGroup):
(sampleTestGroupForRetry):
* Websites/perf.webkit.org/unit-tests/test-parameter-tests.js: Added unit tests.

Canonical link: https://commits.webkit.org/265477@main




More information about the webkit-changes mailing list