Skip to content

Commit a880293

Browse files
committed
fix async test
1 parent 44c25eb commit a880293

File tree

2 files changed

+81
-68
lines changed

2 files changed

+81
-68
lines changed

instrumentation/log4j/log4j-appender-2.17/library/src/test/java/io/opentelemetry/instrumentation/log4j/appender/v2_17/AbstractOpenTelemetryAppenderTest.java

Lines changed: 62 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@
2626
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
2727
import io.opentelemetry.sdk.logs.data.LogRecordData;
2828
import io.opentelemetry.sdk.resources.Resource;
29+
import io.opentelemetry.sdk.testing.assertj.AttributeAssertion;
2930
import java.time.Instant;
31+
import java.util.ArrayList;
32+
import java.util.Arrays;
33+
import java.util.List;
3034
import org.apache.logging.log4j.LogManager;
3135
import org.apache.logging.log4j.Logger;
3236
import org.apache.logging.log4j.Marker;
@@ -102,12 +106,10 @@ void logNoSpan() {
102106
.hasInstrumentationScope(instrumentationScopeInfo)
103107
.hasBody("log message 1")
104108
.hasAttributesSatisfyingExactly(
105-
equalTo(THREAD_NAME, Thread.currentThread().getName()),
106-
equalTo(THREAD_ID, Thread.currentThread().getId()),
107-
equalTo(CODE_NAMESPACE, AbstractOpenTelemetryAppenderTest.class.getName()),
108-
equalTo(CODE_FUNCTION, "logNoSpan"),
109-
satisfies(CODE_LINENO, AbstractLongAssert::isPositive),
110-
equalTo(CODE_FILEPATH, "AbstractOpenTelemetryAppenderTest.java")));
109+
addLocationAttributes(
110+
"logNoSpan",
111+
equalTo(THREAD_NAME, Thread.currentThread().getName()),
112+
equalTo(THREAD_ID, Thread.currentThread().getId()))));
111113
}
112114

113115
@Test
@@ -137,15 +139,13 @@ void logWithExtras() {
137139
.hasSeverity(Severity.INFO)
138140
.hasSeverityText("INFO")
139141
.hasAttributesSatisfyingExactly(
140-
equalTo(THREAD_NAME, Thread.currentThread().getName()),
141-
equalTo(THREAD_ID, Thread.currentThread().getId()),
142-
equalTo(CODE_NAMESPACE, AbstractOpenTelemetryAppenderTest.class.getName()),
143-
equalTo(CODE_FUNCTION, "logWithExtras"),
144-
satisfies(CODE_LINENO, AbstractLongAssert::isPositive),
145-
equalTo(CODE_FILEPATH, "AbstractOpenTelemetryAppenderTest.java"),
146-
equalTo(EXCEPTION_TYPE, IllegalStateException.class.getName()),
147-
equalTo(EXCEPTION_MESSAGE, "Error!"),
148-
satisfies(EXCEPTION_STACKTRACE, v -> v.contains("logWithExtras")));
142+
addLocationAttributes(
143+
"logWithExtras",
144+
equalTo(THREAD_NAME, Thread.currentThread().getName()),
145+
equalTo(THREAD_ID, Thread.currentThread().getId()),
146+
equalTo(EXCEPTION_TYPE, IllegalStateException.class.getName()),
147+
equalTo(EXCEPTION_MESSAGE, "Error!"),
148+
satisfies(EXCEPTION_STACKTRACE, v -> v.contains("logWithExtras"))));
149149

150150
LogRecordData logRecordData = AssertAccess.getActual(logRecord);
151151
assertThat(logRecordData.getTimestampEpochNanos())
@@ -174,14 +174,12 @@ void logContextData() {
174174
.hasInstrumentationScope(instrumentationScopeInfo)
175175
.hasBody("log message 1")
176176
.hasAttributesSatisfyingExactly(
177-
equalTo(THREAD_NAME, Thread.currentThread().getName()),
178-
equalTo(THREAD_ID, Thread.currentThread().getId()),
179-
equalTo(CODE_NAMESPACE, AbstractOpenTelemetryAppenderTest.class.getName()),
180-
equalTo(CODE_FUNCTION, "logContextData"),
181-
satisfies(CODE_LINENO, AbstractLongAssert::isPositive),
182-
equalTo(CODE_FILEPATH, "AbstractOpenTelemetryAppenderTest.java"),
183-
equalTo(stringKey("key1"), "val1"),
184-
equalTo(stringKey("key2"), "val2")));
177+
addLocationAttributes(
178+
"logContextData",
179+
equalTo(THREAD_NAME, Thread.currentThread().getName()),
180+
equalTo(THREAD_ID, Thread.currentThread().getId()),
181+
equalTo(stringKey("key1"), "val1"),
182+
equalTo(stringKey("key2"), "val2"))));
185183
}
186184

