Modified: trunk/Tools/BuildSlaveSupport/ews-build/steps_unittest.py (246649 => 246650)
--- trunk/Tools/BuildSlaveSupport/ews-build/steps_unittest.py 2019-06-20 20:10:06 UTC (rev 246649)
+++ trunk/Tools/BuildSlaveSupport/ews-build/steps_unittest.py 2019-06-20 20:24:30 UTC (rev 246650)
@@ -34,7 +34,7 @@
from twisted.python import failure, log
from twisted.trial import unittest
-from steps import (AnalyzeAPITestsResults, ApplyPatch, ArchiveBuiltProduct, ArchiveTestResults,
+from steps import (AnalyzeAPITestsResults, AnalyzeCompileWebKitResults, ApplyPatch, ArchiveBuiltProduct, ArchiveTestResults,
CheckOutSource, CheckPatchRelevance, CheckStyle, CleanBuild, CleanWorkingDirectory,
CompileJSCOnly, CompileJSCOnlyToT, CompileWebKit, CompileWebKitToT, ConfigureBuild,
DownloadBuiltProduct, ExtractBuiltProduct, ExtractTestResults, KillOldProcesses,
@@ -48,6 +48,13 @@
FakeBuild.addStepsAfterCurrentStep = lambda FakeBuild, step_factories: None
+def mock_step(step, logs='', results=SUCCESS, stopped=False, properties=None):
+ step.logs = logs
+ step.results = results
+ step.stopped = stopped
+ return step
+
+
class ExpectMasterShellCommand(object):
def __init__(self, command, workdir=None, env=None, usePTY=0):
self.args = command
@@ -545,6 +552,33 @@
return self.runStep()
+class TestAnalyzeCompileWebKitResults(BuildStepMixinAdditions, unittest.TestCase):
+ def setUp(self):
+ self.longMessage = True
+ return self.setUpBuildStep()
+
+ def tearDown(self):
+ return self.tearDownBuildStep()
+
+ def test_patch_with_build_failure(self):
+ previous_steps = [
+ mock_step(CompileWebKit(), results=FAILURE),
+ mock_step(CompileWebKitToT(), results=SUCCESS),
+ ]
+ self.setupStep(AnalyzeCompileWebKitResults(), previous_steps=previous_steps)
+ self.expectOutcome(result=FAILURE, state_string='Patch does not build (failure)')
+ return self.runStep()
+
+ def test_patch_with_ToT_failure(self):
+ previous_steps = [
+ mock_step(CompileWebKit(), results=FAILURE),
+ mock_step(CompileWebKitToT(), results=FAILURE),
+ ]
+ self.setupStep(AnalyzeCompileWebKitResults(), previous_steps=previous_steps)
+ self.expectOutcome(result=FAILURE, state_string='Unable to build WebKit without patch, retrying build (failure)')
+ return self.runStep()
+
+
class TestCompileJSCOnly(BuildStepMixinAdditions, unittest.TestCase):
def setUp(self):
self.longMessage = True