Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 {

Expand Down Expand Up @@ -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)

Expand All @@ -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)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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[]
Expand Down Expand Up @@ -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[]
Expand Down Expand Up @@ -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()
Expand Down Expand Up @@ -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()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<AkkaHttpTestWebServer> {

Expand Down Expand Up @@ -119,9 +118,9 @@ abstract class AkkaHttpServerInstrumentationTest extends HttpServerTest<AkkaHttp
TEST_WRITER.waitForTraces(totalInvocations)
}

@IgnoreIf({ !instance.testBodyMultipart() })
def 'test instrumentation gateway multipart request body — strict variant'() {
setup:
assumeTrue(testBodyMultipart())
def body = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart('a', 'x')
Expand Down Expand Up @@ -151,9 +150,8 @@ abstract class AkkaHttpServerInstrumentationTest extends HttpServerTest<AkkaHttp
}
}

@IgnoreIf({ !instance.testBodyJson()})
def 'test instrumentation gateway json request body — spray variant'() {
assumeTrue(testBodyJson())

setup:
def url = HttpUrl.get(BODY_JSON.resolve(address)).newBuilder()
.encodedQuery('variant=spray')
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
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

import datadog.trace.agent.test.base.HttpServer
import datadog.trace.agent.test.base.HttpServerTest
import datadog.trace.agent.test.naming.TestingGenericHttpNamingConventions
import datadog.trace.agent.test.utils.ThreadUtils
import datadog.trace.instrumentation.akkahttp.AkkaHttpServerDecorator
import okhttp3.HttpUrl
import okhttp3.MediaType
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.ServerEndpoint.BODY_JSON
import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.BODY_MULTIPART
import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.SUCCESS

abstract class AkkaHttpServerInstrumentationTest extends HttpServerTest<AkkaHttpTestWebServer> {

@Override
Expand Down Expand Up @@ -117,9 +118,9 @@ abstract class AkkaHttpServerInstrumentationTest extends HttpServerTest<AkkaHttp
TEST_WRITER.waitForTraces(totalInvocations)
}

@IgnoreIf({ !instance.testBodyMultipart() })
def 'test instrumentation gateway multipart request body — strict variant'() {
setup:
assumeTrue(testBodyMultipart())
def body = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart('a', 'x')
Expand Down Expand Up @@ -149,16 +150,15 @@ abstract class AkkaHttpServerInstrumentationTest extends HttpServerTest<AkkaHttp
}
}

@IgnoreIf({ !instance.testBodyJson() })
def 'test instrumentation gateway json request body — spray variant'() {
assumeTrue(testBodyJson())

setup:
def url = HttpUrl.get(BODY_JSON.resolve(address)).newBuilder()
.encodedQuery('variant=spray')
.build()
def request = new Request.Builder()
.url(url)
.method('POST', RequestBody.create(okhttp3.MediaType.get('application/json'), '{"a":"x"}\n'))
.method('POST', RequestBody.create(MediaType.get('application/json'), '{"a":"x"}\n'))
.build()
def response = client.newCall(request).execute()
if (isDataStreamsEnabled()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import java.util.concurrent.ScheduledThreadPoolExecutor
import java.util.concurrent.ThreadPoolExecutor
import java.util.concurrent.TimeUnit

import static org.junit.Assume.assumeTrue
import static org.junit.jupiter.api.Assumptions.assumeTrue

abstract class ExecutorInstrumentationTest extends AgentTestRunner {

Expand Down Expand Up @@ -412,7 +412,7 @@ abstract class ExecutorInstrumentationTest extends AgentTestRunner {
throw e.getCause()
}
}
} catch (RejectedExecutionException e) {
} catch (RejectedExecutionException ignored) {
}

for (Future f : jobFutures) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import java.util.concurrent.Future
import java.util.concurrent.RejectedExecutionException
import java.util.concurrent.TimeUnit

import static org.junit.Assume.assumeTrue
import static org.junit.jupiter.api.Assumptions.assumeTrue

class NettyExecutorInstrumentationTest extends AgentTestRunner {

Expand Down Expand Up @@ -222,7 +222,7 @@ class NettyExecutorInstrumentationTest extends AgentTestRunner {
throw e.getCause()
}
}
} catch (RejectedExecutionException e) {
} catch (RejectedExecutionException ignored) {
}

for (Future f : jobFutures) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import java.util.concurrent.Callable
import java.util.concurrent.ExecutorService
import java.util.concurrent.Executors

import static org.junit.Assume.assumeTrue
import static org.junit.jupiter.api.Assumptions.assumeTrue

class JettyExecutorInstrumentationTest extends AgentTestRunner {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import spock.lang.IgnoreIf
import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.EXCEPTION
import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.SUCCESS
import static datadog.trace.agent.test.base.HttpServerTest.ServerEndpoint.TIMEOUT_ERROR
import static org.junit.Assume.assumeTrue

abstract class Liberty20Test extends HttpServerTest<Server> {

Expand Down Expand Up @@ -127,10 +126,9 @@ abstract class Liberty20Test extends HttpServerTest<Server> {
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')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<Server> {

Expand Down Expand Up @@ -117,10 +116,9 @@ abstract class Liberty23Test extends HttpServerTest<Server> {
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')
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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()

Expand Down
Original file line number Diff line number Diff line change
@@ -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 {

Expand Down Expand Up @@ -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") {
Expand Down Expand Up @@ -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") {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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<SERVER, CONTEXT> extends HttpServerTest<SERVER> implements TestingGenericHttpNamingConventions.ServerV0 {
@Override
Expand Down Expand Up @@ -139,9 +139,9 @@ abstract class AbstractServlet3Test<SERVER, CONTEXT> extends HttpServerTest<SERV
super.request(uri, method, body)
}

@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()

Expand Down
Loading