diff --git a/src/test/java/org/tikv/common/MockThreeStoresTest.java b/src/test/java/org/tikv/common/MockThreeStoresTest.java index fa4dbe41e3..43063be7d1 100644 --- a/src/test/java/org/tikv/common/MockThreeStoresTest.java +++ b/src/test/java/org/tikv/common/MockThreeStoresTest.java @@ -42,9 +42,11 @@ public class MockThreeStoresTest extends PDMockServerTest { public void setup() throws IOException { super.setup(); - int basePort; - try (ServerSocket s = new ServerSocket(0)) { - basePort = s.getLocalPort(); + int[] ports = new int[3]; + for (int i = 0; i < ports.length; i++) { + try (ServerSocket s = new ServerSocket(0)) { + ports[i] = s.getLocalPort(); + } } ImmutableList peers = @@ -65,17 +67,17 @@ public class MockThreeStoresTest extends PDMockServerTest { stores = ImmutableList.of( Metapb.Store.newBuilder() - .setAddress("127.0.0.1:" + basePort) + .setAddress("127.0.0.1:" + ports[0]) .setVersion("5.0.0") .setId(0x1) .build(), Metapb.Store.newBuilder() - .setAddress("127.0.0.1:" + (basePort + 1)) + .setAddress("127.0.0.1:" + ports[1]) .setVersion("5.0.0") .setId(0x2) .build(), Metapb.Store.newBuilder() - .setAddress("127.0.0.1:" + (basePort + 2)) + .setAddress("127.0.0.1:" + ports[2]) .setVersion("5.0.0") .setId(0x3) .build()); @@ -101,9 +103,9 @@ public class MockThreeStoresTest extends PDMockServerTest { region.getPeers(0), region.getPeersList(), stores.stream().map(TiStore::new).collect(Collectors.toList())); - for (int i = 0; i < 3; i++) { + for (int port : ports) { KVMockServer server = new KVMockServer(); - server.start(this.region, basePort + i); + server.start(this.region, port); servers.add(server); } } diff --git a/src/test/java/org/tikv/common/PDClientMockTest.java b/src/test/java/org/tikv/common/PDClientMockTest.java index 3ba0e37439..10e0901d34 100644 --- a/src/test/java/org/tikv/common/PDClientMockTest.java +++ b/src/test/java/org/tikv/common/PDClientMockTest.java @@ -47,7 +47,8 @@ public class PDClientMockTest extends PDMockServerTest { @Test public void testCreate() throws Exception { try (PDClient client = session.getPDClient()) { - assertEquals(LOCAL_ADDR + ":" + leader.port, client.getPdClientWrapper().getLeaderInfo()); + assertEquals( + LOCAL_ADDR + ":" + leader.getPort(), client.getPdClientWrapper().getLeaderInfo()); assertEquals(CLUSTER_ID, client.getHeader().getClusterId()); } } @@ -55,17 +56,19 @@ public class PDClientMockTest extends PDMockServerTest { @Test public void testSwitchLeader() throws Exception { try (PDClient client = session.getPDClient()) { - client.trySwitchLeader(HTTP + LOCAL_ADDR + ":" + (leader.port + 1)); + // Switch leader to server 1 + client.trySwitchLeader(HTTP + LOCAL_ADDR + ":" + pdServers.get(1).getPort()); assertEquals( - client.getPdClientWrapper().getLeaderInfo(), HTTP + LOCAL_ADDR + ":" + (leader.port + 1)); + client.getPdClientWrapper().getLeaderInfo(), + HTTP + LOCAL_ADDR + ":" + pdServers.get(1).getPort()); } tearDown(); setup(LOCAL_ADDR_IPV6); try (PDClient client = session.getPDClient()) { - client.trySwitchLeader(HTTP + LOCAL_ADDR_IPV6 + ":" + (leader.port + 2)); + client.trySwitchLeader(HTTP + LOCAL_ADDR_IPV6 + ":" + pdServers.get(2).getPort()); assertEquals( client.getPdClientWrapper().getLeaderInfo(), - HTTP + LOCAL_ADDR_IPV6 + ":" + (leader.port + 2)); + HTTP + LOCAL_ADDR_IPV6 + ":" + pdServers.get(2).getPort()); } } diff --git a/src/test/java/org/tikv/common/PDMockServer.java b/src/test/java/org/tikv/common/PDMockServer.java index 3d64624f44..96c4970af9 100644 --- a/src/test/java/org/tikv/common/PDMockServer.java +++ b/src/test/java/org/tikv/common/PDMockServer.java @@ -37,8 +37,7 @@ import org.tikv.kvproto.Pdpb.TsoRequest; import org.tikv.kvproto.Pdpb.TsoResponse; public class PDMockServer extends PDGrpc.PDImplBase { - - public int port; + private int port; private long clusterId; private Server server; @@ -148,4 +147,8 @@ public class PDMockServer extends PDGrpc.PDImplBase { public long getClusterId() { return clusterId; } + + public long getPort() { + return port; + } } diff --git a/src/test/java/org/tikv/common/PDMockServerTest.java b/src/test/java/org/tikv/common/PDMockServerTest.java index 1fd84f5ddb..e61a10cce9 100644 --- a/src/test/java/org/tikv/common/PDMockServerTest.java +++ b/src/test/java/org/tikv/common/PDMockServerTest.java @@ -38,28 +38,30 @@ public abstract class PDMockServerTest { } void setup(String addr) throws IOException { - int basePort; - try (ServerSocket s = new ServerSocket(0)) { - basePort = s.getLocalPort(); + int[] ports = new int[3]; + for (int i = 0; i < ports.length; i++) { + try (ServerSocket s = new ServerSocket(0)) { + ports[i] = s.getLocalPort(); + } } - for (int i = 0; i < 3; i++) { + for (int i = 0; i < ports.length; i++) { PDMockServer server = new PDMockServer(); - server.start(CLUSTER_ID, basePort + i); + server.start(CLUSTER_ID, ports[i]); server.addGetMembersListener( (request) -> GrpcUtils.makeGetMembersResponse( server.getClusterId(), - GrpcUtils.makeMember(1, "http://" + addr + ":" + basePort), - GrpcUtils.makeMember(2, "http://" + addr + ":" + (basePort + 1)), - GrpcUtils.makeMember(3, "http://" + addr + ":" + (basePort + 2)))); + GrpcUtils.makeMember(1, "http://" + addr + ":" + ports[0]), + GrpcUtils.makeMember(2, "http://" + addr + ":" + ports[1]), + GrpcUtils.makeMember(3, "http://" + addr + ":" + ports[2]))); pdServers.add(server); if (i == 0) { leader = server; } } - TiConfiguration conf = TiConfiguration.createDefault(addr + ":" + leader.port); + TiConfiguration conf = TiConfiguration.createDefault(addr + ":" + ports[0]); conf.setKvMode("RAW"); conf.setWarmUpEnable(false); conf.setTimeout(2000); diff --git a/src/test/java/org/tikv/common/SeekLeaderStoreTest.java b/src/test/java/org/tikv/common/SeekLeaderStoreTest.java index 201f10986f..891e676ee9 100644 --- a/src/test/java/org/tikv/common/SeekLeaderStoreTest.java +++ b/src/test/java/org/tikv/common/SeekLeaderStoreTest.java @@ -28,7 +28,6 @@ import org.tikv.kvproto.Pdpb; import org.tikv.raw.RawKVClient; public class SeekLeaderStoreTest extends MockThreeStoresTest { - private RawKVClient createClient() { return session.createRawClient(); } diff --git a/src/test/java/org/tikv/common/SeekProxyStoreTest.java b/src/test/java/org/tikv/common/SeekProxyStoreTest.java index e4b34c4fa3..6149a591cc 100644 --- a/src/test/java/org/tikv/common/SeekProxyStoreTest.java +++ b/src/test/java/org/tikv/common/SeekProxyStoreTest.java @@ -24,7 +24,6 @@ import org.tikv.common.KVMockServer.State; import org.tikv.raw.RawKVClient; public class SeekProxyStoreTest extends MockThreeStoresTest { - private RawKVClient createClient() { return session.createRawClient(); }