echauchot commented on code in PR #22985:
URL: https://github.com/apache/flink/pull/22985#discussion_r1358346133


##########
flink-runtime/src/test/java/org/apache/flink/runtime/scheduler/adaptive/ExecutingTest.java:
##########
@@ -252,28 +257,96 @@ public void testTransitionToFinishedOnSuspend() throws 
Exception {
     }
 
     @Test
-    public void 
testNotifyNewResourcesAvailableWithCanScaleUpTransitionsToRestarting()
+    public void 
testNotifyNewResourcesAvailableBeforeCooldownIsOverScheduledStateChange()
+            throws Exception {
+        try (MockExecutingContext ctx = new MockExecutingContext()) {
+            final Duration scalingIntervalMin =
+                    Duration.ofSeconds(1L); // do not wait too long in the test
+            final ExecutingStateBuilder executingStateBuilder =
+                    new 
ExecutingStateBuilder().setScalingIntervalMin(scalingIntervalMin);
+            Executing exec = executingStateBuilder.build(ctx);
+            exec.setLastRescale(Instant.now());
+            ctx.setCanScaleUp(true, null); // min met => rescale
+            ctx.setExpectRestarting( // scheduled rescale should restart the 
job after cooldown
+                    restartingArguments -> {
+                        assertThat(restartingArguments.getBackoffTime(), 
is(Duration.ZERO));
+                        assertThat(ctx.actionWasScheduled, is(true));
+                    });
+            exec.onNewResourcesAvailable();
+        }
+    }
+
+    @Test
+    public void 
testNotifyNewResourcesAvailableAfterCooldownIsOverStateChange() throws 
Exception {
+        try (MockExecutingContext ctx = new MockExecutingContext()) {
+            final ExecutingStateBuilder executingStateBuilder =
+                    new 
ExecutingStateBuilder().setScalingIntervalMin(Duration.ofSeconds(20L));
+            Executing exec = executingStateBuilder.build(ctx);
+            exec.setLastRescale(Instant.now().minus(Duration.ofSeconds(30L)));
+            ctx.setCanScaleUp(true, null); // min met => rescale
+            ctx.setExpectRestarting(
+                    restartingArguments -> { // immediate rescale
+                        assertThat(restartingArguments.getBackoffTime(), 
is(Duration.ZERO));
+                        assertThat(ctx.actionWasScheduled, is(false));
+                    });
+            exec.onNewResourcesAvailable();
+        }
+    }
+
+    @Test
+    public void 
testNotifyNewResourcesAvailableWithMinMetTransitionsToRestarting()

Review Comment:
   done. I agree that keeping high level semantics rather than implementation 
semantics is good but I feel like with this renaming we loose the real use case 
semantics that these tests are assessing: resources too small, resources lost 
etc...
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@flink.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to