Skip to content

Commit 6d284ce

Browse files
Fix lettuce tests (#8664)
* Fix lettuce tests # Conflicts: # dd-java-agent/instrumentation/lettuce-5/src/test/groovy/Lettuce5AsyncClientTest.groovy # dd-java-agent/instrumentation/lettuce-5/src/test/groovy/Lettuce5ReactiveClientTest.groovy # dd-java-agent/instrumentation/lettuce-5/src/test/groovy/Lettuce5SyncClientTest.groovy * cleanup imports * create asyncCommands * codenarc
1 parent fc84de9 commit 6d284ce

File tree

7 files changed

+210
-375
lines changed

7 files changed

+210
-375
lines changed

dd-java-agent/instrumentation/lettuce-4/src/test/groovy/Lettuce4AsyncClientTest.groovy

Lines changed: 1 addition & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,15 @@
11
import static datadog.trace.instrumentation.lettuce4.InstrumentationPoints.AGENT_CRASHING_COMMAND_PREFIX
22

3-
import com.lambdaworks.redis.ClientOptions
43
import com.lambdaworks.redis.RedisClient
54
import com.lambdaworks.redis.RedisConnectionException
65
import com.lambdaworks.redis.RedisFuture
76
import com.lambdaworks.redis.RedisURI
87
import com.lambdaworks.redis.api.StatefulConnection
9-
import com.lambdaworks.redis.api.async.RedisAsyncCommands
10-
import com.lambdaworks.redis.api.sync.RedisCommands
118
import com.lambdaworks.redis.codec.Utf8StringCodec
129
import com.lambdaworks.redis.protocol.AsyncCommand
13-
import datadog.trace.agent.test.naming.VersionedNamingTestBase
14-
import datadog.trace.agent.test.utils.PortUtils
1510
import datadog.trace.api.Config
1611
import datadog.trace.api.DDSpanTypes
1712
import datadog.trace.bootstrap.instrumentation.api.Tags
18-
import redis.embedded.RedisServer
19-
import spock.lang.Shared
2013
import spock.util.concurrent.AsyncConditions
2114

2215
import java.util.concurrent.CancellationException
@@ -26,79 +19,7 @@ import java.util.function.BiFunction
2619
import java.util.function.Consumer
2720
import java.util.function.Function
2821

29-
abstract class Lettuce4AsyncClientTest extends VersionedNamingTestBase {
30-
public static final String HOST = "127.0.0.1"
31-
public static final int DB_INDEX = 0
32-
// Disable autoreconnect so we do not get stray traces popping up on server shutdown
33-
public static final ClientOptions CLIENT_OPTIONS = new ClientOptions.Builder().autoReconnect(false).build()
34-
35-
@Shared
36-
int port
37-
@Shared
38-
int incorrectPort
39-
@Shared
40-
String dbAddr
41-
@Shared
42-
String dbAddrNonExistent
43-
@Shared
44-
String dbUriNonExistent
45-
@Shared
46-
String embeddedDbUri
47-
48-
@Shared
49-
RedisServer redisServer
50-
51-
@Shared
52-
Map<String, String> testHashMap = [
53-
firstname: "John",
54-
lastname : "Doe",
55-
age : "53"
56-
]
57-
58-
RedisClient redisClient
59-
StatefulConnection connection
60-
RedisAsyncCommands<String, ?> asyncCommands
61-
RedisCommands<String, ?> syncCommands
62-
63-
def setupSpec() {
64-
port = PortUtils.randomOpenPort()
65-
incorrectPort = PortUtils.randomOpenPort()
66-
dbAddr = HOST + ":" + port + "/" + DB_INDEX
67-
dbAddrNonExistent = HOST + ":" + incorrectPort + "/" + DB_INDEX
68-
dbUriNonExistent = "redis://" + dbAddrNonExistent
69-
embeddedDbUri = "redis://" + dbAddr
70-
71-
redisServer = RedisServer.builder()
72-
// bind to localhost to avoid firewall popup
73-
.setting("bind " + HOST)
74-
// set max memory to avoid problems in CI
75-
.setting("maxmemory 128M")
76-
.port(port).build()
77-
}
78-
79-
def setup() {
80-
redisClient = RedisClient.create(embeddedDbUri)
81-
82-
println "Using redis: $redisServer.args"
83-
redisServer.start()
84-
redisClient.setOptions(CLIENT_OPTIONS)
85-
86-
connection = redisClient.connect()
87-
asyncCommands = connection.async()
88-
syncCommands = connection.sync()
89-
90-
syncCommands.set("TESTKEY", "TESTVAL")
91-
92-
// 1 set + 1 connect trace
93-
TEST_WRITER.waitForTraces(2)
94-
TEST_WRITER.clear()
95-
}
96-
97-
def cleanup() {
98-
connection.close()
99-
redisServer.stop()
100-
}
101-
22+
abstract class Lettuce4AsyncClientTest extends Lettuce4ClientTestBase {
10223
def "connect using get on ConnectionFuture"() {
10324
setup:
10425
RedisClient testConnectionClient = RedisClient.create(embeddedDbUri)
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
import com.lambdaworks.redis.ClientOptions
2+
import com.lambdaworks.redis.RedisClient
3+
import com.lambdaworks.redis.api.StatefulConnection
4+
import com.lambdaworks.redis.api.async.RedisAsyncCommands
5+
import com.lambdaworks.redis.api.sync.RedisCommands
6+
import datadog.trace.agent.test.naming.VersionedNamingTestBase
7+
import datadog.trace.agent.test.utils.PortUtils
8+
import redis.embedded.RedisServer
9+
import spock.lang.Shared
10+
11+
import static datadog.trace.agent.test.utils.TraceUtils.runUnderTrace
12+
13+
abstract class Lettuce4ClientTestBase extends VersionedNamingTestBase {
14+
public static final String HOST = "127.0.0.1"
15+
public static final int DB_INDEX = 0
16+
// Disable autoreconnect so we do not get stray traces popping up on server shutdown
17+
public static final ClientOptions CLIENT_OPTIONS = new ClientOptions.Builder().autoReconnect(false).build()
18+
19+
@Shared
20+
int port
21+
@Shared
22+
int incorrectPort
23+
@Shared
24+
String dbAddr
25+
@Shared
26+
String dbAddrNonExistent
27+
@Shared
28+
String dbUriNonExistent
29+
@Shared
30+
String embeddedDbUri
31+
32+
@Shared
33+
RedisServer redisServer
34+
35+
@Shared
36+
Map<String, String> testHashMap = [
37+
firstname: "John",
38+
lastname : "Doe",
39+
age : "53"
40+
]
41+
42+
RedisClient redisClient
43+
StatefulConnection connection
44+
RedisCommands<String, ?> syncCommands
45+
RedisAsyncCommands<String, ?> asyncCommands
46+
47+
def setupSpec() {
48+
port = PortUtils.randomOpenPort()
49+
incorrectPort = PortUtils.randomOpenPort()
50+
dbAddr = HOST + ":" + port + "/" + DB_INDEX
51+
dbAddrNonExistent = HOST + ":" + incorrectPort + "/" + DB_INDEX
52+
dbUriNonExistent = "redis://" + dbAddrNonExistent
53+
embeddedDbUri = "redis://" + dbAddr
54+
55+
redisServer = RedisServer.builder()
56+
// bind to localhost to avoid firewall popup
57+
.setting("bind " + HOST)
58+
// set max memory to avoid problems in CI
59+
.setting("maxmemory 128M")
60+
.port(port).build()
61+
}
62+
63+
def setup() {
64+
redisServer.start()
65+
66+
redisClient = RedisClient.create(embeddedDbUri)
67+
redisClient.setOptions(CLIENT_OPTIONS)
68+
69+
runUnderTrace("setup") {
70+
connection = redisClient.connect()
71+
syncCommands = connection.sync()
72+
asyncCommands = connection.async()
73+
74+
syncCommands.set("TESTKEY", "TESTVAL")
75+
syncCommands.hmset("TESTHM", testHashMap)
76+
}
77+
TEST_WRITER.waitForTraces(1)
78+
TEST_WRITER.clear()
79+
}
80+
81+
def cleanup() {
82+
connection.close()
83+
redisServer.stop()
84+
}
85+
}

dd-java-agent/instrumentation/lettuce-4/src/test/groovy/Lettuce4SyncClientTest.groovy

Lines changed: 1 addition & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,87 +1,13 @@
11
import static datadog.trace.instrumentation.lettuce4.InstrumentationPoints.AGENT_CRASHING_COMMAND_PREFIX
22

3-
import com.lambdaworks.redis.ClientOptions
43
import com.lambdaworks.redis.RedisClient
54
import com.lambdaworks.redis.RedisConnectionException
65
import com.lambdaworks.redis.api.StatefulConnection
7-
import com.lambdaworks.redis.api.sync.RedisCommands
8-
import datadog.trace.agent.test.naming.VersionedNamingTestBase
9-
import datadog.trace.agent.test.utils.PortUtils
106
import datadog.trace.api.Config
117
import datadog.trace.api.DDSpanTypes
128
import datadog.trace.bootstrap.instrumentation.api.Tags
13-
import redis.embedded.RedisServer
14-
import spock.lang.Shared
15-
16-
abstract class Lettuce4SyncClientTest extends VersionedNamingTestBase {
17-
public static final String HOST = "127.0.0.1"
18-
public static final int DB_INDEX = 0
19-
// Disable autoreconnect so we do not get stray traces popping up on server shutdown
20-
public static final ClientOptions CLIENT_OPTIONS = new ClientOptions.Builder().autoReconnect(false).build()
21-
22-
@Shared
23-
int port
24-
@Shared
25-
int incorrectPort
26-
@Shared
27-
String dbAddr
28-
@Shared
29-
String dbAddrNonExistent
30-
@Shared
31-
String dbUriNonExistent
32-
@Shared
33-
String embeddedDbUri
34-
35-
@Shared
36-
RedisServer redisServer
37-
38-
@Shared
39-
Map<String, String> testHashMap = [
40-
firstname: "John",
41-
lastname : "Doe",
42-
age : "53"
43-
]
44-
45-
RedisClient redisClient
46-
StatefulConnection connection
47-
RedisCommands<String, ?> syncCommands
48-
49-
def setupSpec() {
50-
port = PortUtils.randomOpenPort()
51-
incorrectPort = PortUtils.randomOpenPort()
52-
dbAddr = HOST + ":" + port + "/" + DB_INDEX
53-
dbAddrNonExistent = HOST + ":" + incorrectPort + "/" + DB_INDEX
54-
dbUriNonExistent = "redis://" + dbAddrNonExistent
55-
embeddedDbUri = "redis://" + dbAddr
56-
57-
redisServer = RedisServer.builder()
58-
// bind to localhost to avoid firewall popup
59-
.setting("bind " + HOST)
60-
// set max memory to avoid problems in CI
61-
.setting("maxmemory 128M")
62-
.port(port).build()
63-
}
64-
65-
def setup() {
66-
redisClient = RedisClient.create(embeddedDbUri)
67-
68-
redisServer.start()
69-
connection = redisClient.connect()
70-
syncCommands = connection.sync()
71-
72-
syncCommands.set("TESTKEY", "TESTVAL")
73-
syncCommands.hmset("TESTHM", testHashMap)
74-
75-
// 2 sets + 1 connect trace
76-
TEST_WRITER.waitForTraces(3)
77-
TEST_WRITER.clear()
78-
}
79-
80-
def cleanup() {
81-
connection.close()
82-
redisServer.stop()
83-
}
849

10+
abstract class Lettuce4SyncClientTest extends Lettuce4ClientTestBase {
8511
def "connect"() {
8612
setup:
8713
RedisClient testConnectionClient = RedisClient.create(embeddedDbUri)

0 commit comments

Comments
 (0)