Github user tillrohrmann commented on a diff in the pull request:

    https://github.com/apache/flink/pull/4937#discussion_r148570569
  
    --- Diff: 
flink-runtime/src/test/java/org/apache/flink/runtime/instance/SlotPoolRpcTest.java
 ---
    @@ -99,4 +108,129 @@ public void testSlotAllocationNoResourceManager() 
throws Exception {
                        fail("wrong exception: " + e);
                }
        }
    +
    +   @Test
    +   public void testCancelSlotAllocation() throws Exception {
    +           final JobID jid = new JobID();
    +
    +           final SlotPool pool = new SlotPool(
    +                           rpcService, jid,
    +                           SystemClock.getInstance(),
    +                           Time.days(1), Time.days(1),
    +                           Time.seconds(3) // this is the timeout for the 
request tested here
    +           );
    +           pool.start(JobMasterId.generate(), "foobar");
    +           SlotPoolGateway slotPoolGateway = 
pool.getSelfGateway(SlotPoolGateway.class);
    +
    +           // 1. test the pending request is in 
waitingResourceManagerRequests
    +           AllocationID allocationID = new AllocationID();
    +           CompletableFuture<SimpleSlot> future = 
slotPoolGateway.allocateSlot(allocationID, DEFAULT_TESTING_PROFILE, null, 
Time.seconds(1));
    +
    +           try {
    +                   future.get(2, TimeUnit.SECONDS);
    +                   fail("We expected a AskTimeoutException.");
    +           }
    +           catch (ExecutionException e) {
    +                   assertEquals(AskTimeoutException.class, 
e.getCause().getClass());
    +           }
    +           catch (Exception e) {
    +                   fail("wrong exception: " + e);
    +           }
    +
    +           assertEquals(1, pool.getNumOfWaitingForResourceRequests());
    +
    +           pool.cancelSlotAllocation(allocationID);
    +           assertEquals(0, pool.getNumOfWaitingForResourceRequests());
    +
    +           // 2. test the pending request is in pendingRequests
    +           ResourceManagerGateway resourceManagerGateway = 
SlotPoolTest.createResourceManagerGatewayMock();
    +           pool.connectToResourceManager(resourceManagerGateway);
    +
    +           AllocationID allocationID2 = new AllocationID();
    +           future = slotPoolGateway.allocateSlot(allocationID2, 
DEFAULT_TESTING_PROFILE, null, Time.seconds(1));
    +
    +           try {
    +                   future.get(2, TimeUnit.SECONDS);
    +                   fail("We expected a AskTimeoutException.");
    +           }
    +           catch (ExecutionException e) {
    +                   assertEquals(AskTimeoutException.class, 
e.getCause().getClass());
    +           }
    +           catch (Exception e) {
    +                   fail("wrong exception: " + e);
    +           }
    +
    +           assertEquals(1, pool.getNumOfPendingRequests());
    +
    +           pool.cancelSlotAllocation(allocationID2);
    +           assertEquals(0, pool.getNumOfPendingRequests());
    +           //verify(resourceManagerGateway, 
times(1)).cancelSlotRequest(jid, any(JobMasterId.class), allocationID2);
    --- End diff --
    
    should be removed


---

Reply via email to