⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 254547 in webkit


Ignore:
Timestamp:
Jan 14, 2020, 5:32:39 PM (7 years ago)
Author:
Jonathan Bedard
Message:

EWS: Run webkitpy tests with Python 2 and 3
​https://bugs.webkit.org/show_bug.cgi?id=206113

Reviewed by Aakash Jain.

  • BuildSlaveSupport/ews-build/factories.py:

(WebKitPyFactory.init): Run webkitpy tests in Python 2 and Python 3.

  • BuildSlaveSupport/ews-build/factories_unittest.py:

(TestTestsFactory.test_webkitpy_factory):

  • BuildSlaveSupport/ews-build/steps.py:

(WebKitPyTest): Renamed from RunWebKitPyTests.
(RunWebKitPyPython2Tests):
(RunWebKitPyPython3Tests):
(RunWebKitPyTests): Renamed to WebKitPyTest.

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestWebKitPyPython2Tests): Moved from TestWebKitPyTests.
(TestWebKitPyTests): Moved to TestWebKitPyPython2Tests.
(TestWebKitPyPython3Tests): Copied from TestWebKitPyPython2Tests.

Location:
trunk/Tools
Files:
5 edited

Legend:

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

    r252786 r254547  
    3030                   PrintConfiguration, RunAPITests, RunBindingsTests, RunBuildWebKitOrgUnitTests, RunEWSBuildbotCheckConfig, RunEWSUnitTests,
    3131                   RunJavaScriptCoreTests, RunWebKit1Tests, RunWebKitPerlTests,
    32                    RunWebKitPyTests, RunWebKitTests, UpdateWorkingDirectory, ValidatePatch)
     32                   RunWebKitPyPython2Tests, RunWebKitPyPython3Tests, RunWebKitTests, UpdateWorkingDirectory, ValidatePatch)
    3333
    3434
    … …  
    8888    def __init__(self, platform, configuration=None, architectures=None, additionalArguments=None, **kwargs):
    8989        Factory.__init__(self, platform=platform, configuration=configuration, architectures=architectures, buildOnly=False, additionalArgument=additionalArguments, checkRelevance=True)
    90         self.addStep(RunWebKitPyTests())
     90        self.addStep(RunWebKitPyPython2Tests())
     91        self.addStep(RunWebKitPyPython3Tests())
    9192
    9293
  • trunk/Tools/BuildSlaveSupport/ews-build/factories_unittest.py

    r254448 r254547  
    135135            _BuildStepFactory(steps.CheckOutSpecificRevision),
    136136            _BuildStepFactory(steps.ApplyPatch),
    137             _BuildStepFactory(steps.RunWebKitPyTests),
     137            _BuildStepFactory(steps.RunWebKitPyPython2Tests),
     138            _BuildStepFactory(steps.RunWebKitPyPython3Tests),
    138139        ])
    139140
  • trunk/Tools/BuildSlaveSupport/ews-build/steps.py

    r254359 r254547  
    694694
    695695
    696 class RunWebKitPyTests(shell.ShellCommand):
    697     name = 'webkitpy-tests'
    698     description = ['webkitpy-tests running']
     696class WebKitPyTest(shell.ShellCommand):
     697    language = 'python'
    699698    descriptionDone = ['webkitpy-tests']
    700699    flunkOnFailure = True
    701     jsonFileName = 'webkitpy_test_results.json'
    702     logfiles = {'json': jsonFileName}
    703     command = ['python', 'Tools/Scripts/test-webkitpy', '--json-output={0}'.format(jsonFileName)]
    704 
    705     def __init__(self, **kwargs):
    706         super(RunWebKitPyTests, self).__init__(timeout=2 * 60, logEnviron=False, **kwargs)
     700
     701    def __init__(self, **kwargs):
     702        super(WebKitPyTest, self).__init__(timeout=2 * 60, logEnviron=False, **kwargs)
    707703
    708704    def start(self):
    … …  
    713709    def getResultSummary(self):
    714710        if self.results == SUCCESS:
    715             message = 'Passed webkitpy tests'
    716             self.build.buildFinished([message], SUCCESS)
     711            message = 'Passed webkitpy {} tests'.format(self.language)
    717712            return {u'step': unicode(message)}
    718713
    … …  
    723718        except Exception as ex:
    724719            self._addToLog('stderr', 'ERROR: unable to parse data, exception: {}'.format(ex))
    725             return super(RunWebKitPyTests, self).getResultSummary()
     720            return super(WebKitPyTest, self).getResultSummary()
    726721
    727722        failures = webkitpy_results.get('failures') + webkitpy_results.get('errors')
    728723        if not failures:
    729             return super(RunWebKitPyTests, self).getResultSummary()
     724            return super(WebKitPyTest, self).getResultSummary()
    730725        pluralSuffix = 's' if len(failures) > 1 else ''
    731726        failures_string = ', '.join([failure.get('name').replace('webkitpy.', '') for failure in failures])
    732727        message = 'Found {} WebKitPy test failure{}: {}'.format(len(failures), pluralSuffix, failures_string)
    733         self.build.buildFinished([message], FAILURE)
    734728        return {u'step': unicode(message)}
    735729
    … …  
    741735            log = yield self.addLog(logName)
    742736        log.addStdout(message)
     737
     738
     739class RunWebKitPyPython2Tests(WebKitPyTest):
     740    language = 'python2'
     741    name = 'webkitpy-tests-{}'.format(language)
     742    description = ['webkitpy-tests running ({})'.format(language)]
     743    jsonFileName = 'webkitpy_test_{}_results.json'.format(language)
     744    logfiles = {'json': jsonFileName}
     745    command = ['python', 'Tools/Scripts/test-webkitpy', '--json-output={0}'.format(jsonFileName)]
     746
     747
     748class RunWebKitPyPython3Tests(WebKitPyTest):
     749    language = 'python3'
     750    name = 'webkitpy-tests-{}'.format(language)
     751    description = ['webkitpy-tests running ({})'.format(language)]
     752    jsonFileName = 'webkitpy_test_{}_results.json'.format(language)
     753    logfiles = {'json': jsonFileName}
     754    command = ['python3', 'Tools/Scripts/test-webkitpy', '--json-output={0}'.format(jsonFileName)]
    743755
    744756
  • trunk/Tools/BuildSlaveSupport/ews-build/steps_unittest.py

    r253049 r254547  
    4141                   PrintConfiguration, ReRunAPITests, ReRunJavaScriptCoreTests, ReRunWebKitPerlTests, ReRunWebKitTests, RunAPITests, RunAPITestsWithoutPatch,
    4242                   RunBindingsTests, RunBuildWebKitOrgUnitTests, RunEWSBuildbotCheckConfig, RunEWSUnitTests, RunJavaScriptCoreTests, RunJSCTestsWithoutPatch, RunWebKit1Tests,
    43                    RunWebKitPerlTests, RunWebKitPyTests, RunWebKitTests, RunWebKitTestsWithoutPatch, TestWithFailureCount, Trigger, TransferToS3, UnApplyPatchIfRequired,
     43                   RunWebKitPerlTests, RunWebKitPyPython2Tests, RunWebKitPyPython3Tests, RunWebKitTests, RunWebKitTestsWithoutPatch, TestWithFailureCount, Trigger, TransferToS3, UnApplyPatchIfRequired,
    4444                   UpdateWorkingDirectory, UploadBuiltProduct, UploadTestResults, ValidatePatch)
    4545
    … …  
    420420
    421421
    422 class TestWebKitPyTests(BuildStepMixinAdditions, unittest.TestCase):
    423     def setUp(self):
    424         self.longMessage = True
    425         self.jsonFileName = 'webkitpy_test_results.json'
    426         return self.setUpBuildStep()
    427 
    428     def tearDown(self):
    429         return self.tearDownBuildStep()
    430 
    431     def test_success(self):
    432         self.setupStep(RunWebKitPyTests())
     422class TestWebKitPyPython2Tests(BuildStepMixinAdditions, unittest.TestCase):
     423    def setUp(self):
     424        self.longMessage = True
     425        self.jsonFileName = 'webkitpy_test_python2_results.json'
     426        return self.setUpBuildStep()
     427
     428    def tearDown(self):
     429        return self.tearDownBuildStep()
     430
     431    def test_success(self):
     432        self.setupStep(RunWebKitPyPython2Tests())
    433433        self.expectRemoteCommands(
    434434            ExpectShell(workdir='wkdir',
    … …  
    440440            + 0,
    441441        )
    442         self.expectOutcome(result=SUCCESS, state_string='Passed webkitpy tests')
    443         return self.runStep()
    444 
    445     def test_failure(self):
    446         self.setupStep(RunWebKitPyTests())
     442        self.expectOutcome(result=SUCCESS, state_string='Passed webkitpy python2 tests')
     443        return self.runStep()
     444
     445    def test_failure(self):
     446        self.setupStep(RunWebKitPyPython2Tests())
    447447        self.expectRemoteCommands(
    448448            ExpectShell(workdir='wkdir',
    449449                        logEnviron=False,
    450450                        command=['python', 'Tools/Scripts/test-webkitpy', '--json-output={0}'.format(self.jsonFileName)],
     451                        logfiles={'json': self.jsonFileName},
     452                        timeout=120,
     453                        )
     454            + ExpectShell.log('stdio', stdout='''Ran 1744 tests in 5.913s
     455FAILED (failures=1, errors=0)''')
     456            + 2,
     457        )
     458        self.expectOutcome(result=FAILURE, state_string='webkitpy-tests (failure)')
     459        return self.runStep()
     460
     461
     462class TestWebKitPyPython3Tests(BuildStepMixinAdditions, unittest.TestCase):
     463    def setUp(self):
     464        self.longMessage = True
     465        self.jsonFileName = 'webkitpy_test_python3_results.json'
     466        return self.setUpBuildStep()
     467
     468    def tearDown(self):
     469        return self.tearDownBuildStep()
     470
     471    def test_success(self):
     472        self.setupStep(RunWebKitPyPython3Tests())
     473        self.expectRemoteCommands(
     474            ExpectShell(workdir='wkdir',
     475                        logEnviron=False,
     476                        command=['python3', 'Tools/Scripts/test-webkitpy', '--json-output={0}'.format(self.jsonFileName)],
     477                        logfiles={'json': self.jsonFileName},
     478                        timeout=120,
     479                        )
     480            + 0,
     481        )
     482        self.expectOutcome(result=SUCCESS, state_string='Passed webkitpy python3 tests')
     483        return self.runStep()
     484
     485    def test_failure(self):
     486        self.setupStep(RunWebKitPyPython3Tests())
     487        self.expectRemoteCommands(
     488            ExpectShell(workdir='wkdir',
     489                        logEnviron=False,
     490                        command=['python3', 'Tools/Scripts/test-webkitpy', '--json-output={0}'.format(self.jsonFileName)],
    451491                        logfiles={'json': self.jsonFileName},
    452492                        timeout=120,
  • trunk/Tools/ChangeLog

    r254545 r254547  
     12020-01-14  Jonathan Bedard  <jbedard@apple.com>
     2
     3        EWS: Run webkitpy tests with Python 2 and 3
     4        https://bugs.webkit.org/show_bug.cgi?id=206113
     5
     6        Reviewed by Aakash Jain.
     7
     8        * BuildSlaveSupport/ews-build/factories.py:
     9        (WebKitPyFactory.__init__): Run webkitpy tests in Python 2 and Python 3.
     10        * BuildSlaveSupport/ews-build/factories_unittest.py:
     11        (TestTestsFactory.test_webkitpy_factory):
     12        * BuildSlaveSupport/ews-build/steps.py:
     13        (WebKitPyTest): Renamed from RunWebKitPyTests.
     14        (RunWebKitPyPython2Tests):
     15        (RunWebKitPyPython3Tests):
     16        (RunWebKitPyTests): Renamed to WebKitPyTest.
     17        * BuildSlaveSupport/ews-build/steps_unittest.py:
     18        (TestWebKitPyPython2Tests): Moved from TestWebKitPyTests.
     19        (TestWebKitPyTests): Moved to TestWebKitPyPython2Tests.
     20        (TestWebKitPyPython3Tests): Copied from TestWebKitPyPython2Tests.
     21
    1222020-01-14  Aakash Jain  <aakash_jain@apple.com>
    223
Note: See TracChangeset for help on using the changeset viewer.