Skip to content

Commit 221fff6

Browse files
Ensure FakeDockerServer is started on a random free port
1 parent 32e1116 commit 221fff6

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

src/test/java/com/github/dockerjava/netty/NettyDockerCmdExecFactoryConfigTest.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import io.netty.handler.codec.http.HttpServerCodec;
2424
import io.netty.util.CharsetUtil;
2525

26+
import java.io.IOException;
27+
import java.net.ServerSocket;
2628
import java.util.ArrayList;
2729
import java.util.List;
2830

@@ -37,16 +39,18 @@ public class NettyDockerCmdExecFactoryConfigTest {
3739

3840
@Test
3941
public void testNettyDockerCmdExecFactoryConfigWithApiVersion() throws Exception {
42+
int dockerPort = getFreePort();
43+
4044
NettyDockerCmdExecFactory factory = new NettyDockerCmdExecFactory();
4145
Builder configBuilder = DefaultDockerClientConfig.createDefaultConfigBuilder()
42-
.withDockerHost("tcp://localhost:2378")
46+
.withDockerHost("tcp://localhost:" + dockerPort)
4347
.withApiVersion("1.23");
4448

4549
DockerClient client = DockerClientBuilder.getInstance(configBuilder)
4650
.withDockerCmdExecFactory(factory)
4751
.build();
4852

49-
FakeDockerServer server = new FakeDockerServer(2378);
53+
FakeDockerServer server = new FakeDockerServer(dockerPort);
5054
server.start();
5155
try {
5256
client.versionCmd().exec();
@@ -62,14 +66,16 @@ public void testNettyDockerCmdExecFactoryConfigWithApiVersion() throws Exception
6266

6367
@Test
6468
public void testNettyDockerCmdExecFactoryConfigWithoutApiVersion() throws Exception {
69+
int dockerPort = getFreePort();
70+
6571
NettyDockerCmdExecFactory factory = new NettyDockerCmdExecFactory();
66-
Builder configBuilder = DefaultDockerClientConfig.createDefaultConfigBuilder().withDockerHost("tcp://localhost:2378");
72+
Builder configBuilder = DefaultDockerClientConfig.createDefaultConfigBuilder().withDockerHost("tcp://localhost:" + dockerPort);
6773

6874
DockerClient client = DockerClientBuilder.getInstance(configBuilder)
6975
.withDockerCmdExecFactory(factory)
7076
.build();
7177

72-
FakeDockerServer server = new FakeDockerServer(2378);
78+
FakeDockerServer server = new FakeDockerServer(dockerPort);
7379
server.start();
7480
try {
7581
client.versionCmd().exec();
@@ -83,6 +89,13 @@ public void testNettyDockerCmdExecFactoryConfigWithoutApiVersion() throws Except
8389
}
8490
}
8591

92+
private int getFreePort() throws IOException {
93+
ServerSocket socket = new ServerSocket(0);
94+
int freePort = socket.getLocalPort();
95+
socket.close();
96+
return freePort;
97+
}
98+
8699
private class FakeDockerServer {
87100
private final int port;
88101
private final NioEventLoopGroup parent;

0 commit comments

Comments
 (0)