Changeset 252037 in webkit


Ignore:
Timestamp:
Nov 4, 2019 8:24:41 PM (4 years ago)
Author:
aakash_jain@apple.com
Message:

[ews] Perform validation of patch before retrying API and layout tests
https://bugs.webkit.org/show_bug.cgi?id=203756

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(ValidatePatch.init): Added parameters to optionally skip certain validations.
(ValidatePatch.start): Skip certain validations based on the parameters.
(RunWebKitTests.evaluateCommand): Add a ValidatePatch step before retrying.
(ReRunWebKitTests.evaluateCommand): Ditto.
(RunAPITests.evaluateCommand): Ditto.
(ReRunAPITests.evaluateCommand): Ditto.

Location:
trunk/Tools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/BuildSlaveSupport/ews-build/steps.py

    r251938 r252037  
    321321    bug_closed_statuses = ['RESOLVED', 'VERIFIED', 'CLOSED']
    322322
     323    def __init__(self, verifyObsolete=True, verifyBugClosed=True, verifyReviewDenied=True, addURLs=True, **kwargs):
     324        self.verifyObsolete = verifyObsolete
     325        self.verifyBugClosed = verifyBugClosed
     326        self.verifyReviewDenied = verifyReviewDenied
     327        self.addURLs = addURLs
     328        buildstep.BuildStep.__init__(self)
     329
    323330    @defer.inlineCallbacks
    324331    def _addToLog(self, logName, message):
     
    382389
    383390        patch_author = patch_json.get('creator')
    384         self.addURL('Patch by: {}'.format(patch_author), 'mailto:{}'.format(patch_author))
     391        if self.addURLs:
     392            self.addURL('Patch by: {}'.format(patch_author), 'mailto:{}'.format(patch_author))
    385393        return patch_json.get('is_obsolete')
    386394
     
    407415
    408416        bug_title = bug_json.get('summary')
    409         self.addURL(u'Bug {} {}'.format(bug_id, bug_title), '{}show_bug.cgi?id={}'.format(BUG_SERVER_URL, bug_id))
     417        if self.addURLs:
     418            self.addURL(u'Bug {} {}'.format(bug_id, bug_title), '{}show_bug.cgi?id={}'.format(BUG_SERVER_URL, bug_id))
    410419        if bug_json.get('status') in self.bug_closed_statuses:
    411420            return 1
     
    434443        bug_id = self.getProperty('bug_id', '') or self.get_bug_id_from_patch(patch_id)
    435444
    436         bug_closed = self._is_bug_closed(bug_id)
     445        bug_closed = self._is_bug_closed(bug_id) if self.verifyBugClosed else 0
    437446        if bug_closed == 1:
    438447            self.skip_build('Bug {} is already closed'.format(bug_id))
    439448            return None
    440449
    441         obsolete = self._is_patch_obsolete(patch_id)
     450        obsolete = self._is_patch_obsolete(patch_id) if self.verifyObsolete else 0
    442451        if obsolete == 1:
    443452            self.skip_build('Patch {} is obsolete'.format(patch_id))
    444453            return None
    445454
    446         review_denied = self._is_patch_review_denied(patch_id)
     455        review_denied = self._is_patch_review_denied(patch_id) if self.verifyReviewDenied else 0
    447456        if review_denied == 1:
    448457            self.skip_build('Patch {} is marked r-'.format(patch_id))
     
    454463            return None
    455464
    456         self._addToLog('stdio', 'Bug is open.\nPatch is not obsolete.\nPatch is not marked r-.\n')
     465        if self.verifyBugClosed:
     466            self._addToLog('stdio', 'Bug is open.\n')
     467        if self.verifyObsolete:
     468            self._addToLog('stdio', 'Patch is not obsolete.\n')
     469        if self.verifyReviewDenied:
     470            self._addToLog('stdio', 'Patch is not marked r-.\n')
    457471        self.finished(SUCCESS)
    458472        return None
     
    10911105            self.build.buildFinished([message], SUCCESS)
    10921106        else:
    1093             self.build.addStepsAfterCurrentStep([ArchiveTestResults(), UploadTestResults(), ExtractTestResults(), ReRunWebKitTests()])
     1107            self.build.addStepsAfterCurrentStep([ArchiveTestResults(), UploadTestResults(), ExtractTestResults(), ValidatePatch(verifyBugClosed=False, addURLs=False), ReRunWebKitTests()])
    10941108        return rc
    10951109
     
    11161130        else:
    11171131            self.setProperty('patchFailedTests', True)
    1118             self.build.addStepsAfterCurrentStep([ArchiveTestResults(), UploadTestResults(identifier='rerun'), ExtractTestResults(identifier='rerun'), UnApplyPatchIfRequired(), CompileWebKitToT(), RunWebKitTestsWithoutPatch()])
     1132            self.build.addStepsAfterCurrentStep([ArchiveTestResults(),
     1133                                                UploadTestResults(identifier='rerun'),
     1134                                                ExtractTestResults(identifier='rerun'),
     1135                                                UnApplyPatchIfRequired(),
     1136                                                ValidatePatch(verifyBugClosed=False, addURLs=False),
     1137                                                CompileWebKitToT(),
     1138                                                ValidatePatch(verifyBugClosed=False, addURLs=False),
     1139                                                RunWebKitTestsWithoutPatch()])
    11191140        return rc
    11201141
     
    14221443            self.build.buildFinished([message], SUCCESS)
    14231444        else:
    1424             self.build.addStepsAfterCurrentStep([ReRunAPITests()])
     1445            self.build.addStepsAfterCurrentStep([ValidatePatch(verifyBugClosed=False, addURLs=False), ReRunAPITests()])
    14251446        return rc
    14261447
     
    14381459        else:
    14391460            self.setProperty('patchFailedTests', True)
    1440             self.build.addStepsAfterCurrentStep([UnApplyPatchIfRequired(), CompileWebKitToT(), RunAPITestsWithoutPatch(), AnalyzeAPITestsResults()])
     1461            self.build.addStepsAfterCurrentStep([UnApplyPatchIfRequired(),
     1462                                                ValidatePatch(verifyBugClosed=False, addURLs=False),
     1463                                                CompileWebKitToT(),
     1464                                                ValidatePatch(verifyBugClosed=False, addURLs=False),
     1465                                                RunAPITestsWithoutPatch(),
     1466                                                AnalyzeAPITestsResults()])
    14411467        return rc
    14421468
  • trunk/Tools/ChangeLog

    r252035 r252037  
     12019-11-04  Aakash Jain  <aakash_jain@apple.com>
     2
     3        [ews] Perform validation of patch before retrying API and layout tests
     4        https://bugs.webkit.org/show_bug.cgi?id=203756
     5
     6        Reviewed by Jonathan Bedard.
     7
     8        * BuildSlaveSupport/ews-build/steps.py:
     9        (ValidatePatch.__init__): Added parameters to optionally skip certain validations.
     10        (ValidatePatch.start): Skip certain validations based on the parameters.
     11        (RunWebKitTests.evaluateCommand): Add a ValidatePatch step before retrying.
     12        (ReRunWebKitTests.evaluateCommand): Ditto.
     13        (RunAPITests.evaluateCommand): Ditto.
     14        (ReRunAPITests.evaluateCommand): Ditto.
     15
    1162019-11-04  Jiewen Tan  <jiewen_tan@apple.com>
    217
Note: See TracChangeset for help on using the changeset viewer.