187185
@Test
@@ -200,14 +198,12 @@ void logStringMapMessage() {
200198
.hasResource(resource)
201199
.hasInstrumentationScope(instrumentationScopeInfo)
202200
.hasAttributesSatisfyingExactly(
203-
equalTo(THREAD_NAME, Thread.currentThread().getName()),
204-
equalTo(THREAD_ID, Thread.currentThread().getId()),
205-
equalTo(CODE_NAMESPACE, AbstractOpenTelemetryAppenderTest.class.getName()),
206-
equalTo(CODE_FUNCTION, "logStringMapMessage"),
207-
satisfies(CODE_LINENO, AbstractLongAssert::isPositive),
208-
equalTo(CODE_FILEPATH, "AbstractOpenTelemetryAppenderTest.java"),
209-
equalTo(stringKey("log4j.map_message.key1"), "val1"),
210-
equalTo(stringKey("log4j.map_message.key2"), "val2")));
201+
addLocationAttributes(
202+
"logStringMapMessage",
203+
equalTo(THREAD_NAME, Thread.currentThread().getName()),
204+
equalTo(THREAD_ID, Thread.currentThread().getId()),
205+
equalTo(stringKey("log4j.map_message.key1"), "val1"),
206+
equalTo(stringKey("log4j.map_message.key2"), "val2"))));
211207
}
212208

213209
@Test
@@ -227,13 +223,11 @@ void logStringMapMessageWithSpecialAttribute() {
227223
.hasInstrumentationScope(instrumentationScopeInfo)
228224
.hasBody("val2")
229225
.hasAttributesSatisfyingExactly(
230-
equalTo(THREAD_NAME, Thread.currentThread().getName()),
231-
equalTo(THREAD_ID, Thread.currentThread().getId()),
232-
equalTo(CODE_NAMESPACE, AbstractOpenTelemetryAppenderTest.class.getName()),
233-
equalTo(CODE_FUNCTION, "logStringMapMessageWithSpecialAttribute"),
234-
satisfies(CODE_LINENO, AbstractLongAssert::isPositive),
235-
equalTo(CODE_FILEPATH, "AbstractOpenTelemetryAppenderTest.java"),
236-
equalTo(stringKey("log4j.map_message.key1"), "val1")));
226+
addLocationAttributes(
227+
"logStringMapMessageWithSpecialAttribute",
228+
equalTo(THREAD_NAME, Thread.currentThread().getName()),
229+
equalTo(THREAD_ID, Thread.currentThread().getId()),
230+
equalTo(stringKey("log4j.map_message.key1"), "val1"))));
237231
}
238232

239233
@Test
@@ -268,13 +262,35 @@ void logStructuredDataMessage() {
268262
.hasInstrumentationScope(instrumentationScopeInfo)
269263
.hasBody("a message")
270264
.hasAttributesSatisfyingExactly(
271-
equalTo(THREAD_NAME, Thread.currentThread().getName()),
272-
equalTo(THREAD_ID, Thread.currentThread().getId()),
273-
equalTo(CODE_NAMESPACE, AbstractOpenTelemetryAppenderTest.class.getName()),
274-
equalTo(CODE_FUNCTION, "logStructuredDataMessage"),
275-
satisfies(CODE_LINENO, AbstractLongAssert::isPositive),
276-
equalTo(CODE_FILEPATH, "AbstractOpenTelemetryAppenderTest.java"),
277-
equalTo(stringKey("log4j.map_message.key1"), "val1"),
278-
equalTo(stringKey("log4j.map_message.key2"), "val2")));
265+
addLocationAttributes(
266+
"logStructuredDataMessage",
267+
equalTo(THREAD_NAME, Thread.currentThread().getName()),
268+
equalTo(THREAD_ID, Thread.currentThread().getId()),
269+
equalTo(stringKey("log4j.map_message.key1"), "val1"),
270+
equalTo(stringKey("log4j.map_message.key2"), "val2"))));
271+
}
272+
273+
private static List<AttributeAssertion> addLocationAttributes(
274+
String methodName, AttributeAssertion... assertions) {
275+
return addLocationAttributes(AbstractOpenTelemetryAppenderTest.class, methodName, assertions);
276+
}
277+
278+
protected static List<AttributeAssertion> addLocationAttributes(
279+
Class<?> testClass, String methodName, AttributeAssertion... assertions) {
280+
String selector = System.getProperty("Log4j2.contextSelector");
281+
boolean async = selector != null && selector.endsWith("AsyncLoggerContextSelector");
282+
if (async) {
283+
// code attributes as not added by default when async logger is used
284+
return Arrays.asList(assertions);
285+
}
286+
287+
List<AttributeAssertion> result = new ArrayList<>(Arrays.asList(assertions));
288+
result.addAll(
289+
Arrays.asList(
290+
equalTo(CODE_NAMESPACE, testClass.getName()),
291+
equalTo(CODE_FUNCTION, methodName),
292+
satisfies(CODE_LINENO, AbstractLongAssert::isPositive),
293+
equalTo(CODE_FILEPATH, testClass.getSimpleName() + ".java")));
294+
return result;
279295
}
280296
}

