Skip to content

Commit 45b8e15

Browse files
authored
Migrating Additional tests in ConfigTest that Utilize Fake Env Vars (#9860)
* Migrating additional ConfigTests using fake env vars * fixing remaining tests * invoking gitlab
1 parent fb9d0a1 commit 45b8e15

File tree

2 files changed

+66
-58
lines changed

2 files changed

+66
-58
lines changed

internal-api/src/test/groovy/datadog/trace/api/ConfigCollectorTest.groovy

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import datadog.trace.api.config.TracerConfig
1010
import datadog.trace.api.iast.telemetry.Verbosity
1111
import datadog.trace.api.naming.SpanNaming
1212
import datadog.trace.bootstrap.config.provider.ConfigProvider
13+
import datadog.trace.config.inversion.ConfigHelper
1314
import datadog.trace.test.util.DDSpecification
1415
import datadog.trace.util.ConfigStrings
1516

@@ -276,6 +277,9 @@ class ConfigCollectorTest extends DDSpecification {
276277

277278
def "config id is null for non-StableConfigSource"() {
278279
setup:
280+
def strictness = ConfigHelper.get().configInversionStrictFlag()
281+
ConfigHelper.get().setConfigInversionStrict(ConfigHelper.StrictnessPolicy.TEST)
282+
279283
def key = "test.key"
280284
def value = "test-value"
281285
injectSysConfig(key, value)
@@ -292,6 +296,9 @@ class ConfigCollectorTest extends DDSpecification {
292296
setting.configId == null
293297
setting.value == value
294298
setting.origin == ConfigOrigin.JVM_PROP
299+
300+
cleanup:
301+
ConfigHelper.get().setConfigInversionStrict(strictness)
295302
}
296303

297304
def "default sources cannot be overridden"() {

internal-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy

Lines changed: 59 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1190,46 +1190,6 @@ class ConfigTest extends DDSpecification {
11901190
config.serviceName == 'unnamed-java-app'
11911191
}
11921192

1193-
def "get analytics sample rate"() {
1194-
setup:
1195-
environmentVariables.set("DD_FOO_ANALYTICS_SAMPLE_RATE", "0.5")
1196-
environmentVariables.set("DD_BAR_ANALYTICS_SAMPLE_RATE", "0.9")
1197-
// trace prefix form should take precedence over the old non-prefix form
1198-
environmentVariables.set("DD_ALIAS_ENV_ANALYTICS_SAMPLE_RATE", "0.8")
1199-
environmentVariables.set("DD_TRACE_ALIAS_ENV_ANALYTICS_SAMPLE_RATE", "0.4")
1200-
1201-
System.setProperty("dd.baz.analytics.sample-rate", "0.7")
1202-
System.setProperty("dd.buzz.analytics.sample-rate", "0.3")
1203-
// trace prefix form should take precedence over the old non-prefix form
1204-
System.setProperty("dd.alias-prop.analytics.sample-rate", "0.1")
1205-
System.setProperty("dd.trace.alias-prop.analytics.sample-rate", "0.2")
1206-
1207-
when:
1208-
String[] array = services.toArray(new String[0])
1209-
def value = Config.get().getInstrumentationAnalyticsSampleRate(array)
1210-
1211-
then:
1212-
value == expected
1213-
1214-
where:
1215-
// spotless:off
1216-
services | expected
1217-
["foo"] | 0.5f
1218-
["baz"] | 0.7f
1219-
["doesnotexist"] | 1.0f
1220-
["doesnotexist", "foo"] | 0.5f
1221-
["doesnotexist", "baz"] | 0.7f
1222-
["foo", "bar"] | 0.5f
1223-
["bar", "foo"] | 0.9f
1224-
["baz", "buzz"] | 0.7f
1225-
["buzz", "baz"] | 0.3f
1226-
["foo", "baz"] | 0.5f
1227-
["baz", "foo"] | 0.7f
1228-
["alias-env", "baz"] | 0.4f
1229-
["alias-prop", "foo"] | 0.2f
1230-
// spotless:on
1231-
}
1232-
12331193
def "verify api key loaded from file: #path"() {
12341194
setup:
12351195
environmentVariables.set(DD_API_KEY_ENV, "default-api-key")
@@ -1851,24 +1811,6 @@ class ConfigTest extends DDSpecification {
18511811
// spotless:on
18521812
}
18531813

1854-
// Static methods test:
1855-
def "configProvider.get* unit test"() {
1856-
setup:
1857-
def p = new Properties()
1858-
p.setProperty("i", "13")
1859-
p.setProperty("f", "42.42")
1860-
def configProvider = ConfigProvider.withPropertiesOverride(p)
1861-
1862-
expect:
1863-
configProvider.getDouble("i", 40) == 13
1864-
configProvider.getDouble("f", 41) == 42.42
1865-
configProvider.getFloat("i", 40) == 13
1866-
configProvider.getFloat("f", 41) == 42.42f
1867-
configProvider.getInteger("b", 61) == 61
1868-
configProvider.getInteger("i", 61) == 13
1869-
configProvider.getBoolean("a", true) == true
1870-
}
1871-
18721814
def "valueOf positive test"() {
18731815
expect:
18741816
ConfigConverter.valueOf(value, tClass) == expected
@@ -2640,6 +2582,7 @@ class ConfigTest extends DDSpecification {
26402582
"datad0g.com" | "https://all-http-intake.logs.datad0g.com/api/v2/apmtelemetry"
26412583
}
26422584

2585+
// Subclass for setting Strictness of ConfigHelper when using fake configs
26432586
static class ConfigTestWithFakes extends ConfigTest {
26442587

26452588
def strictness
@@ -2827,5 +2770,63 @@ class ConfigTest extends DDSpecification {
28272770
28282771
defaultValue = 10.0
28292772
}
2773+
2774+
def "get analytics sample rate"() {
2775+
setup:
2776+
environmentVariables.set("DD_FOO_ANALYTICS_SAMPLE_RATE", "0.5")
2777+
environmentVariables.set("DD_BAR_ANALYTICS_SAMPLE_RATE", "0.9")
2778+
// trace prefix form should take precedence over the old non-prefix form
2779+
environmentVariables.set("DD_ALIAS_ENV_ANALYTICS_SAMPLE_RATE", "0.8")
2780+
environmentVariables.set("DD_TRACE_ALIAS_ENV_ANALYTICS_SAMPLE_RATE", "0.4")
2781+
2782+
System.setProperty("dd.baz.analytics.sample-rate", "0.7")
2783+
System.setProperty("dd.buzz.analytics.sample-rate", "0.3")
2784+
// trace prefix form should take precedence over the old non-prefix form
2785+
System.setProperty("dd.alias-prop.analytics.sample-rate", "0.1")
2786+
System.setProperty("dd.trace.alias-prop.analytics.sample-rate", "0.2")
2787+
2788+
when:
2789+
String[] array = services.toArray(new String[0])
2790+
def value = Config.get().getInstrumentationAnalyticsSampleRate(array)
2791+
2792+
then:
2793+
value == expected
2794+
2795+
where:
2796+
// spotless:off
2797+
services | expected
2798+
["foo"] | 0.5f
2799+
["baz"] | 0.7f
2800+
["doesnotexist"] | 1.0f
2801+
["doesnotexist", "foo"] | 0.5f
2802+
["doesnotexist", "baz"] | 0.7f
2803+
["foo", "bar"] | 0.5f
2804+
["bar", "foo"] | 0.9f
2805+
["baz", "buzz"] | 0.7f
2806+
["buzz", "baz"] | 0.3f
2807+
["foo", "baz"] | 0.5f
2808+
["baz", "foo"] | 0.7f
2809+
["alias-env", "baz"] | 0.4f
2810+
["alias-prop", "foo"] | 0.2f
2811+
// spotless:on
2812+
}
2813+
2814+
// Static methods test:
2815+
def "configProvider.get* unit test"() {
2816+
setup:
2817+
def p = new Properties()
2818+
p.setProperty("i", "13")
2819+
p.setProperty("f", "42.42")
2820+
def configProvider = ConfigProvider.withPropertiesOverride(p)
2821+
2822+
expect:
2823+
configProvider.getDouble("i", 40) == 13
2824+
configProvider.getDouble("f", 41) == 42.42
2825+
configProvider.getFloat("i", 40) == 13
2826+
configProvider.getFloat("f", 41) == 42.42f
2827+
configProvider.getInteger("b", 61) == 61
2828+
configProvider.getInteger("i", 61) == 13
2829+
configProvider.getBoolean("a", true) == true
2830+
}
28302831
}
28312832
}

0 commit comments

Comments
 (0)