@@ -8,6 +8,7 @@ class InstrumenterConfigTest extends DDSpecification {
88 setup :
99 environmentVariables. set(" DD_INTEGRATION_ORDER_ENABLED" , " false" )
1010 environmentVariables. set(" DD_INTEGRATION_TEST_ENV_ENABLED" , " true" )
11+ environmentVariables. set(" DD_TRACE_NEW_ENV_ENABLED" , " false" )
1112 environmentVariables. set(" DD_INTEGRATION_DISABLED_ENV_ENABLED" , " false" )
1213
1314 System . setProperty(" dd.integration.order.enabled" , " true" )
@@ -16,6 +17,7 @@ class InstrumenterConfigTest extends DDSpecification {
1617
1718 environmentVariables. set(" DD_INTEGRATION_ORDER_MATCHING_SHORTCUT_ENABLED" , " false" )
1819 environmentVariables. set(" DD_INTEGRATION_TEST_ENV_MATCHING_SHORTCUT_ENABLED" , " true" )
20+ environmentVariables. set(" DD_INTEGRATION_NEW_ENV_MATCHING_SHORTCUT_ENABLED" , " false" )
1921 environmentVariables. set(" DD_INTEGRATION_DISABLED_ENV_MATCHING_SHORTCUT_ENABLED" , " false" )
2022
2123 System . setProperty(" dd.integration.order.matching.shortcut.enabled" , " true" )
@@ -44,11 +46,72 @@ class InstrumenterConfigTest extends DDSpecification {
4446 [" disabled-env" , " test-env" ] | false | true
4547 [" test-prop" , " disabled-prop" ] | true | false
4648 [" disabled-env" , " test-env" ] | true | false
49+ [" new-env" ] | true | false
4750 // spotless:on
4851
4952 integrationNames = new TreeSet<> (names)
5053 }
5154
55+ def setEnv (String key , String value ) {
56+ environmentVariables. set(key, value)
57+ }
58+
59+ def setSysProp (String key , String value ) {
60+ System . setProperty(key, value)
61+ }
62+
63+ def randomIntegrationEnabled () {
64+ return InstrumenterConfig . get(). isIntegrationEnabled([" random" ], true )
65+ }
66+
67+ def " verify integration enabled hierarchy" () {
68+ when :
69+ // the below should have no effect
70+ setEnv(" DD_RANDOM_ENABLED" , " false" )
71+ setSysProp(" dd.random.enabled" , " false" )
72+
73+ then :
74+ randomIntegrationEnabled() == true
75+
76+ when :
77+ setEnv(" DD_INTEGRATION_RANDOM_ENABLED" , " false" )
78+
79+ then :
80+ randomIntegrationEnabled() == false
81+
82+ when :
83+ setEnv(" DD_TRACE_INTEGRATION_RANDOM_ENABLED" , " true" )
84+
85+ then :
86+ randomIntegrationEnabled() == true
87+
88+ when :
89+ setEnv(" DD_TRACE_RANDOM_ENABLED" , " false" )
90+
91+ then :
92+ randomIntegrationEnabled() == false
93+
94+ // assert all system properties take precedence over all env vars
95+ when :
96+ setSysProp(" dd.integration.random.enabled" , " true" )
97+
98+ then :
99+ randomIntegrationEnabled() == true
100+
101+ when :
102+ setSysProp(" dd.trace.integration.random.enabled" , " false" )
103+
104+ then :
105+ randomIntegrationEnabled() == false
106+
107+ when :
108+ setSysProp(" dd.trace.random.enabled" , " true" )
109+
110+ then :
111+ randomIntegrationEnabled() == true
112+
113+ }
114+
52115 def " valid resolver presets" () {
53116 setup :
54117 injectSysConfig(" resolver.cache.config" , preset)
0 commit comments