Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
import datadog.trace.test.util.Flaky

import static datadog.trace.agent.test.utils.TraceUtils.basicSpan

import io.vertx.core.AsyncResult
import io.vertx.core.Handler
import io.vertx.redis.client.RedisAPI
import io.vertx.redis.client.Response
import spock.lang.AutoCleanup
import spock.lang.Shared
import spock.util.concurrent.PollingConditions

import java.util.concurrent.CountDownLatch
import java.util.concurrent.TimeUnit

import static datadog.trace.agent.test.utils.TraceUtils.basicSpan

abstract class VertxRedisAPITestBase extends VertxRedisTestBase {

@AutoCleanup(quiet = true)
Expand Down Expand Up @@ -154,21 +154,34 @@ class VertxRedisAPIRedisForkedTest extends VertxRedisAPITestBase {
class VertxRedisAPIRedisConnectionForkedTest extends VertxRedisAPITestBase {
@Override
RedisAPI createRedis() {
RedisAPI api = null

new PollingConditions(delay: 3, timeout: 15).eventually {
(api = connect()) != null
}

return api
}

private RedisAPI connect() {
def latch = new CountDownLatch(1)
def ret
redis.connect({ar ->
RedisAPI api = null
redis.connect({ ar ->
try {
if (!ar.succeeded()) {
if (ar.succeeded()) {
api = RedisAPI.api(ar.result())
} else {
println "Redis connection failed"
ar.cause().printStackTrace(System.out)
}
ret = RedisAPI.api(ar.result())
} catch (Throwable t) {
t.printStackTrace(System.out)
} finally {
latch.countDown()
}
})
latch.await(10, TimeUnit.SECONDS)
return ret

return api
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
import org.testcontainers.utility.DockerImageName

import static datadog.trace.agent.test.utils.TraceUtils.basicSpan
import static datadog.trace.agent.test.utils.TraceUtils.runUnderTrace
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan

import com.redis.testcontainers.RedisContainer
import datadog.trace.agent.test.asserts.ListWriterAssert
import datadog.trace.agent.test.asserts.TraceAssert
Expand All @@ -21,13 +15,18 @@ import io.vertx.redis.client.Redis
import io.vertx.redis.client.Request
import io.vertx.redis.client.Response
import org.testcontainers.containers.wait.strategy.Wait
import org.testcontainers.utility.DockerImageName
import spock.lang.AutoCleanup
import spock.lang.Shared

import java.util.concurrent.CountDownLatch
import java.util.concurrent.TimeUnit
import java.util.function.Function

import static datadog.trace.agent.test.utils.TraceUtils.basicSpan
import static datadog.trace.agent.test.utils.TraceUtils.runUnderTrace
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan

abstract class VertxRedisTestBase extends VersionedNamingTestBase {

@Shared
Expand Down Expand Up @@ -86,11 +85,12 @@ abstract class VertxRedisTestBase extends VersionedNamingTestBase {
TEST_WRITER.start()
}

public <T, R> R runWithHandler(final Handler<Handler<AsyncResult<T>>> redisCommand,
final Function<T, R> resultFunction = null) {
<T, R> R runWithHandler(final Handler<Handler<AsyncResult<T>>> redisCommand,
final Function<T, R> resultFunction = null) {
R result = null
CountDownLatch latch = new CountDownLatch(1)
redisCommand.handle({ ar ->
redisCommand.handle({
ar ->
runUnderTrace("handler") {
if (resultFunction) {
result = resultFunction.apply(ar.result())
Expand All @@ -102,8 +102,8 @@ abstract class VertxRedisTestBase extends VersionedNamingTestBase {
result
}

public <T, R> R runWithParentAndHandler(final Handler<Handler<AsyncResult<T>>> redisCommand,
final Function<T, R> resultFunction = null) {
def <T, R> R runWithParentAndHandler(final Handler<Handler<AsyncResult<T>>> redisCommand,
final Function<T, R> resultFunction = null) {
R result = null
def parentSpan = runUnderTrace("parent") {
result = runWithHandler(redisCommand, resultFunction)
Expand Down Expand Up @@ -160,8 +160,4 @@ abstract class VertxRedisTestBase extends VersionedNamingTestBase {
List<String> responseToStrings(Response r) {
r.iterator().collect { it.toString() }
}

public <T> T identity(T t) {
return t
}
}