Skip to content

Commit a31f629

Browse files
mhlidddevflow.devflow-routing-intake
andauthored
Update Spock Tests to run with STRICT_TEST mode by default (#11032)
updating config helper to have descriptive exception in strict mode enabling ConfigHelper strict mode by default for spock tests updating test-utils to include config-utils dependency at runtime overriding strictness for tests using fake env vars test adding real env vars updating tests using fake env vars and adding more env vars overriding test mode for elasticsearch and opensearch adding final integration configs and overriding fake config tests updating strictness in configurePreAgent update config helper to guarantee throw an error that won't be caught configuring more fake config tests adding final configurations Merge branch 'master' into mhlidd/run_spock_with_strict revert supported-configurations cleanup removing additional draining from InstrumentationSpecification Merge branch 'master' into mhlidd/run_spock_with_strict Merge branch 'master' into mhlidd/run_spock_with_strict Merge branch 'master' into mhlidd/run_spock_with_strict Merge branch 'master' into mhlidd/run_spock_with_strict Co-authored-by: devflow.devflow-routing-intake <devflow.devflow-routing-intake@kubernetes.us1.ddbuild.io>
1 parent f4491d3 commit a31f629

File tree

47 files changed

+329
-14
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+329
-14
lines changed

dd-java-agent/agent-bootstrap/src/test/groovy/datadog/trace/bootstrap/instrumentation/decorator/BaseDecoratorTest.groovy

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,16 @@ import datadog.trace.bootstrap.instrumentation.api.AgentSpan
55
import datadog.trace.bootstrap.instrumentation.api.AgentSpanContext
66
import datadog.trace.bootstrap.instrumentation.api.ErrorPriorities
77
import datadog.trace.bootstrap.instrumentation.api.Tags
8+
import datadog.trace.config.inversion.ConfigHelper
89
import datadog.trace.test.util.DDSpecification
910
import spock.lang.Shared
1011

1112
class BaseDecoratorTest extends DDSpecification {
1213

14+
def setupSpec() {
15+
ConfigHelper.get().setConfigInversionStrict(ConfigHelper.StrictnessPolicy.TEST)
16+
}
17+
1318
@Shared
1419
def decorator = newDecorator()
1520

dd-java-agent/agent-installer/src/test/groovy/datadog/trace/agent/test/DefaultInstrumenterForkedTest.groovy

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package datadog.trace.agent.test
22

33
import datadog.environment.EnvironmentVariables
44
import datadog.trace.agent.tooling.InstrumenterModule
5+
import datadog.trace.config.inversion.ConfigHelper
56
import datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers
67
import datadog.trace.agent.tooling.bytebuddy.outline.TypePoolFacade
78
import datadog.trace.test.util.DDSpecification
@@ -12,6 +13,10 @@ class DefaultInstrumenterForkedTest extends DDSpecification {
1213
DDElementMatchers.registerAsSupplier()
1314
}
1415

16+
def setupSpec() {
17+
ConfigHelper.get().setConfigInversionStrict(ConfigHelper.StrictnessPolicy.TEST)
18+
}
19+
1520
def "default enabled"() {
1621
setup:
1722
def target = new TestDefaultInstrumenter("test")

dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/InstrumenterIndexTest.groovy

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
package datadog.trace.agent.tooling
22

3+
import datadog.trace.config.inversion.ConfigHelper
34
import datadog.trace.test.util.DDSpecification
45
import spock.lang.Shared
56

67
class InstrumenterIndexTest extends DDSpecification {
78

9+
def setupSpec() {
10+
ConfigHelper.get().setConfigInversionStrict(ConfigHelper.StrictnessPolicy.TEST)
11+
}
12+
813
@Shared
914
def unknownInstrumentation = new InstrumenterModule('unknown') {}
1015

dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/csi/BaseCallSiteTest.groovy

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import datadog.trace.agent.tooling.bytebuddy.csi.Advices
44
import datadog.trace.agent.tooling.bytebuddy.csi.CallSiteInstrumentation
55
import datadog.trace.agent.tooling.bytebuddy.csi.CallSiteSupplier
66
import datadog.trace.agent.tooling.bytebuddy.csi.CallSiteTransformer
7+
import datadog.trace.config.inversion.ConfigHelper
78
import datadog.trace.test.util.DDSpecification
89
import groovy.transform.CompileDynamic
910
import net.bytebuddy.agent.builder.AgentBuilder
@@ -31,6 +32,10 @@ import static net.bytebuddy.matcher.ElementMatchers.named
3132
@CompileDynamic
3233
class BaseCallSiteTest extends DDSpecification {
3334

35+
def setupSpec() {
36+
ConfigHelper.get().setConfigInversionStrict(ConfigHelper.StrictnessPolicy.TEST)
37+
}
38+
3439
protected CallSites mockCallSites(final byte type = BEFORE, final CallSiteAdvice advice, final Pointcut target, final String... helpers) {
3540
return Stub(CallSites) {
3641
accept(_ as CallSites.Container) >> {

dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/muzzle/MuzzleVersionScanPluginTest.groovy

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package datadog.trace.agent.tooling.muzzle
22

33
import datadog.trace.agent.tooling.Instrumenter
44
import datadog.trace.agent.tooling.InstrumenterModule
5+
import datadog.trace.config.inversion.ConfigHelper
56
import datadog.trace.test.util.DDSpecification
67
import net.bytebuddy.matcher.ElementMatcher
78

@@ -20,6 +21,10 @@ import static datadog.trace.agent.tooling.muzzle.TestInstrumentationClasses.Vali
2021

2122
class MuzzleVersionScanPluginTest extends DDSpecification {
2223

24+
def setupSpec() {
25+
ConfigHelper.get().setConfigInversionStrict(ConfigHelper.StrictnessPolicy.TEST)
26+
}
27+
2328
def "test assertInstrumentationMuzzled advice"() {
2429
setup:
2530
def instrumentationLoader = new ServiceEnabledClassLoader(InstrumenterModule,

dd-java-agent/instrumentation-testing/src/main/groovy/datadog/trace/agent/test/InstrumentationSpecification.groovy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import static datadog.trace.api.config.TraceInstrumentationConfig.CODE_ORIGIN_FO
1010
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.closePrevious
1111
import static datadog.trace.util.AgentThreadFactory.AgentThread.TASK_SCHEDULER
1212

13+
1314
import ch.qos.logback.classic.Level
1415
import ch.qos.logback.classic.util.ContextInitializer
1516
import com.datadog.debugger.agent.ClassesToRetransformFinder

dd-java-agent/instrumentation-testing/src/test/groovy/AgentTestRunnerTest.groovy

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import com.google.common.reflect.ClassPath
22
import datadog.trace.agent.test.InstrumentationSpecification
3+
import datadog.trace.config.inversion.ConfigHelper
34
import datadog.trace.agent.test.BootstrapClasspathSetupListener
45
import datadog.trace.api.GlobalTracer
56
import datadog.trace.api.Platform
@@ -26,6 +27,8 @@ class AgentTestRunnerTest extends InstrumentationSpecification {
2627
@Override
2728
void configurePreAgent() {
2829
super.configurePreAgent()
30+
// Opt out of strict config validation - test module loads test instrumentations with fake names
31+
ConfigHelper.get().setConfigInversionStrict(ConfigHelper.StrictnessPolicy.TEST)
2932

3033
injectSysConfig(TRACE_CLASSES_EXCLUDE, "config.exclude.packagename.*, config.exclude.SomeClass,config.exclude.SomeClass\$NestedClass")
3134
}

dd-java-agent/instrumentation-testing/src/test/groovy/ConfigResetTest.groovy

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
11
import datadog.environment.EnvironmentVariables
22
import datadog.trace.agent.test.InstrumentationSpecification
3+
import datadog.trace.config.inversion.ConfigHelper
34
import datadog.trace.api.Config
45
import spock.lang.Shared
56

67
class ConfigResetTest extends InstrumentationSpecification {
78

9+
@Override
10+
protected void configurePreAgent() {
11+
super.configurePreAgent()
12+
// Opt out of strict config validation - test module loads test instrumentations with fake names
13+
ConfigHelper.get().setConfigInversionStrict(ConfigHelper.StrictnessPolicy.TEST)
14+
}
15+
816
@Shared
917
def sharedInstance = checkStaticAssertions()
1018

dd-java-agent/instrumentation-testing/src/test/groovy/InstrumentOldBytecode.groovy

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
11
import com.ibm.as400.resource.ResourceLevel
22
import datadog.trace.agent.test.InstrumentationSpecification
3+
import datadog.trace.config.inversion.ConfigHelper
34

45
class InstrumentOldBytecode extends InstrumentationSpecification {
6+
7+
@Override
8+
protected void configurePreAgent() {
9+
super.configurePreAgent()
10+
// Opt out of strict config validation - test module loads test instrumentations with fake names
11+
ConfigHelper.get().setConfigInversionStrict(ConfigHelper.StrictnessPolicy.TEST)
12+
}
13+
514
def "can instrument old bytecode"() {
615
expect:
716
new ResourceLevel().toString() == "instrumented"

dd-java-agent/instrumentation-testing/src/test/groovy/TooManyInvocationsErrorListenerTest.groovy

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
11
import datadog.trace.agent.test.InstrumentationSpecification
2+
import datadog.trace.config.inversion.ConfigHelper
23
import datadog.trace.agent.test.TestClassShadowingExtension
34
import org.spockframework.mock.*
45
import org.spockframework.mock.runtime.MockInvocation
56

67
class TooManyInvocationsErrorListenerTest extends InstrumentationSpecification {
78

9+
@Override
10+
protected void configurePreAgent() {
11+
super.configurePreAgent()
12+
// Opt out of strict config validation - test module loads test instrumentations with fake names
13+
ConfigHelper.get().setConfigInversionStrict(ConfigHelper.StrictnessPolicy.TEST)
14+
}
15+
816
@SuppressWarnings('GroovyAccessibility')
917
void 'test that listener modifies failure'() {
1018
setup:

0 commit comments

Comments
 (0)