Skip to content

Commit e65574a

Browse files
committed
Add test
1 parent ee09b87 commit e65574a

File tree

6 files changed

+102
-0
lines changed

6 files changed

+102
-0
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
plugins {
2+
id("otel.javaagent-instrumentation")
3+
}
4+
5+
dependencies {
6+
// To be able to have it as part of agent,
7+
// this dependency needs to be added as "testInstrumentation", not as "testImplementation"
8+
testInstrumentation(project(":instrumentation:resources:library"))
9+
}
10+
11+
otelJava {
12+
minJavaVersionSupported.set(JavaVersion.VERSION_18)
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.javaagent.tooling.inetaddress;
7+
8+
import org.junit.jupiter.api.Test;
9+
import java.net.InetAddress;
10+
11+
import static org.assertj.core.api.Assertions.assertThat;
12+
13+
public class InetAddressResolverTest {
14+
15+
@Test
16+
void agentStartShouldNotTriggerLoadingCustomInetAddressResolvers() throws Exception {
17+
// Agent start should not trigger loading (and instantiating) custom InetAddress resolvers
18+
assertThat(TestAddressResolver.isInstantiated()).isFalse();
19+
20+
// Trigger loading (and instantiating) custom InetAddress resolvers manually
21+
InetAddress.getAllByName("test");
22+
23+
// Verify that custom InetAddress resolver loaded and instantiated
24+
assertThat(TestAddressResolver.isInstantiated()).isTrue();
25+
}
26+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.javaagent.tooling.inetaddress;
7+
8+
import java.net.InetAddress;
9+
import java.net.UnknownHostException;
10+
import java.net.spi.InetAddressResolver;
11+
import java.util.stream.Stream;
12+
13+
public class TestAddressResolver implements InetAddressResolver {
14+
15+
private static volatile boolean instantiated = false;
16+
17+
@SuppressWarnings("StaticAssignmentInConstructor")
18+
public TestAddressResolver() {
19+
TestAddressResolver.instantiated = true;
20+
}
21+
22+
public static boolean isInstantiated() {
23+
return instantiated;
24+
}
25+
26+
@Override
27+
public Stream<InetAddress> lookupByName(String host, LookupPolicy lookupPolicy)
28+
throws UnknownHostException {
29+
if (host.equals("test")) {
30+
return Stream.of(InetAddress.getByAddress(new byte[] {127, 0, 0, 1}));
31+
}
32+
throw new UnknownHostException();
33+
}
34+
35+
@Override
36+
public String lookupByAddress(byte[] addr) {
37+
throw new UnsupportedOperationException();
38+
}
39+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.javaagent.tooling.inetaddress;
7+
8+
import java.net.spi.InetAddressResolver;
9+
import java.net.spi.InetAddressResolverProvider;
10+
11+
public class TestAddressResolverProvider extends InetAddressResolverProvider {
12+
13+
@Override
14+
public InetAddressResolver get(Configuration configuration) {
15+
return new TestAddressResolver();
16+
}
17+
18+
@Override
19+
public String name() {
20+
return "Test Internet Address Resolver Provider";
21+
}
22+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
io.opentelemetry.javaagent.tooling.inetaddress.TestAddressResolverProvider

settings.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ include(":javaagent-bootstrap")
121121
include(":javaagent-extension-api")
122122
include(":javaagent-tooling")
123123
include(":javaagent-tooling:javaagent-tooling-java9")
124+
include(":javaagent-tooling:testing-java18")
124125
include(":javaagent-internal-logging-application")
125126
include(":javaagent-internal-logging-simple")
126127
include(":javaagent")

0 commit comments

Comments
 (0)