Skip to content

Commit

Permalink
Replace DDTracer in misk tests with MockTracer
Browse files Browse the repository at this point in the history
This updates tracing and logging tests using tracer to avoid potential
issues with global state

GitOrigin-RevId: 0aad928a94ad198d385d5a3519b311dd7bc2fb8a
  • Loading branch information
rainecp authored and svc-squareup-copybara committed Jul 19, 2024
1 parent 5b2a0bf commit c4105aa
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 45 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,34 @@ package misk.cloud.gcp.tracing

import com.google.cloud.logging.LogEntry
import com.google.cloud.logging.Payload
import datadog.opentracing.DDTracer
import ddtrot.dd.trace.common.writer.Writer
import ddtrot.dd.trace.core.DDSpan
import io.opentracing.mock.MockTracer
import io.opentracing.noop.NoopTracerFactory
import io.opentracing.util.GlobalTracer
import misk.testing.MiskTest
import wisp.tracing.traceWithSpan
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.BeforeAll
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.TestInstance

@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@MiskTest
class TracingLoggingEnhancerTest {

private val tracer = MockTracer()

@BeforeAll
fun initClass() {
GlobalTracer.registerIfAbsent(tracer)
}

@BeforeEach
fun setup() {
tracer.reset()
}

@Test fun enhanceDatadogTracer() {
GlobalTracer.registerIfAbsent(DDTracer.builder().writer(NoopWriter()).build())
val tracer = GlobalTracer.get()
tracer.traceWithSpan("test span") {
val logEntryBuilder = LogEntry.newBuilder(Payload.StringPayload.of("payload"))
Expand All @@ -41,22 +55,3 @@ class TracingLoggingEnhancerTest {
assertThat(logEntry.labels).isEmpty()
}
}

class NoopWriter : Writer {
override fun start() {
}

override fun write(trace: MutableList<DDSpan>?) {
}

override fun close() {
}

override fun flush(): Boolean {
return true
}

override fun incrementDropCounts(p0: Int) {
}

}
39 changes: 17 additions & 22 deletions misk-jdbc/src/test/kotlin/misk/jdbc/SpanInjectorTest.kt
Original file line number Diff line number Diff line change
@@ -1,17 +1,31 @@
package misk.jdbc

import datadog.opentracing.DDTracer
import ddtrot.dd.trace.common.writer.Writer
import ddtrot.dd.trace.core.DDSpan
import io.opentracing.mock.MockTracer
import io.opentracing.util.GlobalTracer
import net.ttddyy.dsproxy.transform.TransformInfo
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.BeforeAll
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.TestInstance
import org.mockito.Mockito
import javax.sql.DataSource

@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class SpanInjectorTest {

private val tracer = MockTracer()

@BeforeAll
fun initClass() {
GlobalTracer.registerIfAbsent(tracer)
}

@BeforeEach
fun setup() {
tracer.reset()
}

@Test
fun testDecoratesIfItsVitessMysql() {
val tracer = MockTracer()
Expand All @@ -24,7 +38,6 @@ class SpanInjectorTest {

@Test
fun testDatadog() {
GlobalTracer.registerIfAbsent(DDTracer.builder().writer(NoopWriter()).build())
val tracer = GlobalTracer.get()
val span = tracer.buildSpan("operation").start()
tracer.activateSpan(span).use { _ ->
Expand All @@ -37,21 +50,3 @@ class SpanInjectorTest {
}
}
}

class NoopWriter : Writer {
override fun start() {
}

override fun write(trace: MutableList<DDSpan>?) {
}

override fun close() {
}

override fun flush(): Boolean {
return true
}

override fun incrementDropCounts(p0: Int) {
}
}

0 comments on commit c4105aa

Please sign in to comment.