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 f52d8a5419f..71e7ffd8c4a 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 @@ -5,15 +5,19 @@ import com.datadog.iast.model.Source import com.datadog.iast.model.Vulnerability import com.datadog.iast.model.VulnerabilityBatch import com.datadog.iast.model.VulnerabilityType -import com.squareup.moshi.* +import com.squareup.moshi.FromJson +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.Moshi +import com.squareup.moshi.ToJson +import com.squareup.moshi.Types import datadog.trace.api.config.IastConfig import datadog.trace.api.iast.SourceTypes -import static datadog.trace.api.iast.VulnerabilityMarks.NOT_MARKED import datadog.trace.test.util.DDSpecification import groovy.json.JsonOutput import groovy.json.JsonSlurper import groovy.yaml.YamlSlurper -import org.junit.Assume import org.skyscreamer.jsonassert.JSONAssert import org.skyscreamer.jsonassert.JSONCompareMode import spock.lang.Shared @@ -26,7 +30,8 @@ import java.util.regex.Pattern import static com.datadog.iast.model.json.EvidenceAdapter.RedactedValuePart import static com.datadog.iast.model.json.EvidenceAdapter.StringValuePart import static com.datadog.iast.model.json.EvidenceAdapter.TaintedValuePart - +import static datadog.trace.api.iast.VulnerabilityMarks.NOT_MARKED +import static org.junit.jupiter.api.Assumptions.assumeFalse class EvidenceRedactionTest extends DDSpecification { @@ -80,7 +85,7 @@ class EvidenceRedactionTest extends DDSpecification { void 'test #suite'() { given: - Assume.assumeFalse("Ignored test", suite.ignored) + assumeFalse(suite.ignored, "Ignored test") final type = suite.type == Type.SOURCES ? Types.newParameterizedType(List, Source) : VulnerabilityBatch final adapter = VulnerabilityEncoding.MOSHI.adapter(type) @@ -99,7 +104,7 @@ class EvidenceRedactionTest extends DDSpecification { void 'test secure_marks #suite'() { given: - Assume.assumeFalse("Ignored test", suite.ignored) + assumeFalse(suite.ignored, "Ignored test") final type = VulnerabilityBatch final adapter = VulnerabilityEncoding.MOSHI.adapter(type) 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 40788ecdc3b..fc375367bc3 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 @@ -12,11 +12,11 @@ import datadog.trace.api.iast.Taintable import datadog.trace.api.iast.VulnerabilityMarks import datadog.trace.api.iast.propagation.PropagationModule import datadog.trace.bootstrap.instrumentation.api.AgentTracer -import org.junit.Assume import spock.lang.Shared import java.lang.ref.Reference +import static org.junit.jupiter.api.Assumptions.assumeFalse import static com.datadog.iast.taint.Ranges.highestPriorityRange import static datadog.trace.api.iast.VulnerabilityMarks.NOT_MARKED @@ -271,7 +271,7 @@ class PropagationModuleTest extends IastModuleImplTestBase { void 'test taintIfTainted keeping ranges with a mark'() { given: def (type, target, input) = suite - Assume.assumeFalse(target instanceof Taintable) // taintable does not support multiple ranges or marks + assumeFalse(target instanceof Taintable) // taintable does not support multiple ranges or marks final method = "taint${type}IfTainted" final source = taintedSource() final ranges = [new Range(0, 1, source, NOT_MARKED), new Range(1, 1, source, NOT_MARKED)] as Range[] @@ -323,7 +323,7 @@ class PropagationModuleTest extends IastModuleImplTestBase { void 'test taintIfTainted not keeping ranges with a mark'() { given: def (type, target, input) = suite - Assume.assumeFalse(target instanceof Taintable) // taintable does not support marks + assumeFalse(target instanceof Taintable) // taintable does not support marks final method = "taint${type}IfTainted" final source = taintedSource() final ranges = [new Range(0, 1, source, NOT_MARKED), new Range(1, 1, source, NOT_MARKED)] as Range[] @@ -381,7 +381,7 @@ class PropagationModuleTest extends IastModuleImplTestBase { void 'test taintIfAnyTainted keeping ranges with a mark'() { given: def (type, target, input) = suite - Assume.assumeFalse(target instanceof Taintable) // taintable does not support multiple ranges or marks + assumeFalse(target instanceof Taintable) // taintable does not support multiple ranges or marks final method = "taint${type}IfAnyTainted" final inputs = ['test', input].toArray() final source = taintedSource() @@ -435,7 +435,7 @@ class PropagationModuleTest extends IastModuleImplTestBase { void 'test taintIfAnyTainted not keeping ranges with a mark'() { given: def (type, target, input) = suite - Assume.assumeFalse(target instanceof Taintable) // taintable does not support marks + assumeFalse(target instanceof Taintable) // taintable does not support marks final method = "taint${type}IfAnyTainted" final inputs = ['test', input].toArray() final source = taintedSource() diff --git a/dd-java-agent/appsec/src/testFixtures/groovy/com/datadog/appsec/AppSecInactiveHttpServerTest.groovy b/dd-java-agent/appsec/src/testFixtures/groovy/com/datadog/appsec/AppSecInactiveHttpServerTest.groovy index 08e186f3744..ed9c7fce43e 100644 --- a/dd-java-agent/appsec/src/testFixtures/groovy/com/datadog/appsec/AppSecInactiveHttpServerTest.groovy +++ b/dd-java-agent/appsec/src/testFixtures/groovy/com/datadog/appsec/AppSecInactiveHttpServerTest.groovy @@ -13,8 +13,16 @@ import okhttp3.FormBody import okhttp3.HttpUrl import okhttp3.MultipartBody import okhttp3.Request -import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.* -import static org.junit.Assume.assumeTrue + +import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.BODY_MULTIPART +import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.BODY_URLENCODED +import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.FORWARDED +import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.MATRIX_PARAM +import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.PATH_PARAM +import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.QUERY_PARAM +import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.REDIRECT +import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.SUCCESS +import static org.junit.jupiter.api.Assumptions.assumeTrue abstract class AppSecInactiveHttpServerTest extends WithHttpServer { diff --git a/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.0/src/baseTest/groovy/AkkaHttpServerInstrumentationTest.groovy b/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.0/src/baseTest/groovy/AkkaHttpServerInstrumentationTest.groovy index b49a9a2bfb7..d8562c5a113 100644 --- a/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.0/src/baseTest/groovy/AkkaHttpServerInstrumentationTest.groovy +++ b/dd-java-agent/instrumentation/akka/akka-http/akka-http-10.0/src/baseTest/groovy/AkkaHttpServerInstrumentationTest.groovy @@ -8,15 +8,14 @@ import okhttp3.MultipartBody import okhttp3.Request import okhttp3.RequestBody import okhttp3.Response +import spock.lang.IgnoreIf import spock.lang.Shared import java.util.concurrent.atomic.AtomicInteger -import static datadog.trace.agent.test.base.HttpServerTest.IG_ASK_FOR_RESPONSE_HEADER_TAGS_HEADER import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.BODY_JSON import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.BODY_MULTIPART import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.SUCCESS -import static org.junit.Assume.assumeTrue abstract class AkkaHttpServerInstrumentationTest extends HttpServerTest { @@ -119,9 +118,9 @@ abstract class AkkaHttpServerInstrumentationTest extends HttpServerTest { @Override @@ -117,9 +118,9 @@ abstract class AkkaHttpServerInstrumentationTest extends HttpServerTest { @@ -127,10 +126,9 @@ abstract class Liberty20Test extends HttpServerTest { true } + @IgnoreIf({ !instance.testBlockingOnResponse()}) def 'test blocking on response with commit during the response'() { setup: - assumeTrue(testBlockingOnResponse()) - def request = request(SUCCESS, 'GET', null) .header(IG_BLOCK_RESPONSE_HEADER, 'json') .header('x-commit-during-response', 'true') diff --git a/dd-java-agent/instrumentation/liberty-23/src/test/groovy/datadog/trace/instrumentation/liberty23/Liberty23Test.groovy b/dd-java-agent/instrumentation/liberty-23/src/test/groovy/datadog/trace/instrumentation/liberty23/Liberty23Test.groovy index 42c3372008f..661a2dc9ec9 100644 --- a/dd-java-agent/instrumentation/liberty-23/src/test/groovy/datadog/trace/instrumentation/liberty23/Liberty23Test.groovy +++ b/dd-java-agent/instrumentation/liberty-23/src/test/groovy/datadog/trace/instrumentation/liberty23/Liberty23Test.groovy @@ -9,7 +9,6 @@ import datadog.trace.core.DDSpan import spock.lang.IgnoreIf import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.SUCCESS -import static org.junit.Assume.assumeTrue abstract class Liberty23Test extends HttpServerTest { @@ -117,10 +116,9 @@ abstract class Liberty23Test extends HttpServerTest { true } + @IgnoreIf({ !instance.testBlockingOnResponse() }) def 'test blocking on response with commit during the response'() { setup: - assumeTrue(testBlockingOnResponse()) - def request = request(SUCCESS, 'GET', null) .header(IG_BLOCK_RESPONSE_HEADER, 'json') .header('x-commit-during-response', 'true') diff --git a/dd-java-agent/instrumentation/play-2.6/src/baseTest/groovy/datadog/trace/instrumentation/play26/server/PlayServerWithErrorHandlerTest.groovy b/dd-java-agent/instrumentation/play-2.6/src/baseTest/groovy/datadog/trace/instrumentation/play26/server/PlayServerWithErrorHandlerTest.groovy index 9d9c1bd99db..6221c5681ce 100644 --- a/dd-java-agent/instrumentation/play-2.6/src/baseTest/groovy/datadog/trace/instrumentation/play26/server/PlayServerWithErrorHandlerTest.groovy +++ b/dd-java-agent/instrumentation/play-2.6/src/baseTest/groovy/datadog/trace/instrumentation/play26/server/PlayServerWithErrorHandlerTest.groovy @@ -1,9 +1,9 @@ package datadog.trace.instrumentation.play26.server import datadog.trace.agent.test.base.HttpServer +import spock.lang.IgnoreIf import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.CUSTOM_EXCEPTION -import static org.junit.Assume.assumeTrue class PlayServerWithErrorHandlerTest extends PlayServerTest { @Override @@ -16,9 +16,9 @@ class PlayServerWithErrorHandlerTest extends PlayServerTest { true } + @IgnoreIf({ !instance.testException() }) def "test exception with custom status"() { setup: - assumeTrue(testException()) def request = request(CUSTOM_EXCEPTION, 'GET', null).build() def response = client.newCall(request).execute() diff --git a/dd-java-agent/instrumentation/scala-promise/src/test/groovy/ScalaUnitPromiseTestBase.groovy b/dd-java-agent/instrumentation/scala-promise/src/test/groovy/ScalaUnitPromiseTestBase.groovy index 737e900ed0a..f9fb584ea8e 100644 --- a/dd-java-agent/instrumentation/scala-promise/src/test/groovy/ScalaUnitPromiseTestBase.groovy +++ b/dd-java-agent/instrumentation/scala-promise/src/test/groovy/ScalaUnitPromiseTestBase.groovy @@ -1,11 +1,11 @@ import datadog.trace.agent.test.AgentTestRunner import datadog.trace.bootstrap.instrumentation.api.AgentSpan import scala.concurrent.ExecutionContext +import spock.lang.IgnoreIf import static datadog.trace.agent.test.utils.TraceUtils.basicSpan import static datadog.trace.agent.test.utils.TraceUtils.runUnderTrace import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan -import static org.junit.Assume.assumeTrue abstract class ScalaUnitPromiseTestBase extends AgentTestRunner { @@ -58,10 +58,8 @@ abstract class ScalaUnitPromiseTestBase extends AgentTestRunner { } abstract class ScalaUnitPromiseTestNoPropagation extends ScalaUnitPromiseTestBase { + @IgnoreIf({ !instance.hasUnitPromise() }) def "make sure that we don't propagate unit context"() { - setup: - assumeTrue(hasUnitPromise()) - when: def f1 = promiseUtils.apply({ runUnderTrace("f1") { @@ -103,10 +101,8 @@ abstract class ScalaUnitPromiseTestPropagation extends ScalaUnitPromiseTestBase injectSysConfig("dd.trace.integration.scala_future_object.enabled", "false") } + @IgnoreIf({ !instance.hasUnitPromise() }) def "make sure that without the unit context instrumentation we get a parent"() { - setup: - assumeTrue(hasUnitPromise()) - when: def f1 = promiseUtils.apply({ runUnderTrace("f1") { diff --git a/dd-java-agent/instrumentation/servlet/request-3/src/test/groovy/AbstractServlet3Test.groovy b/dd-java-agent/instrumentation/servlet/request-3/src/test/groovy/AbstractServlet3Test.groovy index 62213dfb27f..08fbc335650 100644 --- a/dd-java-agent/instrumentation/servlet/request-3/src/test/groovy/AbstractServlet3Test.groovy +++ b/dd-java-agent/instrumentation/servlet/request-3/src/test/groovy/AbstractServlet3Test.groovy @@ -6,6 +6,7 @@ import datadog.trace.api.DDTags import datadog.trace.bootstrap.instrumentation.api.Tags import okhttp3.Request import okhttp3.RequestBody +import spock.lang.IgnoreIf import javax.servlet.Servlet @@ -18,7 +19,6 @@ import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.REDIRE import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.SUCCESS import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.TIMEOUT_ERROR import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.UNKNOWN -import static org.junit.Assume.assumeTrue abstract class AbstractServlet3Test extends HttpServerTest implements TestingGenericHttpNamingConventions.ServerV0 { @Override @@ -139,9 +139,9 @@ abstract class AbstractServlet3Test extends HttpServerTest { - - @Override boolean hasExtraErrorInformation() { true @@ -165,9 +163,9 @@ class TomcatServletTest extends AbstractServletTest { WEBSOCKET.path).build()) } + @IgnoreIf({ !instance.testException() }) def "test exception with custom status"() { setup: - assumeTrue(testException()) def request = request(CUSTOM_EXCEPTION, method, body).build() def response = client.newCall(request).execute() diff --git a/dd-java-agent/instrumentation/tomcat-5.5/src/test/groovy/TomcatServletTest.groovy b/dd-java-agent/instrumentation/tomcat-5.5/src/test/groovy/TomcatServletTest.groovy index 78f020b6c6e..f0e5640fbd6 100644 --- a/dd-java-agent/instrumentation/tomcat-5.5/src/test/groovy/TomcatServletTest.groovy +++ b/dd-java-agent/instrumentation/tomcat-5.5/src/test/groovy/TomcatServletTest.groovy @@ -1,4 +1,5 @@ import datadog.trace.api.ProcessTags +import spock.lang.IgnoreIf import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.CUSTOM_EXCEPTION import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.ERROR @@ -7,7 +8,6 @@ import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.NOT_FO import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.REDIRECT import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.TIMEOUT_ERROR import static datadog.trace.api.config.GeneralConfig.EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED -import static org.junit.Assume.assumeTrue import com.google.common.io.Files import datadog.trace.agent.test.asserts.TraceAssert @@ -277,9 +277,9 @@ abstract class TomcatServletTest extends AbstractServletTest return { !bubblesResponse() || it == endpoint.status } } + @IgnoreIf({ !instance.testException() }) def "test exception with custom status"() { setup: - assumeTrue(testException()) def request = request(CUSTOM_EXCEPTION, method, body).build() def response = client.newCall(request).execute() diff --git a/dd-java-agent/instrumentation/tomcat-5.5/src/tomcat9Test/groovy/TomcatWebsocketTest.groovy b/dd-java-agent/instrumentation/tomcat-5.5/src/tomcat9Test/groovy/TomcatWebsocketTest.groovy index 9846d02df25..517a36f9711 100644 --- a/dd-java-agent/instrumentation/tomcat-5.5/src/tomcat9Test/groovy/TomcatWebsocketTest.groovy +++ b/dd-java-agent/instrumentation/tomcat-5.5/src/tomcat9Test/groovy/TomcatWebsocketTest.groovy @@ -1,3 +1,5 @@ +import spock.lang.IgnoreIf + import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.CUSTOM_EXCEPTION import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.ERROR import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.EXCEPTION @@ -7,7 +9,6 @@ import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.SUCCES import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.TIMEOUT_ERROR import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.UNKNOWN import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.WEBSOCKET -import static org.junit.Assume.assumeTrue import datadog.trace.agent.test.asserts.TraceAssert import datadog.trace.agent.test.base.HttpServer @@ -274,9 +275,9 @@ abstract class TomcatWebsocketTest extends HttpServerTest { context.addFilterMap(filterMap) } + @IgnoreIf({ !instance.testException() }) def "test exception with custom status"() { setup: - assumeTrue(testException()) def request = request(CUSTOM_EXCEPTION, method, body).build() def response = client.newCall(request).execute() diff --git a/dd-java-agent/instrumentation/vertx-web-3.4/src/test/groovy/core/CaseInsensitiveHeadersInstrumentationTest.groovy b/dd-java-agent/instrumentation/vertx-web-3.4/src/test/groovy/core/CaseInsensitiveHeadersInstrumentationTest.groovy index 6aa720abbd1..35b9414ff3e 100644 --- a/dd-java-agent/instrumentation/vertx-web-3.4/src/test/groovy/core/CaseInsensitiveHeadersInstrumentationTest.groovy +++ b/dd-java-agent/instrumentation/vertx-web-3.4/src/test/groovy/core/CaseInsensitiveHeadersInstrumentationTest.groovy @@ -10,7 +10,8 @@ import datadog.trace.bootstrap.instrumentation.api.TagContext import groovy.transform.CompileDynamic import io.vertx.core.MultiMap import io.vertx.core.http.CaseInsensitiveHeaders -import org.junit.Assume + +import static org.junit.jupiter.api.Assumptions.assumeTrue @CompileDynamic class CaseInsensitiveHeadersInstrumentationTest extends AgentTestRunner { @@ -88,7 +89,7 @@ class CaseInsensitiveHeadersInstrumentationTest extends AgentTestRunner { void 'test that entries() is instrumented'() { given: // latest versions of vertx 3.x define the entries in the MultiMap interface, so we will lose propagation - Assume.assumeTrue(hasMethod(CaseInsensitiveHeaders, 'entries')) + assumeTrue(hasMethod(CaseInsensitiveHeaders, 'entries')) final headers = new CaseInsensitiveHeaders() final module = Mock(PropagationModule) InstrumentationBridge.registerIastModule(module) @@ -127,7 +128,7 @@ class CaseInsensitiveHeadersInstrumentationTest extends AgentTestRunner { private static boolean hasMethod(final Class target, final String name, final Class...types) { try { target.getDeclaredMethod(name, types) != null - } catch (Throwable e) { + } catch (Throwable ignored) { return false } } diff --git a/dd-java-agent/instrumentation/vertx-web-3.4/src/test/groovy/core/HeadersAdaptorInstrumentationTest.groovy b/dd-java-agent/instrumentation/vertx-web-3.4/src/test/groovy/core/HeadersAdaptorInstrumentationTest.groovy index 7509ed00129..363aeae6878 100644 --- a/dd-java-agent/instrumentation/vertx-web-3.4/src/test/groovy/core/HeadersAdaptorInstrumentationTest.groovy +++ b/dd-java-agent/instrumentation/vertx-web-3.4/src/test/groovy/core/HeadersAdaptorInstrumentationTest.groovy @@ -13,7 +13,8 @@ import io.netty.handler.codec.http2.DefaultHttp2Headers import io.vertx.core.MultiMap import io.vertx.core.http.impl.HeadersAdaptor import io.vertx.core.http.impl.Http2HeadersAdaptor -import org.junit.Assume + +import static org.junit.jupiter.api.Assumptions.assumeTrue @CompileDynamic class HeadersAdaptorInstrumentationTest extends AgentTestRunner { @@ -103,7 +104,7 @@ class HeadersAdaptorInstrumentationTest extends AgentTestRunner { void 'test that #name entries() is instrumented'() { given: // latest versions of vertx 3.x define the entries in the MultiMap interface, so we will lose propagation - Assume.assumeTrue(hasMethod(headers.getClass(), 'entries')) + assumeTrue(hasMethod(headers.getClass(), 'entries')) final module = Mock(PropagationModule) InstrumentationBridge.registerIastModule(module) addAll([[key: 'value1'], [key: 'value2']], headers) @@ -146,7 +147,7 @@ class HeadersAdaptorInstrumentationTest extends AgentTestRunner { private static boolean hasMethod(final Class target, final String name, final Class... types) { try { target.getDeclaredMethod(name, types) != null - } catch (Throwable e) { + } catch (Throwable ignored) { return false } } diff --git a/dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/base/AbstractPromiseTest.groovy b/dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/base/AbstractPromiseTest.groovy index 1b142d6487f..9ccc61109f3 100644 --- a/dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/base/AbstractPromiseTest.groovy +++ b/dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/base/AbstractPromiseTest.groovy @@ -1,10 +1,10 @@ package datadog.trace.agent.test.base import datadog.trace.agent.test.AgentTestRunner +import spock.lang.IgnoreIf import static datadog.trace.agent.test.utils.TraceUtils.basicSpan import static datadog.trace.agent.test.utils.TraceUtils.runUnderTrace -import static org.junit.Assume.* // TODO: add a test for a longer chain of promises abstract class AbstractPromiseTest extends AgentTestRunner { @@ -146,9 +146,9 @@ abstract class AbstractPromiseTest extends AgentTestRunner { value << [true, false] } + @IgnoreIf({ !instance.picksUpCompletingScope() }) def "test call with no parent (completing scope)"() { setup: - assumeTrue(picksUpCompletingScope()) def promise = newPromise() when: diff --git a/dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/base/HttpClientTest.groovy b/dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/base/HttpClientTest.groovy index 5ef385bf1a9..3136a5aa5f6 100644 --- a/dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/base/HttpClientTest.groovy +++ b/dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/base/HttpClientTest.groovy @@ -13,6 +13,7 @@ import datadog.trace.core.DDSpan import datadog.trace.core.datastreams.StatsGroup import datadog.trace.test.util.Flaky import spock.lang.AutoCleanup +import spock.lang.IgnoreIf import spock.lang.Requires import spock.lang.Shared @@ -28,7 +29,6 @@ import static datadog.trace.api.config.TraceInstrumentationConfig.HTTP_CLIENT_TA import static datadog.trace.api.config.TracerConfig.HEADER_TAGS import static datadog.trace.api.config.TracerConfig.REQUEST_HEADER_TAGS import static datadog.trace.api.config.TracerConfig.RESPONSE_HEADER_TAGS -import static org.junit.Assume.assumeTrue abstract class HttpClientTest extends VersionedNamingTestBase { protected static final BODY_METHODS = ["POST", "PUT"] @@ -195,10 +195,8 @@ abstract class HttpClientTest extends VersionedNamingTestBase { // IBM JVM has different protocol support for TLS @Requires({ !System.getProperty("java.vm.name").contains("IBM J9 VM") }) + @IgnoreIf({ !instance.testSecure() }) def "basic secure #method request"() { - given: - assumeTrue(testSecure()) - when: def status = doRequest(method, url) if (isDataStreamsEnabled()) { @@ -233,10 +231,8 @@ abstract class HttpClientTest extends VersionedNamingTestBase { // IBM JVM has different protocol support for TLS @Requires({ !System.getProperty("java.vm.name").contains("IBM J9 VM") }) + @IgnoreIf({ !(instance.testSecure() && instance.testProxy()) }) def "secure #method proxied request"() { - given: - assumeTrue(testSecure() && testProxy()) - when: def status = runUnderTrace("parent") { doRequest(method, url, [:], body) @@ -451,10 +447,10 @@ abstract class HttpClientTest extends VersionedNamingTestBase { } @Flaky(value = 'Futures timed out after [1 second]', suites = ['PlayWSClientTest']) + @IgnoreIf({ !instance.testCallbackWithParent() }) def "trace request with callback and parent"() { given: def method = 'GET' - assumeTrue(testCallbackWithParent()) when: def status = runUnderTrace("parent") { @@ -540,12 +536,12 @@ abstract class HttpClientTest extends VersionedNamingTestBase { method = "GET" } + @IgnoreIf({ !instance.testRedirects() }) def "basic #method request with 1 redirect"() { // TODO quite a few clients create an extra span for the redirect // This test should handle both types or we should unify how the clients work given: - assumeTrue(testRedirects()) def uri = server.address.resolve("/redirect") when: @@ -576,9 +572,9 @@ abstract class HttpClientTest extends VersionedNamingTestBase { method = "GET" } + @IgnoreIf({ !instance.testRedirects() }) def "basic #method request with 2 redirects"() { given: - assumeTrue(testRedirects()) def uri = server.address.resolve("/another-redirect") when: @@ -610,9 +606,9 @@ abstract class HttpClientTest extends VersionedNamingTestBase { method = "GET" } + @IgnoreIf({ !(instance.testRedirects() && instance.testCircularRedirects()) }) def "basic #method request with circular redirects"() { given: - assumeTrue(testRedirects() && testCircularRedirects()) def uri = server.address.resolve("/circular-redirect") when: @@ -635,9 +631,9 @@ abstract class HttpClientTest extends VersionedNamingTestBase { method = "GET" } + @IgnoreIf({ !instance.testRedirects() }) def "redirect #method to secured endpoint copies auth header"() { given: - assumeTrue(testRedirects()) def uri = server.address.resolve("/to-secured") when: @@ -668,9 +664,9 @@ abstract class HttpClientTest extends VersionedNamingTestBase { method = "GET" } + @IgnoreIf({ !instance.testConnectionFailure() }) def "connection error (unopened port)"() { given: - assumeTrue(testConnectionFailure()) def uri = new URI("http://localhost:$UNUSABLE_PORT/") when: @@ -694,9 +690,9 @@ abstract class HttpClientTest extends VersionedNamingTestBase { method = "GET" } + @IgnoreIf({ !instance.testRemoteConnection() }) def "connection error non routable address"() { given: - assumeTrue(testRemoteConnection()) def uri = new URI("https://192.0.2.1/") when: @@ -721,9 +717,9 @@ abstract class HttpClientTest extends VersionedNamingTestBase { // IBM JVM has different protocol support for TLS @Requires({ !System.getProperty("java.vm.name").contains("IBM J9 VM") }) + @IgnoreIf({ !instance.testRemoteConnection() }) def "test https request"() { given: - assumeTrue(testRemoteConnection()) def uri = new URI("https://www.google.com/") when: diff --git a/dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/base/HttpServerTest.groovy b/dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/base/HttpServerTest.groovy index 8bd05e8147a..c4086ddd70e 100644 --- a/dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/base/HttpServerTest.groovy +++ b/dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/base/HttpServerTest.groovy @@ -102,7 +102,7 @@ import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.get import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.isAsyncPropagationEnabled import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.noopSpan import static java.nio.charset.StandardCharsets.UTF_8 -import static org.junit.Assume.assumeTrue +import static org.junit.jupiter.api.Assumptions.assumeTrue abstract class HttpServerTest extends WithHttpServer { @@ -820,7 +820,7 @@ abstract class HttpServerTest extends WithHttpServer { } } recordedBaggageTags == [ - "baggage.user.id": "test-user", + "baggage.user.id" : "test-user", "baggage.session.id": "test-session", "baggage.account.id": "test-account" // "baggage.language" should NOT be present since it's not in default config @@ -1511,7 +1511,6 @@ abstract class HttpServerTest extends WithHttpServer { } } - def 'test instrumentation gateway multipart request body'() { setup: assumeTrue(testBodyMultipart()) @@ -2231,7 +2230,6 @@ abstract class HttpServerTest extends WithHttpServer { /** * This test should be done in a forked test class - * @return */ def "test rum injection in head for mime #mime"() { setup: @@ -2265,7 +2263,7 @@ abstract class HttpServerTest extends WithHttpServer { } // to be overridden for more specific asserts - void assertEndpointDiscovery(final List endpoints) { } + void assertEndpointDiscovery(final List endpoints) {} void controllerSpan(TraceAssert trace, ServerEndpoint endpoint = null) { def exception = endpoint == CUSTOM_EXCEPTION ? expectedCustomExceptionType() : expectedExceptionType() @@ -2339,7 +2337,7 @@ abstract class HttpServerTest extends WithHttpServer { if (hasPeerPort) { "$Tags.PEER_PORT" Integer } - if(span.getTag(Tags.PEER_HOST_IPV6) != null) { + if (span.getTag(Tags.PEER_HOST_IPV6) != null) { "$Tags.PEER_HOST_IPV6" { it == "0:0:0:0:0:0:0:1" || (endpoint == FORWARDED && it == endpoint.body) } "$Tags.HTTP_CLIENT_IP" { it == "0:0:0:0:0:0:0:1" || (endpoint == FORWARDED && it == endpoint.body) } } else { 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 67f1841d794..a2ed60cb44c 100644 --- a/dd-java-agent/testing/src/test/groovy/context/FieldInjectionForkedTest.groovy +++ b/dd-java-agent/testing/src/test/groovy/context/FieldInjectionForkedTest.groovy @@ -10,6 +10,7 @@ import net.bytebuddy.utility.JavaModule import net.sf.cglib.proxy.Enhancer import net.sf.cglib.proxy.MethodInterceptor import net.sf.cglib.proxy.MethodProxy +import spock.lang.IgnoreIf import java.lang.instrument.ClassDefinition import java.lang.ref.WeakReference @@ -28,7 +29,6 @@ import static context.FieldInjectionTestInstrumentation.KeyClass import static context.FieldInjectionTestInstrumentation.UntransformableKeyClass import static context.FieldInjectionTestInstrumentation.ValidInheritsSerializableKeyClass import static context.FieldInjectionTestInstrumentation.ValidSerializableKeyClass -import static org.junit.Assume.assumeTrue class FieldInjectionForkedTest extends AgentTestRunner { @@ -111,10 +111,8 @@ class FieldInjectionForkedTest extends AgentTestRunner { new UntransformableKeyClass() | _ } + @IgnoreIf({!InstrumenterConfig.get().isSerialVersionUIDFieldInjection()}) def "serializability not impacted #serializable"() { - setup: - assumeTrue(InstrumenterConfig.get().isSerialVersionUIDFieldInjection()) - expect: serialVersionUID(serializable) == serialVersionUID @@ -131,7 +129,7 @@ class FieldInjectionForkedTest extends AgentTestRunner { def field = klass.getDeclaredField("serialVersionUID") field.setAccessible(true) return (long) field.get(null) - } catch (NoSuchFieldException ex) { + } catch (NoSuchFieldException ignored) { def method = ObjectStreamClass.getDeclaredMethod("computeDefaultSUID", Class) method.setAccessible(true) return (long) method.invoke(null, klass) diff --git a/dd-smoke-tests/iast-propagation/src/test/groovy/datadog/smoketest/IastPropagationSmokeTest.groovy b/dd-smoke-tests/iast-propagation/src/test/groovy/datadog/smoketest/IastPropagationSmokeTest.groovy index 8d0f9e348e0..e620c065ebb 100644 --- a/dd-smoke-tests/iast-propagation/src/test/groovy/datadog/smoketest/IastPropagationSmokeTest.groovy +++ b/dd-smoke-tests/iast-propagation/src/test/groovy/datadog/smoketest/IastPropagationSmokeTest.groovy @@ -2,11 +2,11 @@ package datadog.smoketest import groovy.json.JsonSlurper import okhttp3.Request -import org.junit.Assume import static datadog.trace.api.config.IastConfig.IAST_DEBUG_ENABLED import static datadog.trace.api.config.IastConfig.IAST_DETECTION_MODE import static datadog.trace.api.config.IastConfig.IAST_ENABLED +import static org.junit.jupiter.api.Assumptions.assumeTrue class IastPropagationSmokeTest extends AbstractIastServerSmokeTest { @@ -32,7 +32,7 @@ class IastPropagationSmokeTest extends AbstractIastServerSmokeTest { void 'test propagation language=#language, method=#method'() { setup: // TODO fix when we have groovy default string propagation - Assume.assumeTrue(language != 'groovy') + assumeTrue(language != 'groovy') String param = "${language}_${method}" String url = "http://localhost:${httpPort}/${language}/${method}?param=$param" diff --git a/dd-smoke-tests/src/main/groovy/datadog/smoketest/AbstractServerSmokeTest.groovy b/dd-smoke-tests/src/main/groovy/datadog/smoketest/AbstractServerSmokeTest.groovy index 08a01b419c8..bb7f686182d 100644 --- a/dd-smoke-tests/src/main/groovy/datadog/smoketest/AbstractServerSmokeTest.groovy +++ b/dd-smoke-tests/src/main/groovy/datadog/smoketest/AbstractServerSmokeTest.groovy @@ -6,11 +6,12 @@ import datadog.trace.agent.test.utils.PortUtils import datadog.trace.test.util.Flaky import okhttp3.OkHttpClient import spock.lang.Shared -import static org.junit.Assume.assumeTrue import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.AtomicInteger +import static org.junit.jupiter.api.Assumptions.assumeTrue + abstract class AbstractServerSmokeTest extends AbstractSmokeTest { @Shared diff --git a/telemetry/src/test/groovy/datadog/telemetry/HostInfoTest.groovy b/telemetry/src/test/groovy/datadog/telemetry/HostInfoTest.groovy index 73e59cfbbd9..eddb474baad 100644 --- a/telemetry/src/test/groovy/datadog/telemetry/HostInfoTest.groovy +++ b/telemetry/src/test/groovy/datadog/telemetry/HostInfoTest.groovy @@ -1,9 +1,10 @@ package datadog.telemetry import datadog.environment.OperatingSystem -import org.junit.Assume import spock.lang.Specification +import static org.junit.jupiter.api.Assumptions.assumeTrue + class HostInfoTest extends Specification { void 'getHostname'() { when: @@ -32,7 +33,7 @@ class HostInfoTest extends Specification { } void 'compare to uname'() { - Assume.assumeTrue('uname -a'.execute().waitFor() == 0) + assumeTrue('uname -a'.execute().waitFor() == 0) expect: HostInfo.getHostname() == 'uname -n'.execute().text.trim()