plugins { id "me.champeau.gradle.jmh" version "0.4.8" } description = 'dd-trace-ot' apply from: "${rootDir}/gradle/java.gradle" apply from: "${rootDir}/gradle/publish.gradle" minimumBranchCoverage = 0.5 minimumInstructionCoverage = 0.6 excludedClassesConverage += [ 'datadog.trace.common.writer.ListWriter', 'datadog.trace.common.writer.LoggingWriter', 'datadog.trace.common.sampling.PrioritySampling', // This code is copied from okHttp samples and we have integration tests to verify that it works. 'datadog.trace.common.writer.unixdomainsockets.TunnelingUnixSocket', 'datadog.trace.common.writer.unixdomainsockets.UnixDomainSocketFactory' ] apply plugin: 'org.unbroken-dome.test-sets' testSets { traceAgentTest } dependencies { annotationProcessor deps.autoservice implementation deps.autoservice compile project(':dd-trace-api') compile deps.opentracing compile group: 'io.opentracing.contrib', name: 'opentracing-tracerresolver', version: '0.1.0' compile deps.jackson compile deps.slf4j compile group: 'org.msgpack', name: 'jackson-dataformat-msgpack', version: '0.8.16' compile group: 'com.squareup.okhttp3', name: 'okhttp', version: '3.11.0' // Last version to support Java7 compile group: 'com.github.jnr', name: 'jnr-unixsocket', version: '0.22' compile group: 'com.lmax', name: 'disruptor', version: '3.4.2' // We have autoservices defined in test subtree, looks like we need this to be able to properly rebuild this testAnnotationProcessor deps.autoservice testImplementation deps.autoservice testCompile project(":dd-java-agent:testing") testCompile project(':utils:gc-utils') testCompile group: 'org.assertj', name: 'assertj-core', version: '2.9.+' testCompile group: 'org.mockito', name: 'mockito-core', version: '2.19.0' testCompile group: 'org.objenesis', name: 'objenesis', version: '2.6' // Last version to support Java7 testCompile group: 'cglib', name: 'cglib-nodep', version: '3.2.5' testCompile group: 'com.github.stefanbirkner', name: 'system-rules', version: '1.17.1' traceAgentTestCompile deps.testcontainers } jmh { timeUnit = 'us' // Output time unit. Available time units are: [m, s, ms, us, ns]. benchmarkMode = ['thrpt', 'avgt'] timeOnIteration = '1s' iterations = 1 // Number of measurement iterations to do. // fork = 2 // How many times to forks a single benchmark. Use 0 to disable forking altogether jvmArgs = [] failOnError = true // Should JMH fail immediately if any benchmark had experienced the unrecoverable error? warmup = '2s' // Time to spend at each warmup iteration. warmupIterations = 1 // Number of warmup iterations to do. // warmupForks = 0 // How many warmup forks to make for a single benchmark. 0 to disable warmup forks. // profilers = ['stack'] // Use profilers to collect additional data. Supported profilers: [cl, comp, gc, stack, perf, perfnorm, perfasm, xperf, xperfasm, hs_cl, hs_comp, hs_gc, hs_rt, hs_thr] // humanOutputFile = project.file("${project.buildDir}/reports/jmh/human.txt") // human-readable output file // operationsPerInvocation = 10 // Operations per invocation. // synchronizeIterations = false // Synchronize iterations? // timeout = '1s' // Timeout for benchmark iteration. // includeTests = true // Allows to include test sources into generate JMH jar, i.e. use it when benchmarks depend on the test classes. duplicateClassesStrategy = 'fail' jmhVersion = '1.19' // Specifies JMH version }