Skip to content
Open
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
1 change: 1 addition & 0 deletions .github/workflows/build-common.yml
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,7 @@ jobs:
-PtestJavaVersion=${{ matrix.test-java-version }}
-PtestJavaVM=${{ matrix.vm }}
-PtestIndy=${{ matrix.test-indy }}
-PdenyUnsafe=${{ matrix.test-java-version >= 23 && 'true' || 'false' }}
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Run jdk25 tests with unsafe disabled to verify that everything works. I guess it is an open question whether we want to test without unsafe at all at this point or whether we want to do it in some other way as running with unsafe requires disabling tests that use unsafe.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how about adding it to the matrix so we test 25 both with and without denyUnsafe, e.g.

        deny-unsafe:
          - false
          - true
        exclude:
          - test-java-version: 8
            deny-unsafe: true
          - test-java-version: 11
            deny-unsafe: true
          - test-java-version: 17
            deny-unsafe: true
          - test-java-version: 21
            deny-unsafe: true

-Porg.gradle.java.installations.paths=${{ steps.setup-test-java.outputs.path }}
-Porg.gradle.java.installations.auto-download=false
${{ inputs.no-build-cache && ' --no-build-cache' || '' }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ plugins {
id("io.opentelemetry.instrumentation.javaagent-shadowing")
}

val denyUnsafe = gradle.startParameter.projectProperties["denyUnsafe"] == "true"
extra["denyUnsafe"] = denyUnsafe

dependencies {
/*
Dependencies added to this configuration will be found by the muzzle gradle plugin during code
Expand Down Expand Up @@ -72,30 +75,40 @@ class JavaagentTestArgumentsProvider(
@PathSensitive(PathSensitivity.RELATIVE)
val shadowJar: File,
) : CommandLineArgumentProvider {
override fun asArguments(): Iterable<String> = listOf(
"-Dotel.javaagent.debug=true",
"-javaagent:${agentShadowJar.absolutePath}",
// make the path to the javaagent available to tests
"-Dotel.javaagent.testing.javaagent-jar-path=${agentShadowJar.absolutePath}",
"-Dotel.javaagent.experimental.initializer.jar=${shadowJar.absolutePath}",
"-Dotel.javaagent.testing.additional-library-ignores.enabled=false",
"-Dotel.javaagent.testing.fail-on-context-leak=${findProperty("failOnContextLeak") != false}",
// prevent sporadic gradle deadlocks, see SafeLogger for more details
"-Dotel.javaagent.testing.transform-safe-logging.enabled=true",
// Reduce noise in assertion messages since we don't need to verify this in most tests. We check
// in smoke tests instead.
"-Dotel.javaagent.add-thread-details=false",
"-Dotel.javaagent.experimental.indy=${findProperty("testIndy") == "true"}",
// suppress repeated logging of "No metric data to export - skipping export."
// since PeriodicMetricReader is configured with a short interval
"-Dio.opentelemetry.javaagent.slf4j.simpleLogger.log.io.opentelemetry.sdk.metrics.export.PeriodicMetricReader=INFO",
// suppress a couple of verbose ClassNotFoundException stack traces logged at debug level
"-Dio.opentelemetry.javaagent.slf4j.simpleLogger.log.io.grpc.internal.ServerImplBuilder=INFO",
"-Dio.opentelemetry.javaagent.slf4j.simpleLogger.log.io.grpc.internal.ManagedChannelImplBuilder=INFO",
"-Dio.opentelemetry.javaagent.slf4j.simpleLogger.log.io.perfmark.PerfMark=INFO",
"-Dio.opentelemetry.javaagent.slf4j.simpleLogger.log.io.grpc.Context=INFO",
"-Dotel.java.experimental.span-attributes.copy-from-baggage.include=test-baggage-key-1,test-baggage-key-2"
)
override fun asArguments(): Iterable<String> {
val list = mutableListOf(
"-Dotel.javaagent.debug=true",
"-javaagent:${agentShadowJar.absolutePath}",
// make the path to the javaagent available to tests
"-Dotel.javaagent.testing.javaagent-jar-path=${agentShadowJar.absolutePath}",
"-Dotel.javaagent.experimental.initializer.jar=${shadowJar.absolutePath}",
"-Dotel.javaagent.testing.additional-library-ignores.enabled=false",
"-Dotel.javaagent.testing.fail-on-context-leak=${findProperty("failOnContextLeak") != false}",
// prevent sporadic gradle deadlocks, see SafeLogger for more details
"-Dotel.javaagent.testing.transform-safe-logging.enabled=true",
// Reduce noise in assertion messages since we don't need to verify this in most tests. We check
// in smoke tests instead.
"-Dotel.javaagent.add-thread-details=false",
"-Dotel.javaagent.experimental.indy=${findProperty("testIndy") == "true"}",
// suppress repeated logging of "No metric data to export - skipping export."
// since PeriodicMetricReader is configured with a short interval
"-Dio.opentelemetry.javaagent.slf4j.simpleLogger.log.io.opentelemetry.sdk.metrics.export.PeriodicMetricReader=INFO",
// suppress a couple of verbose ClassNotFoundException stack traces logged at debug level
"-Dio.opentelemetry.javaagent.slf4j.simpleLogger.log.io.grpc.internal.ServerImplBuilder=INFO",
"-Dio.opentelemetry.javaagent.slf4j.simpleLogger.log.io.grpc.internal.ManagedChannelImplBuilder=INFO",
"-Dio.opentelemetry.javaagent.slf4j.simpleLogger.log.io.perfmark.PerfMark=INFO",
"-Dio.opentelemetry.javaagent.slf4j.simpleLogger.log.io.grpc.Context=INFO",
"-Dotel.java.experimental.span-attributes.copy-from-baggage.include=test-baggage-key-1,test-baggage-key-2"
)
if (denyUnsafe) {
list += listOf(
"-Dsun.misc.unsafe.memory.access=deny",
"-Dotel.instrumentation.deny-unsafe.enabled=true",
"-Dio.netty.noUnsafe=true"
)
}
return list
}
}

// need to run this after evaluate because testSets plugin adds new test tasks
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,9 @@ if (findProperty("testLatestDeps") as Boolean) {
}
}
}

if (findProperty("denyUnsafe") as Boolean) {
tasks.withType<Test>().configureEach {
enabled = false
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,9 @@ dependencies {

testImplementation(project(":instrumentation:executors:testing"))
}

if (findProperty("denyUnsafe") as Boolean) {
tasks.withType<Test>().configureEach {
enabled = false
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,12 @@ tasks {
check {
dependsOn(testing.suites)
}

if (findProperty("denyUnsafe") as Boolean) {
withType<Test>().configureEach {
enabled = false
}
}
}

if (findProperty("testLatestDeps") as Boolean) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,10 @@ tasks {
systemProperty("testLatestDeps", findProperty("testLatestDeps") as Boolean)
systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false")
}

if (findProperty("denyUnsafe") as Boolean) {
withType<Test>().configureEach {
enabled = false
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,9 @@ afterEvaluate {
tasks.test {
systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false")
}

if (findProperty("denyUnsafe") as Boolean) {
tasks.withType<Test>().configureEach {
enabled = false
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,13 @@ tasks {
check {
dependsOn(testStableSemconv)
}

if (findProperty("denyUnsafe") as Boolean) {
// org.elasticmq:elasticmq-rest-sqs_2.13 uses unsafe. Future versions are likely to fix this.
withType<Test>().configureEach {
enabled = false
}
}
}

if (!(findProperty("testLatestDeps") as Boolean)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -237,4 +237,12 @@ tasks {
duplicatesStrategy = DuplicatesStrategy.INCLUDE
}
}

if (findProperty("denyUnsafe") as Boolean) {
// Aws2SqsTracingTest uses org.elasticmq:elasticmq-rest-sqs_2.13 that uses unsafe. Future
// versions are likely to fix this.
withType<Test>().configureEach {
enabled = false
}
}
}
6 changes: 6 additions & 0 deletions instrumentation/camel-2.20/javaagent/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,12 @@ tasks {
check {
dependsOn(testStableSemconv, testExperimental)
}

if (findProperty("denyUnsafe") as Boolean) {
withType<Test>().configureEach {
enabled = false
}
}
}

configurations.testRuntimeClasspath {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,10 @@ tasks {
check {
dependsOn(testStableSemconv)
}

if (findProperty("denyUnsafe") as Boolean) {
withType<Test>().configureEach {
enabled = false
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,10 @@ tasks {
check {
dependsOn(testStableSemconv)
}

if (findProperty("denyUnsafe") as Boolean) {
withType<Test>().configureEach {
enabled = false
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -66,4 +66,10 @@ tasks {
check {
dependsOn(testStableSemconv, testExperimental)
}

if (findProperty("denyUnsafe") as Boolean) {
withType<Test>().configureEach {
enabled = false
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,10 @@ tasks {
usesService(gradle.sharedServices.registrations["testcontainersBuildService"].service)
systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false")
}

if (findProperty("denyUnsafe") as Boolean) {
withType<Test>().configureEach {
enabled = false
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,10 @@ tasks {
usesService(gradle.sharedServices.registrations["testcontainersBuildService"].service)
systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false")
}

if (findProperty("denyUnsafe") as Boolean) {
withType<Test>().configureEach {
enabled = false
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,10 @@ tasks {
usesService(gradle.sharedServices.registrations["testcontainersBuildService"].service)
systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false")
}

if (findProperty("denyUnsafe") as Boolean) {
withType<Test>().configureEach {
enabled = false
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,10 @@ tasks {
usesService(gradle.sharedServices.registrations["testcontainersBuildService"].service)
systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false")
}

if (findProperty("denyUnsafe") as Boolean) {
withType<Test>().configureEach {
enabled = false
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,9 @@ configurations.testRuntimeClasspath {
tasks.withType<Test>().configureEach {
jvmArgs("-Dotel.instrumentation.common.experimental.controller-telemetry.enabled=true")
}

if (findProperty("denyUnsafe") as Boolean) {
tasks.withType<Test>().configureEach {
enabled = false
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -96,4 +96,10 @@ tasks {
check {
dependsOn(testStableSemconv, testExperimental)
}

if (findProperty("denyUnsafe") as Boolean) {
withType<Test>().configureEach {
enabled = false
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -126,4 +126,10 @@ tasks {
check {
dependsOn(testing.suites, stableSemconvSuites, experimentalSuites)
}

if (findProperty("denyUnsafe") as Boolean) {
withType<Test>().configureEach {
enabled = false
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,10 @@ tasks {

systemProperty("metadataConfig", "otel.instrumentation.http.client.emit-experimental-telemetry=true,otel.instrumentation.http.server.emit-experimental-telemetry=true")
}

if (findProperty("denyUnsafe") as Boolean) {
withType<Test>().configureEach {
enabled = false
}
}
}
6 changes: 6 additions & 0 deletions instrumentation/finatra-2.9/javaagent/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,12 @@ tasks {
systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false")
systemProperty("metadataConfig", "otel.instrumentation.common.experimental.controller-telemetry.enabled=true")
}

if (findProperty("denyUnsafe") as Boolean) {
withType<Test>().configureEach {
enabled = false
}
}
}

if (findProperty("testLatestDeps") as Boolean) {
Expand Down
6 changes: 6 additions & 0 deletions instrumentation/grails-3.0/javaagent/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,10 @@ tasks {
systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false")
systemProperty("metadataConfig", "otel.instrumentation.common.experimental.controller-telemetry.enabled=true")
}

if (findProperty("denyUnsafe") as Boolean) {
withType<Test>().configureEach {
enabled = false
}
}
}
6 changes: 6 additions & 0 deletions instrumentation/grpc-1.6/javaagent/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -90,4 +90,10 @@ if (!(findProperty("testLatestDeps") as Boolean)) {
}
}
}

if (findProperty("denyUnsafe") as Boolean) {
tasks.withType<Test>().configureEach {
enabled = false
}
}
}
6 changes: 6 additions & 0 deletions instrumentation/hystrix-1.4/javaagent/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,10 @@ tasks {
check {
dependsOn(testExperimental)
}

if (findProperty("denyUnsafe") as Boolean) {
withType<Test>().configureEach {
enabled = false
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -60,4 +60,10 @@ tasks {
check {
dependsOn(testExperimental)
}

if (findProperty("denyUnsafe") as Boolean) {
withType<Test>().configureEach {
enabled = false
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,12 @@ tasks {
check {
dependsOn(testAsync)
}

if (findProperty("denyUnsafe") as Boolean) {
withType<Test>().configureEach {
enabled = false
}
}
}

tasks.withType<Test>().configureEach {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,9 @@ if (findProperty("testLatestDeps") as Boolean) {
}
}
}

if (findProperty("denyUnsafe") as Boolean) {
tasks.withType<Test>().configureEach {
enabled = false
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,12 @@ tasks {
check {
dependsOn(testing.suites)
}

if (findProperty("denyUnsafe") as Boolean) {
withType<Test>().configureEach {
enabled = false
}
}
}

if (findProperty("testLatestDeps") as Boolean) {
Expand Down
Loading
Loading