You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by tr...@apache.org on 2021/07/14 14:55:15 UTC

[flink] 15/33: [hotfix][tests] Add DeclarativeSlotPoolServiceTest.testCloseReleasesAllSlotsForAllRegisteredTaskManagers

This is an automated email from the ASF dual-hosted git repository.

trohrmann pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git

commit 6be9d3eda10332a594cb09fd06651fc2fe9e9438
Author: Till Rohrmann <tr...@apache.org>
AuthorDate: Tue Jul 13 16:39:50 2021 +0200

    [hotfix][tests] Add DeclarativeSlotPoolServiceTest.testCloseReleasesAllSlotsForAllRegisteredTaskManagers
    
    This commit adds a test which tests that all slots for all registered TaskManagers are
    released upon calling DeclarativeSlotPoolService.close().
---
 .../slotpool/DeclarativeSlotPoolServiceTest.java   | 31 ++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/flink-runtime/src/test/java/org/apache/flink/runtime/jobmaster/slotpool/DeclarativeSlotPoolServiceTest.java b/flink-runtime/src/test/java/org/apache/flink/runtime/jobmaster/slotpool/DeclarativeSlotPoolServiceTest.java
index f0b0ee5..6d9c84b 100644
--- a/flink-runtime/src/test/java/org/apache/flink/runtime/jobmaster/slotpool/DeclarativeSlotPoolServiceTest.java
+++ b/flink-runtime/src/test/java/org/apache/flink/runtime/jobmaster/slotpool/DeclarativeSlotPoolServiceTest.java
@@ -51,15 +51,19 @@ import org.junit.Test;
 
 import javax.annotation.Nonnull;
 
+import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.List;
 import java.util.Optional;
+import java.util.Queue;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.atomic.AtomicReference;
 
 import static org.hamcrest.Matchers.contains;
+import static org.hamcrest.Matchers.containsInAnyOrder;
 import static org.hamcrest.Matchers.empty;
 import static org.hamcrest.Matchers.is;
 import static org.junit.Assert.assertFalse;
@@ -274,6 +278,33 @@ public class DeclarativeSlotPoolServiceTest extends TestLogger {
         }
     }
 
+    @Test
+    public void testCloseReleasesAllSlotsForAllRegisteredTaskManagers() throws Exception {
+        final Queue<ResourceID> releasedSlotsFor = new ArrayDeque<>(2);
+        try (DeclarativeSlotPoolService declarativeSlotPoolService =
+                createDeclarativeSlotPoolService(
+                        new TestingDeclarativeSlotPoolFactory(
+                                new TestingDeclarativeSlotPoolBuilder()
+                                        .setReleaseSlotsFunction(
+                                                (resourceID, e) -> {
+                                                    releasedSlotsFor.offer(resourceID);
+                                                    return ResourceCounter.empty();
+                                                })))) {
+
+            final List<ResourceID> taskManagerResourceIds =
+                    Arrays.asList(
+                            ResourceID.generate(), ResourceID.generate(), ResourceID.generate());
+
+            for (ResourceID taskManagerResourceId : taskManagerResourceIds) {
+                declarativeSlotPoolService.registerTaskManager(taskManagerResourceId);
+            }
+
+            declarativeSlotPoolService.close();
+
+            assertThat(releasedSlotsFor, containsInAnyOrder(taskManagerResourceIds.toArray()));
+        }
+    }
+
     private DeclarativeSlotPoolService createDeclarativeSlotPoolService() throws Exception {
         return createDeclarativeSlotPoolService(new DefaultDeclarativeSlotPoolFactory());
     }