instrumentation/log4j/log4j-appender-2.17/library/src/test/java/io/opentelemetry/instrumentation/log4j/appender/v2_17/LogReplayOpenTelemetryAppenderTest.java

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,15 @@
77

88
import static io.opentelemetry.api.common.AttributeKey.stringKey;
99
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
10-
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
11-
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_FILEPATH;
12-
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_FUNCTION;
13-
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_LINENO;
14-
import static io.opentelemetry.semconv.incubating.CodeIncubatingAttributes.CODE_NAMESPACE;
1510
import static io.opentelemetry.semconv.incubating.ThreadIncubatingAttributes.THREAD_ID;
1611
import static io.opentelemetry.semconv.incubating.ThreadIncubatingAttributes.THREAD_NAME;
1712

1813
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
1914
import io.opentelemetry.instrumentation.testing.junit.LibraryInstrumentationExtension;
15+
import io.opentelemetry.sdk.testing.assertj.AttributeAssertion;
16+
import java.util.List;
2017
import org.apache.logging.log4j.message.StringMapMessage;
2118
import org.apache.logging.log4j.message.StructuredDataMessage;
22-
import org.assertj.core.api.AbstractLongAssert;
2319
import org.junit.jupiter.api.AfterEach;
2420
import org.junit.jupiter.api.Assumptions;
2521
import org.junit.jupiter.api.BeforeEach;
@@ -102,14 +98,12 @@ void twoLogsStringMapMessage() {
10298
.hasResource(resource)
10399
.hasInstrumentationScope(instrumentationScopeInfo)
104100
.hasAttributesSatisfyingExactly(
105-
equalTo(THREAD_NAME, Thread.currentThread().getName()),
106-
equalTo(THREAD_ID, Thread.currentThread().getId()),
107-
equalTo(CODE_NAMESPACE, LogReplayOpenTelemetryAppenderTest.class.getName()),
108-
equalTo(CODE_FUNCTION, "twoLogsStringMapMessage"),
109-
satisfies(CODE_LINENO, AbstractLongAssert::isPositive),
110-
equalTo(CODE_FILEPATH, "LogReplayOpenTelemetryAppenderTest.java"),
111-
equalTo(stringKey("log4j.map_message.key1"), "val1"),
112-
equalTo(stringKey("log4j.map_message.key2"), "val2")));
101+
addLocationAttributes(
102+
"twoLogsStringMapMessage",
103+
equalTo(THREAD_NAME, Thread.currentThread().getName()),
104+
equalTo(THREAD_ID, Thread.currentThread().getId()),
105+
equalTo(stringKey("log4j.map_message.key1"), "val1"),
106+
equalTo(stringKey("log4j.map_message.key2"), "val2"))));
113107
}
114108

115109
@Test
@@ -138,13 +132,16 @@ void twoLogsStructuredDataMessage() {
138132
.hasInstrumentationScope(instrumentationScopeInfo)
139133
.hasBody("a message")
140134
.hasAttributesSatisfyingExactly(
141-
equalTo(THREAD_NAME, Thread.currentThread().getName()),
142-
equalTo(THREAD_ID, Thread.currentThread().getId()),
143-
equalTo(CODE_NAMESPACE, LogReplayOpenTelemetryAppenderTest.class.getName()),
144-
equalTo(CODE_FUNCTION, "twoLogsStructuredDataMessage"),
145-
satisfies(CODE_LINENO, AbstractLongAssert::isPositive),
146-
equalTo(CODE_FILEPATH, "LogReplayOpenTelemetryAppenderTest.java"),
147-
equalTo(stringKey("log4j.map_message.key1"), "val1"),
148-
equalTo(stringKey("log4j.map_message.key2"), "val2")));
135+
addLocationAttributes(
136+
"twoLogsStructuredDataMessage",
137+
equalTo(THREAD_NAME, Thread.currentThread().getName()),
138+
equalTo(THREAD_ID, Thread.currentThread().getId()),
139+
equalTo(stringKey("log4j.map_message.key1"), "val1"),
140+
equalTo(stringKey("log4j.map_message.key2"), "val2"))));
141+
}
142+
143+
private static List<AttributeAssertion> addLocationAttributes(
144+
String methodName, AttributeAssertion... assertions) {
145+
return addLocationAttributes(LogReplayOpenTelemetryAppenderTest.class, methodName, assertions);
149146
}
150147
}

0 commit comments

Comments
 (0)