summaryrefslogtreecommitdiffstats
path: root/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTriggerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTriggerTest.java')
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTriggerTest.java24
1 files changed, 20 insertions, 4 deletions
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTriggerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTriggerTest.java
index b95d34f5414..b2847a29654 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTriggerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTriggerTest.java
@@ -698,7 +698,10 @@ public class DeploymentTriggerTest {
ApplicationVersion revision1 = app1.lastSubmission().get();
app1.submit(applicationPackage);
ApplicationVersion revision2 = app1.lastSubmission().get();
- app1.runJob(systemTest).runJob(stagingTest);
+ app1.runJob(systemTest) // Tests for new revision on version2
+ .runJob(stagingTest)
+ .runJob(systemTest) // Tests for new revision on version1
+ .runJob(stagingTest);
assertEquals(Change.of(version1).with(revision2), app1.instance().change());
tester.triggerJobs();
app1.assertRunning(productionUsCentral1);
@@ -718,9 +721,7 @@ public class DeploymentTriggerTest {
app1.assertNotRunning(productionUsCentral1);
// Last job has a different deployment target, so tests need to run again.
- app1.runJob(systemTest)
- .runJob(stagingTest) // Eager test of outstanding change, assuming upgrade in west succeeds.
- .runJob(productionEuWest1) // Upgrade completes, and revision is the only change.
+ app1.runJob(productionEuWest1) // Upgrade completes, and revision is the only change.
.runJob(productionUsCentral1) // With only revision change, central should run to cover a previous failure.
.runJob(productionEuWest1); // Finally, west changes revision.
assertEquals(Change.empty(), app1.instance().change());
@@ -1433,6 +1434,21 @@ public class DeploymentTriggerTest {
tester.jobs().last(app.instanceId(), productionUsWest1).get().versions());
app.runJob(productionUsWest1);
assertEquals(Change.empty(), app.instance().change());
+
+ // New upgrade fails in staging-test, and revision to fix it is submitted.
+ var version2 = new Version("7.2");
+ tester.controllerTester().upgradeSystem(version2);
+ tester.upgrader().maintain();
+ app.runJob(systemTest).failDeployment(stagingTest);
+ tester.clock().advance(Duration.ofMinutes(30));
+ app.failDeployment(stagingTest);
+ app.submit(appPackage);
+
+ app.runJob(systemTest).runJob(stagingTest) // Tests run with combined upgrade.
+ .runJob(productionUsCentral1) // Combined upgrade stays together.
+ .runJob(productionUsEast3).runJob(productionUsWest1);
+ assertEquals(Map.of(), app.deploymentStatus().jobsToRun());
+ assertEquals(Change.empty(), app.instance().change());
}
@Test