Skip to content

Commit 7195477

Browse files
test: add flush failure coverage for LoggingSpanExporter and LoggingMetricExporter
1 parent be535cb commit 7195477

2 files changed

Lines changed: 36 additions & 0 deletions

File tree

exporters/logging/src/test/java/io/opentelemetry/exporter/logging/LoggingMetricExporterTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import java.util.Collections;
2626
import java.util.concurrent.TimeUnit;
2727
import java.util.concurrent.atomic.AtomicBoolean;
28+
import java.util.logging.Handler;
2829
import java.util.logging.Logger;
2930
import java.util.logging.SimpleFormatter;
3031
import java.util.logging.StreamHandler;
@@ -101,6 +102,23 @@ public synchronized void flush() {
101102
assertThat(flushed.get()).isTrue();
102103
}
103104

105+
@Test
106+
void flush_failure() {
107+
Handler failingHandler =
108+
new StreamHandler(new PrintStream(new ByteArrayOutputStream()), new SimpleFormatter()) {
109+
@Override
110+
public synchronized void flush() {
111+
throw new RuntimeException("Flush failed");
112+
}
113+
};
114+
Logger.getLogger(LoggingMetricExporter.class.getName()).addHandler(failingHandler);
115+
try {
116+
assertThat(exporter.flush().isSuccess()).isFalse();
117+
} finally {
118+
Logger.getLogger(LoggingMetricExporter.class.getName()).removeHandler(failingHandler);
119+
}
120+
}
121+
104122
@Test
105123
void shutdown() {
106124
assertThat(exporter.shutdown().isSuccess()).isTrue();

exporters/logging/src/test/java/io/opentelemetry/exporter/logging/LoggingSpanExporterTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import java.util.Collections;
3232
import java.util.concurrent.TimeUnit;
3333
import java.util.concurrent.atomic.AtomicBoolean;
34+
import java.util.logging.Handler;
3435
import java.util.logging.Logger;
3536
import java.util.logging.SimpleFormatter;
3637
import java.util.logging.StreamHandler;
@@ -139,6 +140,23 @@ public synchronized void flush() {
139140
assertThat(flushed.get()).isTrue();
140141
}
141142

143+
@Test
144+
void flush_failure() {
145+
Handler failingHandler =
146+
new StreamHandler(new PrintStream(new ByteArrayOutputStream()), new SimpleFormatter()) {
147+
@Override
148+
public synchronized void flush() {
149+
throw new RuntimeException("Flush failed");
150+
}
151+
};
152+
Logger.getLogger(LoggingSpanExporter.class.getName()).addHandler(failingHandler);
153+
try {
154+
assertThat(exporter.flush().isSuccess()).isFalse();
155+
} finally {
156+
Logger.getLogger(LoggingSpanExporter.class.getName()).removeHandler(failingHandler);
157+
}
158+
}
159+
142160
@Test
143161
void shutdown() {
144162
assertThat(exporter.shutdown().isSuccess()).isTrue();

0 commit comments

Comments
 (0)