Skip to content

Commit 0becc2a

Browse files
add fixes for several tests
1 parent fbf085b commit 0becc2a

File tree

6 files changed

+72
-22
lines changed

6 files changed

+72
-22
lines changed

src/test/java/io/lettuce/core/commands/RunOnlyOnceServerCommandIntegrationTests.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@
99

1010
import javax.inject.Inject;
1111

12-
import org.junit.jupiter.api.Disabled;
13-
import org.junit.jupiter.api.Tag;
14-
import org.junit.jupiter.api.Test;
12+
import org.junit.jupiter.api.*;
1513
import org.junit.jupiter.api.extension.ExtendWith;
1614

1715
import io.lettuce.core.MigrateArgs;
@@ -32,6 +30,7 @@
3230
*/
3331
@Tag(INTEGRATION_TEST)
3432
@ExtendWith(LettuceExtension.class)
33+
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
3534
class RunOnlyOnceServerCommandIntegrationTests extends TestSupport {
3635

3736
private final RedisClient client;
@@ -54,6 +53,7 @@ class RunOnlyOnceServerCommandIntegrationTests extends TestSupport {
5453
*/
5554
@Test
5655
@Disabled
56+
@Order(1)
5757
void debugSegfault() {
5858

5959
assumeTrue(CanConnect.to(host(), port(1)));
@@ -74,32 +74,34 @@ void debugSegfault() {
7474
* Executed in order: 2
7575
*/
7676
@Test
77+
@Order(2)
7778
void migrate() {
7879

79-
assumeTrue(CanConnect.to(host(), port(2)));
80+
assumeTrue(CanConnect.to(host(), port(7)));
8081

8182
redis.set(key, value);
8283

83-
String result = redis.migrate("localhost", TestSettings.port(2), key, 0, 10);
84+
String result = redis.migrate("localhost", TestSettings.port(7), key, 0, 10);
8485
assertThat(result).isEqualTo("OK");
8586
}
8687

8788
/**
8889
* Executed in order: 3
8990
*/
9091
@Test
92+
@Order(3)
9193
void migrateCopyReplace() {
9294

93-
assumeTrue(CanConnect.to(host(), port(2)));
95+
assumeTrue(CanConnect.to(host(), port(7)));
9496

9597
redis.set(key, value);
96-
redis.set("key1", value);
9798
redis.set("key2", value);
99+
redis.set("key3", value);
98100

99-
String result = redis.migrate("localhost", TestSettings.port(2), 0, 10, MigrateArgs.Builder.keys(key).copy().replace());
101+
String result = redis.migrate("localhost", TestSettings.port(7), 0, 10, MigrateArgs.Builder.keys(key).copy().replace());
100102
assertThat(result).isEqualTo("OK");
101103

102-
result = redis.migrate("localhost", TestSettings.port(2), 0, 10,
104+
result = redis.migrate("localhost", TestSettings.port(7), 0, 10,
103105
MigrateArgs.Builder.keys(Arrays.asList("key1", "key2")).replace());
104106
assertThat(result).isEqualTo("OK");
105107
}
@@ -109,9 +111,10 @@ void migrateCopyReplace() {
109111
* redis.
110112
*/
111113
@Test
114+
@Order(4)
112115
void shutdown() {
113116

114-
assumeTrue(CanConnect.to(host(), port(2)));
117+
assumeTrue(CanConnect.to(host(), port(7)));
115118

116119
final RedisAsyncCommands<String, String> commands = client.connect(RedisURI.Builder.redis(host(), port(2)).build())
117120
.async();

src/test/java/io/lettuce/core/masterreplica/MasterReplicaSentinelSslIntegrationTests.java

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,11 @@
22

33
import javax.inject.Inject;
44

5+
import io.lettuce.core.*;
56
import org.junit.jupiter.api.Tag;
67
import org.junit.jupiter.api.Test;
78
import org.junit.jupiter.api.extension.ExtendWith;
89

9-
import io.lettuce.core.ReadFrom;
10-
import io.lettuce.core.RedisClient;
11-
import io.lettuce.core.RedisURI;
12-
import io.lettuce.core.TestSupport;
1310
import io.lettuce.core.codec.StringCodec;
1411
import io.lettuce.core.internal.HostAndPort;
1512
import io.lettuce.core.resource.ClientResources;
@@ -19,7 +16,15 @@
1916
import io.lettuce.test.resource.FastShutdown;
2017
import io.lettuce.test.settings.TestSettings;
2118

19+
import java.io.File;
20+
import java.nio.file.Path;
21+
import java.nio.file.Paths;
22+
import java.util.HashMap;
23+
import java.util.Map;
24+
import java.util.concurrent.atomic.AtomicInteger;
25+
2226
import static io.lettuce.TestTags.INTEGRATION_TEST;
27+
import static io.lettuce.test.settings.TlsSettings.createAndSaveTestTruststore;
2328

2429
/**
2530
* Integration test for Master/Replica using Redis Sentinel over SSL.
@@ -32,19 +37,33 @@ class MasterReplicaSentinelSslIntegrationTests extends TestSupport {
3237

3338
private final ClientResources clientResources;
3439

40+
private static File truststoreFile;
41+
42+
private static Map<Integer, Integer> portMap = new HashMap<>();
43+
static {
44+
portMap.put(26379, 26822);
45+
portMap.put(6482, 8443);
46+
portMap.put(6483, 8444);
47+
}
48+
3549
@Inject
3650
MasterReplicaSentinelSslIntegrationTests(ClientResources clientResources) {
51+
3752
this.clientResources = clientResources.mutate()
3853
.socketAddressResolver(MappingSocketAddressResolver.create(DnsResolver.jvmDefault(), hostAndPort -> {
54+
int port = hostAndPort.getPort();
55+
if (portMap.containsKey(port)) {
56+
return HostAndPort.of(hostAndPort.getHostText(), portMap.get(port));
57+
}
3958

40-
return HostAndPort.of(hostAndPort.getHostText(), hostAndPort.getPort() + 443);
59+
return hostAndPort;
4160
})).build();
4261
}
4362

4463
@Test
4564
void testMasterReplicaSentinelBasic() {
46-
4765
RedisClient client = RedisClient.create(clientResources);
66+
4867
RedisURI redisURI = RedisURI.create("rediss-sentinel://" + TestSettings.host() + ":26379?sentinelMasterId=mymaster");
4968
redisURI.setVerifyPeer(false);
5069
StatefulRedisMasterReplicaConnection<String, String> connection = MasterReplica.connect(client, StringCodec.UTF8,

src/test/java/io/lettuce/core/sentinel/SentinelSslIntegrationTests.java

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,15 @@
22

33
import static io.lettuce.TestTags.INTEGRATION_TEST;
44
import static io.lettuce.test.settings.TestSettings.sslPort;
5+
import static io.lettuce.test.settings.TlsSettings.createAndSaveTestTruststore;
56
import static org.assertj.core.api.Assertions.assertThat;
67
import static org.junit.jupiter.api.Assumptions.assumeTrue;
78

89
import java.io.File;
10+
import java.nio.file.Path;
11+
import java.nio.file.Paths;
12+
import java.util.HashMap;
13+
import java.util.Map;
914

1015
import javax.inject.Inject;
1116

@@ -36,23 +41,37 @@
3641
@ExtendWith(LettuceExtension.class)
3742
class SentinelSslIntegrationTests extends TestSupport {
3843

39-
private static final File TRUSTSTORE_FILE = new File("work/truststore.jks");
40-
44+
private static File truststoreFile;
4145
private final ClientResources clientResources;
4246

47+
private static Map<Integer, Integer> portMap = new HashMap<>();
48+
static {
49+
portMap.put(26379, 26822);
50+
portMap.put(6482, 8443);
51+
portMap.put(6483, 8444);
52+
}
53+
4354
@Inject
4455
SentinelSslIntegrationTests(ClientResources clientResources) {
56+
4557
this.clientResources = clientResources.mutate()
4658
.socketAddressResolver(MappingSocketAddressResolver.create(DnsResolver.jvmDefault(), hostAndPort -> {
59+
int port = hostAndPort.getPort();
60+
if (portMap.containsKey(port)) {
61+
return HostAndPort.of(hostAndPort.getHostText(), portMap.get(port));
62+
}
4763

48-
return HostAndPort.of(hostAndPort.getHostText(), hostAndPort.getPort() + 443);
64+
return hostAndPort;
4965
})).build();
5066
}
5167

5268
@BeforeAll
5369
static void beforeAll() {
5470
assumeTrue(CanConnect.to(TestSettings.host(), sslPort()), "Assume that stunnel runs on port 6443");
55-
assertThat(TRUSTSTORE_FILE).exists();
71+
Path path2 = createAndSaveTestTruststore("redis-standalone-sentinel-controlled",
72+
Paths.get("redis-standalone-sentinel-controlled/work/tls"), "changeit");
73+
truststoreFile = path2.toFile();
74+
assertThat(truststoreFile).exists();
5675
}
5776

5877
@Test
@@ -75,7 +94,7 @@ void shouldConnectToMasterUsingSentinel() {
7594

7695
RedisURI redisURI = RedisURI.create("rediss-sentinel://" + TestSettings.host() + ":" + RedisURI.DEFAULT_SENTINEL_PORT
7796
+ "?sentinelMasterId=mymaster");
78-
SslOptions options = SslOptions.builder().truststore(TRUSTSTORE_FILE).build();
97+
SslOptions options = SslOptions.builder().truststore(truststoreFile, "changeit").build();
7998

8099
RedisClient client = RedisClient.create(clientResources);
81100
client.setOptions(ClientOptions.builder().sslOptions(options).build());

src/test/resources/docker-env/docker-compose.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ services:
2424
- ${REDIS_ENV_WORK_DIR}/redis-standalone-1/work:/redis/work:rw
2525
ports:
2626
- "6479:6479"
27+
- "6486:6486"
2728
- "6443:6443" # TLS Port
2829
networks:
2930
- redis-network
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
port 6486
2+
save ""
3+
appendonly no
4+
client-output-buffer-limit pubsub 256k 128k 5
5+
unixsocket /work/socket-6486
6+
unixsocketperm 777
7+
enable-debug-command yes
8+
replica-announce-ip localhost

src/test/resources/docker-env/ssl-test-cluster/config/node-7479/redis.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
port 7481
1+
port 7479
22
save ""
33
appendonly no
44
cluster-enabled yes

0 commit comments

Comments
 (0)