scudellari commented on a change in pull request #17227:
URL: https://github.com/apache/flink/pull/17227#discussion_r706110378



##########
File path: flink-core/src/test/java/org/apache/flink/util/NetUtilsTest.java
##########
@@ -61,25 +56,45 @@ public void testParseHostPortAddress() {
     @Test
     public void testAcceptWithoutTimeout() throws IOException {
         // Validates that acceptWithoutTimeout suppresses all 
SocketTimeoutExceptions
-        ServerSocket serverSocket = mock(ServerSocket.class);
-        when(serverSocket.accept())
-                .thenAnswer(
-                        new Answer<Socket>() {
-                            private int count = 0;
-
-                            @Override
-                            public Socket answer(InvocationOnMock 
invocationOnMock)
-                                    throws Throwable {
-                                if (count < 2) {
-                                    count++;
-                                    throw new SocketTimeoutException();
-                                }
-
-                                return new Socket();
-                            }
-                        });
-
-        assertNotNull(NetUtils.acceptWithoutTimeout(serverSocket));
+        Socket expected = new Socket();
+        ServerSocket serverSocket =
+                new ServerSocket() {
+                    private int count = 0;
+
+                    @Override
+                    public Socket accept() throws IOException {
+                        if (count < 2) {
+                            count++;
+                            throw new SocketTimeoutException();
+                        }
+
+                        return expected;
+                    }
+                };
+
+        assertEquals(expected, NetUtils.acceptWithoutTimeout(serverSocket));
+
+        // Validates timeout option precondition
+        serverSocket =
+                new ServerSocket() {
+                    @Override
+                    public Socket accept() throws IOException {
+                        return expected;
+                    }
+                };
+
+        // non-zero timeout (throw exception)
+        serverSocket.setSoTimeout(5);
+        try {
+            assertEquals(expected, 
NetUtils.acceptWithoutTimeout(serverSocket));
+            fail("Expected IllegalArgumentException due to timeout is set to 
non-zero value");
+        } catch (IllegalArgumentException e) {
+            // Pass
+        }
+
+        // zero timeout (don't throw exception)
+        serverSocket.setSoTimeout(0);
+        assertEquals(expected, NetUtils.acceptWithoutTimeout(serverSocket));

Review comment:
       I added this to cover the case where we explicitly set the timeout to 
zero. Initially we are simply using the default value (which is also zero). 
Granted, this is likely overkill.




-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to