From 85b316b1c0f8fcfbf578ba747a88ac0685e92d6c Mon Sep 17 00:00:00 2001 From: Bruce Bujon Date: Thu, 3 Oct 2024 17:07:28 +0200 Subject: [PATCH] Fix test name uniqueness (#7720) --- .../trace/bootstrap/ExcludeFilterTest.groovy | 4 +- .../test/DefaultInstrumenterForkedTest.groovy | 2 +- .../expressions/ComparisonExpressionTest.java | 2 +- .../com/datadog/iast/IastTagTest.groovy | 32 ++--- .../model/json/EvidenceRedactionTest.groovy | 2 +- .../propagation/PropagationModuleTest.groovy | 3 +- .../agent/test/ResourceLocatingTest.groovy | 2 +- .../csi/AdvicesInvokeDynamicTest.groovy | 6 +- .../DataBundleMapWrapperSpecification.groovy | 29 ++-- ...taRsAnnotations3InstrumentationTest.groovy | 11 +- .../src/test/groovy/CrossedContextTest.groovy | 4 +- .../groovy/TaskUnwrappingForkedTest.groovy | 2 +- .../RecursiveThreadPoolPropagationTest.groovy | 2 +- .../ThreadLocalRandomCallSiteTest.groovy | 2 +- ...axRsAnnotations1InstrumentationTest.groovy | 11 +- ...axRsAnnotations2InstrumentationTest.groovy | 11 +- .../KotlinCoroutineInstrumentationTest.groovy | 4 +- .../KotlinCoroutineInstrumentationTest.groovy | 8 +- ...tKotlinCoroutineInstrumentationTest.groovy | 58 ++++---- .../context/FieldInjectionForkedTest.groovy | 6 +- .../trace/api/cache/FixedSizeCacheTest.groovy | 23 +++- .../secrets/HardcodedSecretMatcherTest.groovy | 128 +++++++++--------- 22 files changed, 178 insertions(+), 174 deletions(-) diff --git a/dd-java-agent/agent-bootstrap/src/test/groovy/datadog/trace/bootstrap/ExcludeFilterTest.groovy b/dd-java-agent/agent-bootstrap/src/test/groovy/datadog/trace/bootstrap/ExcludeFilterTest.groovy index e8241c4725c..168b0923498 100644 --- a/dd-java-agent/agent-bootstrap/src/test/groovy/datadog/trace/bootstrap/ExcludeFilterTest.groovy +++ b/dd-java-agent/agent-bootstrap/src/test/groovy/datadog/trace/bootstrap/ExcludeFilterTest.groovy @@ -9,7 +9,7 @@ import static datadog.trace.bootstrap.instrumentation.java.concurrent.ExcludeFil class ExcludeFilterTest extends DDSpecification { - def "test empty ExcludeFilter"() { + def "test empty ExcludeFilter #type.name()"() { setup: def one = new One() def oneName = One.getName() @@ -22,7 +22,7 @@ class ExcludeFilterTest extends DDSpecification { type << ExcludeFilter.ExcludeType.values() } - def "test ExcludeFilter"() { + def "test ExcludeFilter #type.name()"() { setup: def another = new Another() def anotherName = Another.getName() diff --git a/dd-java-agent/agent-builder/src/test/groovy/datadog/trace/agent/test/DefaultInstrumenterForkedTest.groovy b/dd-java-agent/agent-builder/src/test/groovy/datadog/trace/agent/test/DefaultInstrumenterForkedTest.groovy index 84a8acfb7d8..e97061bc899 100644 --- a/dd-java-agent/agent-builder/src/test/groovy/datadog/trace/agent/test/DefaultInstrumenterForkedTest.groovy +++ b/dd-java-agent/agent-builder/src/test/groovy/datadog/trace/agent/test/DefaultInstrumenterForkedTest.groovy @@ -20,7 +20,7 @@ class DefaultInstrumenterForkedTest extends DDSpecification { target.enabled } - def "default enabled override"() { + def "default enabled override #enabled"() { expect: target.enabled == enabled diff --git a/dd-java-agent/agent-debugger/debugger-el/src/test/java/com/datadog/debugger/el/expressions/ComparisonExpressionTest.java b/dd-java-agent/agent-debugger/debugger-el/src/test/java/com/datadog/debugger/el/expressions/ComparisonExpressionTest.java index 207e784902e..a72e20acfb8 100644 --- a/dd-java-agent/agent-debugger/debugger-el/src/test/java/com/datadog/debugger/el/expressions/ComparisonExpressionTest.java +++ b/dd-java-agent/agent-debugger/debugger-el/src/test/java/com/datadog/debugger/el/expressions/ComparisonExpressionTest.java @@ -27,7 +27,7 @@ class ComparisonExpressionTest { - @ParameterizedTest + @ParameterizedTest(name = "[{index}] {4}") @MethodSource("expressions") void evaluateOperator( ValueExpression left, diff --git a/dd-java-agent/agent-iast/src/test/groovy/com/datadog/iast/IastTagTest.groovy b/dd-java-agent/agent-iast/src/test/groovy/com/datadog/iast/IastTagTest.groovy index 5914f44f934..a7bcfb90458 100644 --- a/dd-java-agent/agent-iast/src/test/groovy/com/datadog/iast/IastTagTest.groovy +++ b/dd-java-agent/agent-iast/src/test/groovy/com/datadog/iast/IastTagTest.groovy @@ -9,7 +9,7 @@ import static com.datadog.iast.IastTag.Enabled.SKIPPED class IastTagTest extends DDSpecification { - void 'tags are sent on the segment'() { + void 'tags are sent on the segment (#tagName)'() { given: final segment = Mock(TraceSegment) @@ -20,12 +20,12 @@ class IastTagTest extends DDSpecification { 1 * segment.setTagTop(tag.key(), tag.value()) where: - tag | _ - ANALYZED | _ - SKIPPED | _ + tagName | tag + "analyzed" | ANALYZED + "skipped" | SKIPPED } - void 'tags dont fail with null segment'() { + void 'tags dont fail with null segment (#tagName)'() { when: tag.setTagTop(null) @@ -33,12 +33,12 @@ class IastTagTest extends DDSpecification { noExceptionThrown() where: - tag | _ - ANALYZED | _ - SKIPPED | _ + tagName | tag + "analyzed" | ANALYZED + "skipped" | SKIPPED } - void 'tags are sent on the span'() { + void 'tags are sent on the span (#tagName)'() { given: final span = Mock(AgentSpan) @@ -49,12 +49,12 @@ class IastTagTest extends DDSpecification { 1 * span.setTag(tag.key(), tag.value()) where: - tag | _ - ANALYZED | _ - SKIPPED | _ + tagName | tag + "analyzed" | ANALYZED + "skipped" | SKIPPED } - void 'tags dont fail with null span'() { + void 'tags dont fail with null span (#tagName)'() { when: tag.setTag(null) @@ -62,9 +62,9 @@ class IastTagTest extends DDSpecification { noExceptionThrown() where: - tag | _ - ANALYZED | _ - SKIPPED | _ + tagName | tag + "analyzed" | ANALYZED + "skipped" | SKIPPED } void 'enabled tags are not set if IAST is opt-out'() { diff --git a/dd-java-agent/agent-iast/src/test/groovy/com/datadog/iast/model/json/EvidenceRedactionTest.groovy b/dd-java-agent/agent-iast/src/test/groovy/com/datadog/iast/model/json/EvidenceRedactionTest.groovy index 4b05d56c4e0..f52d8a5419f 100644 --- a/dd-java-agent/agent-iast/src/test/groovy/com/datadog/iast/model/json/EvidenceRedactionTest.groovy +++ b/dd-java-agent/agent-iast/src/test/groovy/com/datadog/iast/model/json/EvidenceRedactionTest.groovy @@ -58,7 +58,7 @@ class EvidenceRedactionTest extends DDSpecification { vulnerabilitiesParser = moshi.adapter(Types.newParameterizedType(List, Vulnerability)) } - void 'test empty value parts'() { + void 'test empty value parts #iterationIndex'() { given: final writer = Stub(JsonWriter) final ctx = new AdapterFactory.Context() diff --git a/dd-java-agent/agent-iast/src/test/groovy/com/datadog/iast/propagation/PropagationModuleTest.groovy b/dd-java-agent/agent-iast/src/test/groovy/com/datadog/iast/propagation/PropagationModuleTest.groovy index d0019935a1a..44eb840307b 100644 --- a/dd-java-agent/agent-iast/src/test/groovy/com/datadog/iast/propagation/PropagationModuleTest.groovy +++ b/dd-java-agent/agent-iast/src/test/groovy/com/datadog/iast/propagation/PropagationModuleTest.groovy @@ -39,7 +39,7 @@ class PropagationModuleTest extends IastModuleImplTestBase { } } - void '#method(#args) not taintable'() { + void '#method(#argTypes) not taintable'() { when: 'there is no context by default' module.&"$method".call(args.toArray()) @@ -102,6 +102,7 @@ class PropagationModuleTest extends IastModuleImplTestBase { ] 'findSource' | [null] 'isTainted' | [null] + argTypes = args*.class.name } void '#method without span'() { diff --git a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/test/ResourceLocatingTest.groovy b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/test/ResourceLocatingTest.groovy index 286f27618ca..9e5e99ea936 100644 --- a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/test/ResourceLocatingTest.groovy +++ b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/test/ResourceLocatingTest.groovy @@ -24,7 +24,7 @@ class ResourceLocatingTest extends DDSpecification { lastLookup.set(null) } - def "finds resources from parent classloader"() { + def "finds resources from parent classloader #locator.class.name"() { expect: locator.locate("java/lang/Object").isResolved() == usesProvidedClassloader // lastLookup verifies that the given classloader is only used when expected diff --git a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/csi/AdvicesInvokeDynamicTest.groovy b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/csi/AdvicesInvokeDynamicTest.groovy index 730dc0958da..d2d78349b2d 100644 --- a/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/csi/AdvicesInvokeDynamicTest.groovy +++ b/dd-java-agent/agent-tooling/src/test/groovy/datadog/trace/agent/tooling/csi/AdvicesInvokeDynamicTest.groovy @@ -10,7 +10,7 @@ import spock.lang.Requires }) class AdvicesInvokeDynamicTest extends BaseCallSiteTest { - void 'test constant pool introspector with invoke dynamic'() { + void 'test constant pool introspector with invoke dynamic #pointcutName'() { setup: final type = new TypeDescription.ForLoadedType(StringPlusExample) final advice = Stub(InvokeDynamicAdvice) @@ -29,9 +29,10 @@ class AdvicesInvokeDynamicTest extends BaseCallSiteTest { pointcutMock | emptyAdvices | adviceFound stringConcatPointcut() | true | false stringConcatFactoryPointcut() | false | true + pointcutName = pointcutMock.descriptor } - void 'test constant pool introspector with invoke dynamic and constants'() { + void 'test constant pool introspector with invoke dynamic and constants #pointcutName'() { setup: final type = new TypeDescription.ForLoadedType(StringPlusConstantsExample) final advice = Stub(InvokeDynamicAdvice) @@ -50,5 +51,6 @@ class AdvicesInvokeDynamicTest extends BaseCallSiteTest { pointcutMock | emptyAdvices | adviceFound stringConcatPointcut() | true | false stringConcatFactoryPointcut() | false | true + pointcutName = pointcutMock.descriptor } } diff --git a/dd-java-agent/appsec/src/test/groovy/com/datadog/appsec/powerwaf/DataBundleMapWrapperSpecification.groovy b/dd-java-agent/appsec/src/test/groovy/com/datadog/appsec/powerwaf/DataBundleMapWrapperSpecification.groovy index b71933b8440..4e82eb04c47 100644 --- a/dd-java-agent/appsec/src/test/groovy/com/datadog/appsec/powerwaf/DataBundleMapWrapperSpecification.groovy +++ b/dd-java-agent/appsec/src/test/groovy/com/datadog/appsec/powerwaf/DataBundleMapWrapperSpecification.groovy @@ -25,7 +25,7 @@ class DataBundleMapWrapperSpecification extends DDSpecification { def elem expect: - iter.hasNext() == true + iter.hasNext() when: elem = iter.next() @@ -46,7 +46,7 @@ class DataBundleMapWrapperSpecification extends DDSpecification { then: elem.key == KnownAddresses.REQUEST_CLIENT_IP.key elem.value == [:] - iter.hasNext() == false + !iter.hasNext() when: iter.remove() @@ -71,7 +71,7 @@ class DataBundleMapWrapperSpecification extends DDSpecification { thrown(UnsupportedOperationException) } - void 'methods other than entrySet and size are not supported'() { + void 'methods other than entrySet and size are not supported: #methodName'() { when: method(mapWrapper) @@ -79,17 +79,16 @@ class DataBundleMapWrapperSpecification extends DDSpecification { thrown(UnsupportedOperationException) where: - method << [ - { it.values() }, - { it.keySet() }, - { it.clear() }, - { it.putAll([:]) }, - { it.remove('a') }, - { it.put('b', 'a') }, - { it.get('a') }, - { it.containsValue('b') }, - { it.containsKey('a') }, - { it.isEmpty() }, - ] + methodName | method + "values" | { it.values() } + "keySet" | { it.keySet() } + "clean" | { it.clear() } + "putAll" | { it.putAll([:]) } + "remove" | { it.remove('a') } + "put" | { it.put('b', 'a') } + "get" | { it.get('a') } + "containsValue" | { it.containsValue('b') } + "containsKey" | { it.containsKey('a') } + "empty" | { it.isEmpty() } } } diff --git a/dd-java-agent/instrumentation/jakarta-rs-annotations-3/src/test/groovy/JakartaRsAnnotations3InstrumentationTest.groovy b/dd-java-agent/instrumentation/jakarta-rs-annotations-3/src/test/groovy/JakartaRsAnnotations3InstrumentationTest.groovy index b5d102a8abb..2e866d9e204 100644 --- a/dd-java-agent/instrumentation/jakarta-rs-annotations-3/src/test/groovy/JakartaRsAnnotations3InstrumentationTest.groovy +++ b/dd-java-agent/instrumentation/jakarta-rs-annotations-3/src/test/groovy/JakartaRsAnnotations3InstrumentationTest.groovy @@ -141,6 +141,10 @@ class JakartaRsAnnotations3InstrumentationTest extends AgentTestRunner { def "no annotations has no effect"() { setup: + def obj = new Jakarta() { + void call() { + } + } runUnderTrace("test") { obj.call() } @@ -157,13 +161,6 @@ class JakartaRsAnnotations3InstrumentationTest extends AgentTestRunner { } } } - - where: - obj | _ - new Jakarta() { - void call() { - } - } | _ } interface Jakarta { diff --git a/dd-java-agent/instrumentation/java-concurrent/src/test/groovy/CrossedContextTest.groovy b/dd-java-agent/instrumentation/java-concurrent/src/test/groovy/CrossedContextTest.groovy index b9496f952b3..ba9cba5a036 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/test/groovy/CrossedContextTest.groovy +++ b/dd-java-agent/instrumentation/java-concurrent/src/test/groovy/CrossedContextTest.groovy @@ -42,7 +42,7 @@ class CrossedContextTest extends AgentTestRunner { pool.shutdownNow() } - def "concurrent #action are traced with correct lineage in #executor"() { + def "concurrent #action are traced with correct lineage in #executor.class.name"() { when: def sut = executor def fn = function @@ -102,7 +102,7 @@ class CrossedContextTest extends AgentTestRunner { new org.apache.tomcat.util.threads.ThreadPoolExecutor(1, 1, 5, TimeUnit.SECONDS, new TaskQueue()) | "execution" | executeRunnable } - def "netty event loop internal executions in #executor are traced with correct lineage" () { + def "netty event loop internal executions in #executor.class.name are traced with correct lineage" () { setup: ExecutorService pool = executor when: diff --git a/dd-java-agent/instrumentation/java-concurrent/src/test/groovy/TaskUnwrappingForkedTest.groovy b/dd-java-agent/instrumentation/java-concurrent/src/test/groovy/TaskUnwrappingForkedTest.groovy index 04073df1d0c..9be6c3ea83e 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/test/groovy/TaskUnwrappingForkedTest.groovy +++ b/dd-java-agent/instrumentation/java-concurrent/src/test/groovy/TaskUnwrappingForkedTest.groovy @@ -14,7 +14,7 @@ class TaskUnwrappingForkedTest extends AgentTestRunner { super.configurePreAgent() } - def "check expected types instrumented and can be unwrapped"() { + def "check expected types instrumented and can be unwrapped (#iterationIndex)"() { expect: task instanceof TaskWrapper type.isAssignableFrom(TaskWrapper.getUnwrappedType(task)) diff --git a/dd-java-agent/instrumentation/java-concurrent/src/test/groovy/executor/RecursiveThreadPoolPropagationTest.groovy b/dd-java-agent/instrumentation/java-concurrent/src/test/groovy/executor/RecursiveThreadPoolPropagationTest.groovy index 090f7d01575..c13fd353f1b 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/test/groovy/executor/RecursiveThreadPoolPropagationTest.groovy +++ b/dd-java-agent/instrumentation/java-concurrent/src/test/groovy/executor/RecursiveThreadPoolPropagationTest.groovy @@ -20,7 +20,7 @@ class RecursiveThreadPoolPropagationTest extends AgentTestRunner { @Shared def mixedSubmissionAndExecution = { executor, depth -> executor.submit(new RecursiveThreadPoolMixedSubmissionAndExecution(executor, depth, 0)) } - def "propagate context in #executor with #parallelism threads #depth times"() { + def "propagate context in #executor.class.name with #parallelism threads #depth times"() { when: test(executor, depth) then: diff --git a/dd-java-agent/instrumentation/java-util/src/test/groovy/datadog/trace/instrumentation/java/util/concurrent/ThreadLocalRandomCallSiteTest.groovy b/dd-java-agent/instrumentation/java-util/src/test/groovy/datadog/trace/instrumentation/java/util/concurrent/ThreadLocalRandomCallSiteTest.groovy index f0bb709a174..4855a949f25 100644 --- a/dd-java-agent/instrumentation/java-util/src/test/groovy/datadog/trace/instrumentation/java/util/concurrent/ThreadLocalRandomCallSiteTest.groovy +++ b/dd-java-agent/instrumentation/java-util/src/test/groovy/datadog/trace/instrumentation/java/util/concurrent/ThreadLocalRandomCallSiteTest.groovy @@ -14,7 +14,7 @@ class ThreadLocalRandomCallSiteTest extends AgentTestRunner { injectSysConfig('dd.iast.enabled', 'true') } - void 'test #target.#method methods'() { + void 'test #target.class.name #method methods'() { setup: final module = Mock(WeakRandomnessModule) InstrumentationBridge.registerIastModule(module) diff --git a/dd-java-agent/instrumentation/jax-rs-annotations-1/src/test/groovy/JaxRsAnnotations1InstrumentationTest.groovy b/dd-java-agent/instrumentation/jax-rs-annotations-1/src/test/groovy/JaxRsAnnotations1InstrumentationTest.groovy index 84df3c80f8a..30854a300f2 100644 --- a/dd-java-agent/instrumentation/jax-rs-annotations-1/src/test/groovy/JaxRsAnnotations1InstrumentationTest.groovy +++ b/dd-java-agent/instrumentation/jax-rs-annotations-1/src/test/groovy/JaxRsAnnotations1InstrumentationTest.groovy @@ -141,6 +141,10 @@ class JaxRsAnnotations1InstrumentationTest extends AgentTestRunner { def "no annotations has no effect"() { setup: + def obj = new Jax() { + void call() { + } + } runUnderTrace("test") { obj.call() } @@ -157,13 +161,6 @@ class JaxRsAnnotations1InstrumentationTest extends AgentTestRunner { } } } - - where: - obj | _ - new Jax() { - void call() { - } - } | _ } interface Jax { diff --git a/dd-java-agent/instrumentation/jax-rs-annotations-2/src/test/groovy/JaxRsAnnotations2InstrumentationTest.groovy b/dd-java-agent/instrumentation/jax-rs-annotations-2/src/test/groovy/JaxRsAnnotations2InstrumentationTest.groovy index ab9ec615b97..e51d641b356 100644 --- a/dd-java-agent/instrumentation/jax-rs-annotations-2/src/test/groovy/JaxRsAnnotations2InstrumentationTest.groovy +++ b/dd-java-agent/instrumentation/jax-rs-annotations-2/src/test/groovy/JaxRsAnnotations2InstrumentationTest.groovy @@ -141,6 +141,10 @@ class JaxRsAnnotations2InstrumentationTest extends AgentTestRunner { def "no annotations has no effect"() { setup: + def obj = new Jax() { + void call() { + } + } runUnderTrace("test") { obj.call() } @@ -157,13 +161,6 @@ class JaxRsAnnotations2InstrumentationTest extends AgentTestRunner { } } } - - where: - obj | _ - new Jax() { - void call() { - } - } | _ } interface Jax { diff --git a/dd-java-agent/instrumentation/kotlin-coroutines/coroutines-1.3/src/test/groovy/KotlinCoroutineInstrumentationTest.groovy b/dd-java-agent/instrumentation/kotlin-coroutines/coroutines-1.3/src/test/groovy/KotlinCoroutineInstrumentationTest.groovy index 084cba7c641..95403c64a06 100644 --- a/dd-java-agent/instrumentation/kotlin-coroutines/coroutines-1.3/src/test/groovy/KotlinCoroutineInstrumentationTest.groovy +++ b/dd-java-agent/instrumentation/kotlin-coroutines/coroutines-1.3/src/test/groovy/KotlinCoroutineInstrumentationTest.groovy @@ -9,7 +9,7 @@ class KotlinCoroutineInstrumentationTest extends AbstractKotlinCoroutineInstrume return new KotlinCoroutineTests(dispatcher) } - def "kotlin traced across channels"() { + def "kotlin traced across channels #dispatcherName"() { setup: KotlinCoroutineTests kotlinTest = new KotlinCoroutineTests(dispatcher) int expectedNumberOfSpans = kotlinTest.tracedAcrossChannels() @@ -23,6 +23,6 @@ class KotlinCoroutineInstrumentationTest extends AbstractKotlinCoroutineInstrume findSpan(trace, "consume_2").context().getParentId() == trace[0].context().getSpanId() where: - dispatcher << AbstractKotlinCoroutineInstrumentationTest.dispatchersToTest + [dispatcherName, dispatcher] << dispatchersToTest } } diff --git a/dd-java-agent/instrumentation/kotlin-coroutines/coroutines-1.5/src/test/groovy/KotlinCoroutineInstrumentationTest.groovy b/dd-java-agent/instrumentation/kotlin-coroutines/coroutines-1.5/src/test/groovy/KotlinCoroutineInstrumentationTest.groovy index ce5a475c657..b0d794cbbcc 100644 --- a/dd-java-agent/instrumentation/kotlin-coroutines/coroutines-1.5/src/test/groovy/KotlinCoroutineInstrumentationTest.groovy +++ b/dd-java-agent/instrumentation/kotlin-coroutines/coroutines-1.5/src/test/groovy/KotlinCoroutineInstrumentationTest.groovy @@ -9,7 +9,7 @@ class KotlinCoroutineInstrumentationTest extends AbstractKotlinCoroutineInstrume return new KotlinCoroutineTests(dispatcher) } - def "kotlin traced across flows"() { + def "kotlin traced across flows #dispatcherName"() { setup: KotlinCoroutineTests kotlinTest = new KotlinCoroutineTests(dispatcher) int expectedNumberOfSpans = kotlinTest.tracedAcrossFlows(false) @@ -23,10 +23,10 @@ class KotlinCoroutineInstrumentationTest extends AbstractKotlinCoroutineInstrume findSpan(trace, "consume_2").context().getParentId() == trace[0].context().getSpanId() where: - dispatcher << AbstractKotlinCoroutineInstrumentationTest.dispatchersToTest + [dispatcherName, dispatcher] << dispatchersToTest } - def "kotlin traced across flows with modified context"() { + def "kotlin traced across flows with modified context #dispatcherName"() { setup: KotlinCoroutineTests kotlinTest = new KotlinCoroutineTests(dispatcher) int expectedNumberOfSpans = kotlinTest.tracedAcrossFlows(true) @@ -40,6 +40,6 @@ class KotlinCoroutineInstrumentationTest extends AbstractKotlinCoroutineInstrume findSpan(trace, "consume_2").context().getParentId() == trace[0].context().getSpanId() where: - dispatcher << AbstractKotlinCoroutineInstrumentationTest.dispatchersToTest + [dispatcherName, dispatcher] << dispatchersToTest } } diff --git a/dd-java-agent/instrumentation/kotlin-coroutines/src/testFixtures/groovy/datadog/trace/instrumentation/kotlin/coroutines/AbstractKotlinCoroutineInstrumentationTest.groovy b/dd-java-agent/instrumentation/kotlin-coroutines/src/testFixtures/groovy/datadog/trace/instrumentation/kotlin/coroutines/AbstractKotlinCoroutineInstrumentationTest.groovy index b1dbbe2b504..b92c714a8aa 100644 --- a/dd-java-agent/instrumentation/kotlin-coroutines/src/testFixtures/groovy/datadog/trace/instrumentation/kotlin/coroutines/AbstractKotlinCoroutineInstrumentationTest.groovy +++ b/dd-java-agent/instrumentation/kotlin-coroutines/src/testFixtures/groovy/datadog/trace/instrumentation/kotlin/coroutines/AbstractKotlinCoroutineInstrumentationTest.groovy @@ -13,11 +13,11 @@ abstract class AbstractKotlinCoroutineInstrumentationTest trace, String opName) { diff --git a/dd-java-agent/testing/src/test/groovy/context/FieldInjectionForkedTest.groovy b/dd-java-agent/testing/src/test/groovy/context/FieldInjectionForkedTest.groovy index e015514bcb6..67f1841d794 100644 --- a/dd-java-agent/testing/src/test/groovy/context/FieldInjectionForkedTest.groovy +++ b/dd-java-agent/testing/src/test/groovy/context/FieldInjectionForkedTest.groovy @@ -82,7 +82,7 @@ class FieldInjectionForkedTest extends AgentTestRunner { keyClassName = keyClass.getSimpleName() } - def "correct api usage stores state in map"() { + def "correct api usage stores state in map #instance1.class.name"() { when: instance1.incrementContextCount() @@ -96,7 +96,7 @@ class FieldInjectionForkedTest extends AgentTestRunner { new UntransformableKeyClass() | new UntransformableKeyClass() } - def "get/put test"() { + def "get/put test #instance1.class.name"() { when: instance1.putContextCount(10) instance1.putContextCount2(10) @@ -111,7 +111,7 @@ class FieldInjectionForkedTest extends AgentTestRunner { new UntransformableKeyClass() | _ } - def "serializability not impacted"() { + def "serializability not impacted #serializable"() { setup: assumeTrue(InstrumenterConfig.get().isSerialVersionUIDFieldInjection()) diff --git a/internal-api/src/test/groovy/datadog/trace/api/cache/FixedSizeCacheTest.groovy b/internal-api/src/test/groovy/datadog/trace/api/cache/FixedSizeCacheTest.groovy index 17bb4fd0c0c..25f681954bf 100644 --- a/internal-api/src/test/groovy/datadog/trace/api/cache/FixedSizeCacheTest.groovy +++ b/internal-api/src/test/groovy/datadog/trace/api/cache/FixedSizeCacheTest.groovy @@ -215,7 +215,7 @@ class FixedSizeCacheTest extends DDSpecification { null | null | ["one", "six", "ten"] | 3 } - def "should handle concurrent usage"() { + def "should handle concurrent usage #cacheType"() { setup: def numThreads = 5 def numInsertions = 100000 @@ -247,11 +247,22 @@ class FixedSizeCacheTest extends DDSpecification { conds.await(30.0) // the test is really fast locally, but I don't know how fast CI is where: - cacheImpl << [ - { capacity -> DDCaches.newFixedSizeCache(capacity) }, - { capacity -> DDCaches.newUnboundedCache(capacity) }, - { capacity -> - DDCaches.newFixedSizeWeightedCache(capacity, String.&length, 1000)} + [cacheType, cacheImpl] << [ + [ + 'fixed size', + { capacity -> + DDCaches.newFixedSizeCache(capacity) } + ], + [ + 'unbounded', + { capacity -> + DDCaches.newUnboundedCache(capacity) } + ], + [ + 'fixed size weighted', + { capacity -> + DDCaches.newFixedSizeWeightedCache(capacity, String.&length, 1000)} + ] ] } diff --git a/internal-api/src/test/groovy/datadog/trace/api/iast/secrets/HardcodedSecretMatcherTest.groovy b/internal-api/src/test/groovy/datadog/trace/api/iast/secrets/HardcodedSecretMatcherTest.groovy index c1bfc8e650e..246e5ea2ccc 100644 --- a/internal-api/src/test/groovy/datadog/trace/api/iast/secrets/HardcodedSecretMatcherTest.groovy +++ b/internal-api/src/test/groovy/datadog/trace/api/iast/secrets/HardcodedSecretMatcherTest.groovy @@ -6,7 +6,7 @@ import static datadog.trace.api.iast.secrets.HardcodedSecretMatcher.* class HardcodedSecretMatcherTest extends Specification { - void 'test matchers' (){ + void 'test matchers #matcherName' (){ //fake secret split in sampleFirst10 and sampleRest to avoid the secret to be detected by github secret scanner @@ -17,68 +17,68 @@ class HardcodedSecretMatcherTest extends Specification { matches where: - matcher | sampleRest | sampleFirst10 - ADOBE_CLIENT_SECRET | '7a35f0AF375A183d8dAF49C3C4' | 'p8e-ea4523' - AGE_SECRET_KEY | '-KEY-1QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ' | 'AGE-SECRET' - ALIBABA_ACCESS_KEY_ID | 's8bp3u203bqrmh' | 'LTAItg369c' - AUTHRESS_SERVICE_CLIENT_ACCESS_KEY | 'ssm6idmao8bg4cwog8o.0ly2k1.acc_gj4od-aqtd8myn4wtqfn21s4ur.4i7xysqh4xw_h70emkz3m/3hofr_r5a8zxkj2vn+lhdb=u=ve0hx_5e8t0isbs5-x3m' | 'sc_n69s5dr' - AWS_ACCESS_TOKEN | '4GMGU8S9KF' | 'A3T56TANU5' - CLOJARS_API_TOKEN | 'djdlux73zfvhxl3eppl3wgvqbo6qt7w1f4zh59q4qijcmzp680q6q6w6yx' | 'CLOJARS_0i' - DATABRICKS_API_TOKEN | '7b633eh90gh81cg9a0604fed61' | 'dapic50e61' - DIGITALOCEAN_ACCESS_TOKEN | 'ee3c62c8d6a7c8adc3a5f92af8fe48fd78b152ced62fecfd455013bf6277d' | 'doo_v1_1e0' - DIGITALOCEAN_PAT | '9912143ef1a992d9c28c691f72737ba540f01935f5bf06e596056cfa1c597' | 'dop_v1_5fb' - DIGITALOCEAN_REFRESH_TOKEN | '6ad632305130d6d3b39d96e764c5fbf2d71cb1bcb95b19364ebeec1a60a80' | 'dor_v1_df1' - DOPPLER_API_TOKEN | 'gljbrvs2dabfm2dlca8cibnqoyqh1g4d9p2ktv3' | 'dp.pt.eweb' - DUFFEL_API_TOKEN | 't_3tcs-ydi5d6d0b5f_5z5flb_h-g9=54sirn3=9t4xiq' | 'duffel_tes' - DYNATRACE_API_TOKEN | '5wrlo9pn95hhurlod3puc.4qi65si4ye41ko4t27qawulaz5fxpnxlim1acse6fegdn2g7utbsec6kfig9nuok' | 'dt0c01.d5k' - EASYPOST_API_TOKEN | 'k3t5rniw7zid6mfgfqr54lfsuz6w4jik0c0yuho66vjjfrs7' | 'EZAKtt7w3r' - FLUTTERWAVE_PUBLIC_KEY | 'ST-gg0c9393af6025309g72039a29ea7gbd-X' | 'FLWPUBK_TE' - FRAMEIO_API_TOKEN | 'f4q4bv9yql6x5hf0n52prw=o95zixujk325vp5rccqfzqqch_uxu4tlv5c7i' | 'fio-u-nt83' - GCP_API_KEY | '5PbHXOgK1RKzVlTG5xkUHRFlMyDAO' | 'AIzai1v3as' - GITHUB_APP_TOKEN | 'aIlk2UMGTkC9WCDlpe9AjRNZa1WZQW' | 'ghu_39GyMb' - GITHUB_FINE_GRAINED_PAT | '_VMGTQQzm696ggAKIXshhL_jEykw_CeFYMZtINz78MKuw2zE0rO_bTrnVt1lvkALTv8ui61Wok9w0wOBZHw' | 'github_pat' - GITHUB_OAUTH | 'yfKdBNbYB0U5lTpRBQJVmoErmOO1WE' | 'gho_Odt4lB' - GITHUB_PAT | 'nf597ah8u5ntrqWYk5AE9PUzavWCaI' | 'ghp_fBQzYM' - GITLAB_PAT | 'WGJzpjOj1VD8ddYr' | 'glpat-bwYP' - GITLAB_RRT | 'VvT-h2LnhGdYufAuClu' | 'GR1348941E' - GRAFANA_API_KEY | 'VlNRzi0i6l0qAIr1rBbVdxHK8xtbvPpuaIIQv9MLfsslGxObwsncb1RieDSByZwr6GP19aGryQzuFfELjSoClNSj1jvsqKWF5ApAhWbVm6nLBgd88HcgvtFtxqAaoYAn3tyEzEnN1SapjHhUGxtjs0UL46M1VBrN5ARRrZJ4dPocTaJqIqT1pb4DYnJ31w1zlMtjzPmrnyFdL22ewfspszieFO3EPPDrYz1Grk12DlN0Vb1gupHVDLHvoOdkWhbYvYFWAwwLozlGlsJnXWUkIrnMrFcdGRgfKzF6Weg825rNkBK6F0NAN0QDv2p5UTFXTF5wmMQ20WrMAZmp5fXQEfSTiCLdzknjzT3eFXT2jUK==' | 'eyJrIjoiMu' - GRAFANA_CLOUD_API_TOKEN | '0UzznOlByCQtIXsgHljMgruVbKf/1N2l0pAAFseJv3==' | 'glc_WR//07' - GRAFANA_SERVICE_ACCOUNT_TOKEN | 'YbmaIkcWctkLkLo3dWqaaHYbn3b_aD529BdD' | 'glsa_BqWzJ' - HASHICORP_TF_API_TOKEN | 'djit.atlasv1.0q1lbg4jfbcm9-hu2u0jsk4ed=l_0ngbxs_wngdbrylwk1tis0o2vm7qyxhc85v' | 'i5pwlaofyh' - JWT | 'AOW18m0zEfEa.eyBFsOK9V_cjQeFUo_do3FZu6H-CBXYK.uI1CJC0BRDMzHjYFFO=' | 'ey1bSB8MlJ' - LINEAR_API_KEY | '6hbqr9ghnpgv34moysa804csbt3aiu8ezhq66h' | 'lin_api_h7' - NPM_ACCESS_TOKEN | 'txtu0e03jgbfto7gf82qc6voqsq9m2' | 'npm_xf1k0e' - OPENAI_API_KEY | 'ECosBbzUvXKE9T3BlbkFJEqeNdignOTCDnDZl2d3R' | 'sk-ItwG2qC' - PLANETSCALE_API_TOKEN | '_59.j4niv2=s5d6a49ku9=a.1oa_i6hjm5uel=l8_eymq3' | 'pscale_tkn' - PLANETSCALE_OAUTH_TOKEN | 'th_cxbirnget59m93o.3u0g.w127yqv5m1w_0_phx49f1anpypexe853x' | 'pscale_oau' - PLANETSCALE_PASSWORD | 'nj4rx.2g0q86hcbl96fok5u7.6==g=uylmfbmhsfpb.my0a' | 'pscale_pw_' - PREFECT_API_TOKEN | '9klt8733s80dj9b9mmz442tt64clk3' | 'pnu_xyy0hr' - PRIVATE_KEY | 'SDC5BPRIVATE KEY------- -KEY----' | '-----BEGIN' - PYPI_UPLOAD_TOKEN | 'HlwaS5vcmc-5ntvFVbG5vofVEq8FJMbR9unZJkZFcbrDXIv6bpcN_9w5L9kZtnA' | 'pypi-AgEIc' - README_API_TOKEN | 'm71aaql8q977bxr1ij98zhgaan3o5hxh43dzyg9sp809wqy8sbwp77ne11axw6cil' | 'rdme_4z76d' - RUBYGEMS_API_TOKEN | 'd36bae1261df247873de80998cf728148010593c1044201' | 'rubygems_b' - SCALINGO_API_TOKEN | 'fElYN1l2-N-3_HDknDl5af0FZtzFTwgIQ2LBmRX4WUk0' | 'tk-us-X_nP' - SENDGRID_API_TOKEN | '6mza01.mr1fzurif_b-v1mfk=acb0ovqx63oiw5u2srcxvl.wud=njyugod' | 'SG.4zb_m4m' - SENDINBLUE_API_TOKEN | '4bc5a5578fd17d7b4f5b1ce3afddc71c76608713e535480f4b559311624522-d6evcprg45e21vu8' | 'xkeysib-49' - SHIPPO_API_TOKEN | 'e_872bc6ceef3fc6b6a172ef8c8777648d3264938c' | 'shippo_liv' - SHOPIFY_ACCESS_TOKEN | '180a41fb8DaeEc5cd1c03fCC3A3E' | 'shpat_d042' - SHOPIFY_CUSTOM_ACCESS_TOKEN | 'Db0D9Cb8e1243E8f89FEe9CFeBD7' | 'shpca_Fb9a' - SHOPIFY_PRIVATE_APP_ACCESS_TOKEN | 'daae3efa1F142964eE00F5E3af18' | 'shppa_2DBa' - SHOPIFY_SHARED_SECRET | 'Ee1f50D1f05c3Faac2ef0b588bba' | 'shpss_4495' - SLACK_APP_TOKEN | '8-9-3m4nq' | 'xapp-0-8OF' - SLACK_BOT_TOKEN | '54902-2464785361518HyHvkBIs' | 'xoxb-15227' - SLACK_CONFIG_ACCESS_TOKEN | '6-ADPTFBG55CX85BUF049LCDMPWLWY1GPFZM0FB06X2TK6O9D12ZWV7KY60A73PRDZXSITKODA8LTT2QBWH46CT3HOY3OB2DIKPVI60UQNVWXV1EDK8LVUVBF3K45Q9CH4DIDHHF5XOSR7FWXT0ECRRXYOPPV6Y9NTO2SSB' | 'xoxe.xoxb-' - SLACK_CONFIG_REFRESH_TOKEN | 'Y1CH1SXAGCSPRP4J2SV769RZTX337K6RXAE904ZRKNZVODIB0A959CFYJNYDZ4C5GB2RK5S83EWSK6KPP2C7KBSU4QZNFV1QL3PNL105RAB5QWNNCJY71EUFSHX4FF2HMFHQR7DYBGQJ9XE' | 'xoxe-7-U9C' - SLACK_LEGACY_BOT_TOKEN | '8612-0hg3TuoZGrz43jja3JPs' | 'xoxb-03399' - SLACK_LEGACY_TOKEN | '-9-BFa' | 'xoxo-919-6' - SLACK_LEGACY_WORKSPACE_TOKEN | 'QSjus3e' | 'xoxa-8-rLN' - SLACK_USER_TOKEN | '81272010-2723063352185-7296143369223-fDEmEz6Us9YZMb5SsErsEIuBbMI3evfVpD' | 'xoxp-34943' - SLACK_WEBHOOK_URL | 'oks.slack.com/services/XssFMcvHiQCwOpnXsIajWjSGG65BipsmGAadvDjcNA9rEN' | 'https://ho' - SQUARE_ACCESS_TOKEN | '46fYcoNy8f989Ena4Ch' | 'sq0atp-uVR' - SQUARE_SECRET | 'x2id4UZI5swWWOMU582lpMUOOIa04CHr40jWwAIT' | 'sq0csp-c06' - STRIPE_ACCESS_TOKEN | 'a8p96ppl3k9akka8sxj7w' | 'sk_test_c1' - TWILIO_API_KEY | '7AFB6C77dFFF4fEE0b2E24bf' | 'SKDE6fDCca' - VAULT_BATCH_TOKEN | 'mdhtm-0wj0d5i3qj2pv2fzyl81y2qz28llp6mdzk3dg5ien2t6w0p4qzq7wxn9gv9gt8ow9z1l_bs5c4o7jwdcst71pqsb959x7bwqo889_d6ohx54jr0wr7zabygsg0oee79ah9smzgdpyst3xz4rfnfaowp11p2k11km04wl_n9l4knufp7s79-328yxu3wjq408ihd4' | 'hvb.dmd-vw' - VAULT_SERVICE_TOKEN | '0nsywcmblez3j7raibo0n1ynfil_yr85zdkx1bm6zs53qpk4nygpejv_0fto2np6i6dgx6lg0ta677819tw-ks0qul9wu' | 'hvs.ypqt_8' + matcherName | matcher | sampleRest | sampleFirst10 + 'ADOBE_CLIENT_SECRET' | ADOBE_CLIENT_SECRET | '7a35f0AF375A183d8dAF49C3C4' | 'p8e-ea4523' + 'AGE_SECRET_KEY' | AGE_SECRET_KEY | '-KEY-1QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ' | 'AGE-SECRET' + 'ALIBABA_ACCESS_KEY_ID' | ALIBABA_ACCESS_KEY_ID | 's8bp3u203bqrmh' | 'LTAItg369c' + 'AUTHRESS_SERVICE_CLIENT_ACCESS_KEY' | AUTHRESS_SERVICE_CLIENT_ACCESS_KEY | 'ssm6idmao8bg4cwog8o.0ly2k1.acc_gj4od-aqtd8myn4wtqfn21s4ur.4i7xysqh4xw_h70emkz3m/3hofr_r5a8zxkj2vn+lhdb=u=ve0hx_5e8t0isbs5-x3m' | 'sc_n69s5dr' + 'AWS_ACCESS_TOKEN' | AWS_ACCESS_TOKEN | '4GMGU8S9KF' | 'A3T56TANU5' + 'CLOJARS_API_TOKEN' | CLOJARS_API_TOKEN | 'djdlux73zfvhxl3eppl3wgvqbo6qt7w1f4zh59q4qijcmzp680q6q6w6yx' | 'CLOJARS_0i' + 'DATABRICKS_API_TOKEN' | DATABRICKS_API_TOKEN | '7b633eh90gh81cg9a0604fed61' | 'dapic50e61' + 'DIGITALOCEAN_ACCESS_TOKEN' | DIGITALOCEAN_ACCESS_TOKEN | 'ee3c62c8d6a7c8adc3a5f92af8fe48fd78b152ced62fecfd455013bf6277d' | 'doo_v1_1e0' + 'DIGITALOCEAN_PAT' | DIGITALOCEAN_PAT | '9912143ef1a992d9c28c691f72737ba540f01935f5bf06e596056cfa1c597' | 'dop_v1_5fb' + 'DIGITALOCEAN_REFRESH_TOKEN' | DIGITALOCEAN_REFRESH_TOKEN | '6ad632305130d6d3b39d96e764c5fbf2d71cb1bcb95b19364ebeec1a60a80' | 'dor_v1_df1' + 'DOPPLER_API_TOKEN' | DOPPLER_API_TOKEN | 'gljbrvs2dabfm2dlca8cibnqoyqh1g4d9p2ktv3' | 'dp.pt.eweb' + 'DUFFEL_API_TOKEN' | DUFFEL_API_TOKEN | 't_3tcs-ydi5d6d0b5f_5z5flb_h-g9=54sirn3=9t4xiq' | 'duffel_tes' + 'DYNATRACE_API_TOKEN' | DYNATRACE_API_TOKEN | '5wrlo9pn95hhurlod3puc.4qi65si4ye41ko4t27qawulaz5fxpnxlim1acse6fegdn2g7utbsec6kfig9nuok' | 'dt0c01.d5k' + 'EASYPOST_API_TOKEN' | EASYPOST_API_TOKEN | 'k3t5rniw7zid6mfgfqr54lfsuz6w4jik0c0yuho66vjjfrs7' | 'EZAKtt7w3r' + 'FLUTTERWAVE_PUBLIC_KEY' | FLUTTERWAVE_PUBLIC_KEY | 'ST-gg0c9393af6025309g72039a29ea7gbd-X' | 'FLWPUBK_TE' + 'FRAMEIO_API_TOKEN' | FRAMEIO_API_TOKEN | 'f4q4bv9yql6x5hf0n52prw=o95zixujk325vp5rccqfzqqch_uxu4tlv5c7i' | 'fio-u-nt83' + 'GCP_API_KEY' | GCP_API_KEY | '5PbHXOgK1RKzVlTG5xkUHRFlMyDAO' | 'AIzai1v3as' + 'GITHUB_APP_TOKEN' | GITHUB_APP_TOKEN | 'aIlk2UMGTkC9WCDlpe9AjRNZa1WZQW' | 'ghu_39GyMb' + 'GITHUB_FINE_GRAINED_PAT' | GITHUB_FINE_GRAINED_PAT | '_VMGTQQzm696ggAKIXshhL_jEykw_CeFYMZtINz78MKuw2zE0rO_bTrnVt1lvkALTv8ui61Wok9w0wOBZHw' | 'github_pat' + 'GITHUB_OAUTH' | GITHUB_OAUTH | 'yfKdBNbYB0U5lTpRBQJVmoErmOO1WE' | 'gho_Odt4lB' + 'GITHUB_PAT' | GITHUB_PAT | 'nf597ah8u5ntrqWYk5AE9PUzavWCaI' | 'ghp_fBQzYM' + 'GITLAB_PAT' | GITLAB_PAT | 'WGJzpjOj1VD8ddYr' | 'glpat-bwYP' + 'GITLAB_RRT' | GITLAB_RRT | 'VvT-h2LnhGdYufAuClu' | 'GR1348941E' + 'GRAFANA_API_KEY' | GRAFANA_API_KEY | 'VlNRzi0i6l0qAIr1rBbVdxHK8xtbvPpuaIIQv9MLfsslGxObwsncb1RieDSByZwr6GP19aGryQzuFfELjSoClNSj1jvsqKWF5ApAhWbVm6nLBgd88HcgvtFtxqAaoYAn3tyEzEnN1SapjHhUGxtjs0UL46M1VBrN5ARRrZJ4dPocTaJqIqT1pb4DYnJ31w1zlMtjzPmrnyFdL22ewfspszieFO3EPPDrYz1Grk12DlN0Vb1gupHVDLHvoOdkWhbYvYFWAwwLozlGlsJnXWUkIrnMrFcdGRgfKzF6Weg825rNkBK6F0NAN0QDv2p5UTFXTF5wmMQ20WrMAZmp5fXQEfSTiCLdzknjzT3eFXT2jUK==' | 'eyJrIjoiMu' + 'GRAFANA_CLOUD_API_TOKEN' | GRAFANA_CLOUD_API_TOKEN | '0UzznOlByCQtIXsgHljMgruVbKf/1N2l0pAAFseJv3==' | 'glc_WR//07' + 'GRAFANA_SERVICE_ACCOUNT_TOKEN' | GRAFANA_SERVICE_ACCOUNT_TOKEN | 'YbmaIkcWctkLkLo3dWqaaHYbn3b_aD529BdD' | 'glsa_BqWzJ' + 'HASHICORP_TF_API_TOKEN' | HASHICORP_TF_API_TOKEN | 'djit.atlasv1.0q1lbg4jfbcm9-hu2u0jsk4ed=l_0ngbxs_wngdbrylwk1tis0o2vm7qyxhc85v' | 'i5pwlaofyh' + 'JWT' | JWT | 'AOW18m0zEfEa.eyBFsOK9V_cjQeFUo_do3FZu6H-CBXYK.uI1CJC0BRDMzHjYFFO=' | 'ey1bSB8MlJ' + 'LINEAR_API_KEY' | LINEAR_API_KEY | '6hbqr9ghnpgv34moysa804csbt3aiu8ezhq66h' | 'lin_api_h7' + 'NPM_ACCESS_TOKEN' | NPM_ACCESS_TOKEN | 'txtu0e03jgbfto7gf82qc6voqsq9m2' | 'npm_xf1k0e' + 'OPENAI_API_KEY' | OPENAI_API_KEY | 'ECosBbzUvXKE9T3BlbkFJEqeNdignOTCDnDZl2d3R' | 'sk-ItwG2qC' + 'PLANETSCALE_API_TOKEN' | PLANETSCALE_API_TOKEN | '_59.j4niv2=s5d6a49ku9=a.1oa_i6hjm5uel=l8_eymq3' | 'pscale_tkn' + 'PLANETSCALE_OAUTH_TOKEN' | PLANETSCALE_OAUTH_TOKEN | 'th_cxbirnget59m93o.3u0g.w127yqv5m1w_0_phx49f1anpypexe853x' | 'pscale_oau' + 'PLANETSCALE_PASSWORD' | PLANETSCALE_PASSWORD | 'nj4rx.2g0q86hcbl96fok5u7.6==g=uylmfbmhsfpb.my0a' | 'pscale_pw_' + 'PREFECT_API_TOKEN' | PREFECT_API_TOKEN | '9klt8733s80dj9b9mmz442tt64clk3' | 'pnu_xyy0hr' + 'PRIVATE_KEY' | PRIVATE_KEY | 'SDC5BPRIVATE KEY------- -KEY----' | '-----BEGIN' + 'PYPI_UPLOAD_TOKEN' | PYPI_UPLOAD_TOKEN | 'HlwaS5vcmc-5ntvFVbG5vofVEq8FJMbR9unZJkZFcbrDXIv6bpcN_9w5L9kZtnA' | 'pypi-AgEIc' + 'README_API_TOKEN' | README_API_TOKEN | 'm71aaql8q977bxr1ij98zhgaan3o5hxh43dzyg9sp809wqy8sbwp77ne11axw6cil' | 'rdme_4z76d' + 'RUBYGEMS_API_TOKEN' | RUBYGEMS_API_TOKEN | 'd36bae1261df247873de80998cf728148010593c1044201' | 'rubygems_b' + 'SCALINGO_API_TOKEN' | SCALINGO_API_TOKEN | 'fElYN1l2-N-3_HDknDl5af0FZtzFTwgIQ2LBmRX4WUk0' | 'tk-us-X_nP' + 'SENDGRID_API_TOKEN' | SENDGRID_API_TOKEN | '6mza01.mr1fzurif_b-v1mfk=acb0ovqx63oiw5u2srcxvl.wud=njyugod' | 'SG.4zb_m4m' + 'SENDINBLUE_API_TOKEN' | SENDINBLUE_API_TOKEN | '4bc5a5578fd17d7b4f5b1ce3afddc71c76608713e535480f4b559311624522-d6evcprg45e21vu8' | 'xkeysib-49' + 'SHIPPO_API_TOKEN' | SHIPPO_API_TOKEN | 'e_872bc6ceef3fc6b6a172ef8c8777648d3264938c' | 'shippo_liv' + 'SHOPIFY_ACCESS_TOKEN' | SHOPIFY_ACCESS_TOKEN | '180a41fb8DaeEc5cd1c03fCC3A3E' | 'shpat_d042' + 'SHOPIFY_CUSTOM_ACCESS_TOKEN' | SHOPIFY_CUSTOM_ACCESS_TOKEN | 'Db0D9Cb8e1243E8f89FEe9CFeBD7' | 'shpca_Fb9a' + 'SHOPIFY_PRIVATE_APP_ACCESS_TOKEN' | SHOPIFY_PRIVATE_APP_ACCESS_TOKEN | 'daae3efa1F142964eE00F5E3af18' | 'shppa_2DBa' + 'SHOPIFY_SHARED_SECRET' | SHOPIFY_SHARED_SECRET | 'Ee1f50D1f05c3Faac2ef0b588bba' | 'shpss_4495' + 'SLACK_APP_TOKEN' | SLACK_APP_TOKEN | '8-9-3m4nq' | 'xapp-0-8OF' + 'SLACK_BOT_TOKEN' | SLACK_BOT_TOKEN | '54902-2464785361518HyHvkBIs' | 'xoxb-15227' + 'SLACK_CONFIG_ACCESS_TOKEN' | SLACK_CONFIG_ACCESS_TOKEN | '6-ADPTFBG55CX85BUF049LCDMPWLWY1GPFZM0FB06X2TK6O9D12ZWV7KY60A73PRDZXSITKODA8LTT2QBWH46CT3HOY3OB2DIKPVI60UQNVWXV1EDK8LVUVBF3K45Q9CH4DIDHHF5XOSR7FWXT0ECRRXYOPPV6Y9NTO2SSB' | 'xoxe.xoxb-' + 'SLACK_CONFIG_REFRESH_TOKEN' | SLACK_CONFIG_REFRESH_TOKEN | 'Y1CH1SXAGCSPRP4J2SV769RZTX337K6RXAE904ZRKNZVODIB0A959CFYJNYDZ4C5GB2RK5S83EWSK6KPP2C7KBSU4QZNFV1QL3PNL105RAB5QWNNCJY71EUFSHX4FF2HMFHQR7DYBGQJ9XE' | 'xoxe-7-U9C' + 'SLACK_LEGACY_BOT_TOKEN' | SLACK_LEGACY_BOT_TOKEN | '8612-0hg3TuoZGrz43jja3JPs' | 'xoxb-03399' + 'SLACK_LEGACY_TOKEN' | SLACK_LEGACY_TOKEN | '-9-BFa' | 'xoxo-919-6' + 'SLACK_LEGACY_WORKSPACE_TOKEN' | SLACK_LEGACY_WORKSPACE_TOKEN | 'QSjus3e' | 'xoxa-8-rLN' + 'SLACK_USER_TOKEN' | SLACK_USER_TOKEN | '81272010-2723063352185-7296143369223-fDEmEz6Us9YZMb5SsErsEIuBbMI3evfVpD' | 'xoxp-34943' + 'SLACK_WEBHOOK_URL' | SLACK_WEBHOOK_URL | 'oks.slack.com/services/XssFMcvHiQCwOpnXsIajWjSGG65BipsmGAadvDjcNA9rEN' | 'https://ho' + 'SQUARE_ACCESS_TOKEN' | SQUARE_ACCESS_TOKEN | '46fYcoNy8f989Ena4Ch' | 'sq0atp-uVR' + 'SQUARE_SECRET' | SQUARE_SECRET | 'x2id4UZI5swWWOMU582lpMUOOIa04CHr40jWwAIT' | 'sq0csp-c06' + 'STRIPE_ACCESS_TOKEN' | STRIPE_ACCESS_TOKEN | 'a8p96ppl3k9akka8sxj7w' | 'sk_test_c1' + 'TWILIO_API_KEY' | TWILIO_API_KEY | '7AFB6C77dFFF4fEE0b2E24bf' | 'SKDE6fDCca' + 'VAULT_BATCH_TOKEN' | VAULT_BATCH_TOKEN | 'mdhtm-0wj0d5i3qj2pv2fzyl81y2qz28llp6mdzk3dg5ien2t6w0p4qzq7wxn9gv9gt8ow9z1l_bs5c4o7jwdcst71pqsb959x7bwqo889_d6ohx54jr0wr7zabygsg0oee79ah9smzgdpyst3xz4rfnfaowp11p2k11km04wl_n9l4knufp7s79-328yxu3wjq408ihd4' | 'hvb.dmd-vw' + 'VAULT_SERVICE_TOKEN' | VAULT_SERVICE_TOKEN | '0nsywcmblez3j7raibo0n1ynfil_yr85zdkx1bm6zs53qpk4nygpejv_0fto2np6i6dgx6lg0ta677819tw-ks0qul9wu' | 'hvs.ypqt_8' } }