Skip to content

Commit b897cd6

Browse files
committed
fix: Ignore tests failing on Oracle JDK 1.8
Those tests can be ignored as they are not specific to Oracle.
1 parent 80fda54 commit b897cd6

File tree

7 files changed

+65
-2
lines changed

7 files changed

+65
-2
lines changed

dd-java-agent/agent-profiling/profiling-controller/src/test/java/com/datadog/profiling/controller/ProfilingSystemTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import static java.util.concurrent.TimeUnit.SECONDS;
2121
import static org.awaitility.Awaitility.await;
2222
import static org.junit.jupiter.api.Assertions.*;
23+
import static org.junit.jupiter.api.Assumptions.assumeFalse;
2324
import static org.mockito.ArgumentMatchers.any;
2425
import static org.mockito.ArgumentMatchers.anyBoolean;
2526
import static org.mockito.ArgumentMatchers.anyInt;
@@ -36,6 +37,7 @@
3637
import ch.qos.logback.classic.Level;
3738
import ch.qos.logback.classic.spi.ILoggingEvent;
3839
import ch.qos.logback.core.Appender;
40+
import datadog.environment.JavaVirtualMachine;
3941
import datadog.trace.api.profiling.RecordingData;
4042
import datadog.trace.api.profiling.RecordingDataListener;
4143
import datadog.trace.bootstrap.config.provider.ConfigProvider;
@@ -87,6 +89,12 @@ public class ProfilingSystemTest {
8789
@SuppressWarnings("unchecked")
8890
@BeforeEach
8991
public void setup() throws Exception {
92+
assumeFalse(
93+
JavaVirtualMachine.isOracleJDK8(),
94+
"Oracle JDK 1.8 did not merge the fix in JDK-8058322, leading to the JVM failing to correctly "
95+
+ "extract method parameters without args, when the code is compiled on a later JDK (targeting 8). "
96+
+ "This can manifest when creating mocks.");
97+
9098
when(controller.createRecording(ProfilingSystem.RECORDING_NAME, context)).thenReturn(recording);
9199
when(threadLocalRandom.nextInt(eq(1), anyInt())).thenReturn(1);
92100
when(recordingData.getEnd()).thenAnswer(mockInvocation -> Instant.now());

dd-java-agent/instrumentation/junit/junit-5.3/src/test/groovy/JUnit5Test.groovy

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectClass
22

3+
import datadog.environment.JavaVirtualMachine
34
import datadog.trace.api.DisableTestTrace
45
import datadog.trace.api.civisibility.config.TestFQN
56
import datadog.trace.api.civisibility.config.TestIdentifier
@@ -48,7 +49,15 @@ import org.junit.platform.launcher.TestExecutionListener
4849
import org.junit.platform.launcher.core.LauncherConfig
4950
import org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder
5051
import org.junit.platform.launcher.core.LauncherFactory
51-
52+
import spock.lang.IgnoreIf
53+
54+
@IgnoreIf(reason = """
55+
Oracle JDK 1.8 did not merge the fix in JDK-8058322, leading to the JVM failing to correctly
56+
extract method parameters without args, when the code is compiled on a later JDK (targeting 8).
57+
This can manifest when creating mocks.
58+
""", value = {
59+
JavaVirtualMachine.isOracleJDK8()
60+
})
5261
@DisableTestTrace(reason = "avoid self-tracing")
5362
class JUnit5Test extends CiVisibilityInstrumentationTest {
5463

dd-trace-core/src/test/groovy/datadog/trace/core/LongRunningTracesTrackerTest.groovy

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package datadog.trace.core
22

33
import datadog.communication.ddagent.DDAgentFeaturesDiscovery
44
import datadog.communication.ddagent.SharedCommunicationObjects
5+
import datadog.environment.JavaVirtualMachine
56
import datadog.trace.api.Config
67
import datadog.trace.api.DDTraceId
78
import datadog.trace.api.sampling.PrioritySampling
@@ -10,7 +11,15 @@ import datadog.trace.core.monitor.HealthMetrics
1011
import datadog.trace.test.util.DDSpecification
1112

1213
import java.util.concurrent.TimeUnit
13-
14+
import spock.lang.IgnoreIf
15+
16+
@IgnoreIf(reason = """
17+
Oracle JDK 1.8 did not merge the fix in JDK-8058322, leading to the JVM failing to correctly
18+
extract method parameters without args, when the code is compiled on a later JDK (targeting 8).
19+
This can manifest when creating mocks.
20+
""", value = {
21+
JavaVirtualMachine.isOracleJDK8()
22+
})
1423
class LongRunningTracesTrackerTest extends DDSpecification {
1524
Config config = Mock(Config)
1625
int maxTrackedTraces = 10

dd-trace-core/src/test/groovy/datadog/trace/core/PendingTraceBufferTest.groovy

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package datadog.trace.core
22

3+
import datadog.environment.JavaVirtualMachine
34
import datadog.trace.api.Config
45
import datadog.communication.monitor.Monitoring
56
import datadog.trace.SamplingPriorityMetadataChecker
@@ -14,6 +15,7 @@ import datadog.trace.core.propagation.PropagationTags
1415
import datadog.trace.core.scopemanager.ContinuableScopeManager
1516
import datadog.trace.test.util.DDSpecification
1617
import groovy.json.JsonSlurper
18+
import spock.lang.IgnoreIf
1719
import spock.lang.Subject
1820
import spock.lang.Timeout
1921
import spock.util.concurrent.PollingConditions
@@ -28,6 +30,13 @@ import static datadog.trace.api.sampling.PrioritySampling.USER_KEEP
2830
import static datadog.trace.core.PendingTraceBuffer.BUFFER_SIZE
2931
import static java.nio.charset.StandardCharsets.UTF_8
3032

33+
@IgnoreIf(reason = """
34+
Oracle JDK 1.8 did not merge the fix in JDK-8058322, leading to the JVM failing to correctly
35+
extract method parameters without args, when the code is compiled on a later JDK (targeting 8).
36+
This can manifest when creating mocks.
37+
""", value = {
38+
JavaVirtualMachine.isOracleJDK8()
39+
})
3140
@Timeout(5)
3241
class PendingTraceBufferTest extends DDSpecification {
3342
@Subject

dd-trace-core/src/test/groovy/datadog/trace/core/PendingTraceTest.groovy

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,24 @@
11
package datadog.trace.core
22

3+
import datadog.environment.JavaVirtualMachine
34
import datadog.trace.api.DDTraceId
45
import datadog.trace.api.sampling.PrioritySampling
56
import datadog.trace.api.time.TimeSource
67
import datadog.trace.api.datastreams.NoopPathwayContext
78
import datadog.trace.core.monitor.HealthMetrics
89
import datadog.trace.core.propagation.PropagationTags
10+
import spock.lang.IgnoreIf
911
import spock.lang.Timeout
1012

1113
import java.util.concurrent.TimeUnit
1214

15+
@IgnoreIf(reason = """
16+
Oracle JDK 1.8 did not merge the fix in JDK-8058322, leading to the JVM failing to correctly
17+
extract method parameters without args, when the code is compiled on a later JDK (targeting 8).
18+
This can manifest when creating mocks.
19+
""", value = {
20+
JavaVirtualMachine.isOracleJDK8()
21+
})
1322
class PendingTraceTest extends PendingTraceTestBase {
1423

1524
@Override

internal-api/src/test/java/datadog/trace/util/stacktrace/DefaultStackWalkerTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,26 @@
55
import static org.junit.jupiter.api.Assertions.assertFalse;
66
import static org.junit.jupiter.api.Assertions.assertNotEquals;
77
import static org.junit.jupiter.api.Assertions.assertTrue;
8+
import static org.junit.jupiter.api.Assumptions.assumeFalse;
89

10+
import datadog.environment.JavaVirtualMachine;
911
import java.util.List;
12+
import org.junit.jupiter.api.BeforeEach;
1013
import org.junit.jupiter.api.Test;
1114

1215
public class DefaultStackWalkerTest {
1316

1417
private final StackWalker stackWalker = new DefaultStackWalker();
1518

19+
@BeforeEach
20+
void setUp() {
21+
assumeFalse(
22+
JavaVirtualMachine.isOracleJDK8(),
23+
"Oracle JDK 1.8 did not merge the fix in JDK-8058322, leading to the JVM failing to correctly "
24+
+ "extract method parameters without args, when the code is compiled on a later JDK (targeting 8). "
25+
+ "This can manifest when creating mocks.");
26+
}
27+
1628
@Test
1729
public void defaultStackWalker_must_be_enabled() {
1830
assertTrue(stackWalker.isEnabled());

internal-api/src/test/java/datadog/trace/util/stacktrace/HotSpotStackWalkerTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,14 @@
99
import static org.junit.jupiter.api.Assertions.assertFalse;
1010
import static org.junit.jupiter.api.Assertions.assertNotEquals;
1111
import static org.junit.jupiter.api.Assertions.assertTrue;
12+
import static org.junit.jupiter.api.Assumptions.assumeFalse;
1213
import static org.junit.jupiter.api.Assumptions.assumeTrue;
1314
import static org.mockito.ArgumentMatchers.any;
1415
import static org.mockito.ArgumentMatchers.eq;
1516
import static org.mockito.Mockito.mock;
1617
import static org.mockito.Mockito.when;
1718

19+
import datadog.environment.JavaVirtualMachine;
1820
import java.util.List;
1921
import java.util.stream.Collectors;
2022
import org.junit.jupiter.api.BeforeAll;
@@ -27,6 +29,11 @@ public class HotSpotStackWalkerTest {
2729
@BeforeAll
2830
public static void setUp() {
2931
assumeTrue(isRunningJDK8WithHotSpot());
32+
assumeFalse(
33+
JavaVirtualMachine.isOracleJDK8(),
34+
"Oracle JDK 1.8 did not merge the fix in JDK-8058322, leading to the JVM failing to correctly "
35+
+ "extract method parameters without args, when the code is compiled on a later JDK (targeting 8). "
36+
+ "This can manifest when creating mocks.");
3037
}
3138

3239
@Test

0 commit comments

Comments
 (0)