Skip to content

Commit 76e6387

Browse files
committed
update test
1 parent fecf7a6 commit 76e6387

File tree

3 files changed

+38
-51
lines changed

3 files changed

+38
-51
lines changed

instrumentation/rxjava/rxjava-2.0/library/src/main/java/io/opentelemetry/instrumentation/rxjava/v2_0/TracingAssembly.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ public final class TracingAssembly {
6767
@Nullable
6868
static volatile Function<? super Observable, ? extends Observable> oldOnObservableAssembly;
6969

70-
7170
@SuppressWarnings("rawtypes")
7271
@GuardedBy("TracingAssembly.class")
7372
@Nullable

instrumentation/rxjava/rxjava-2.0/library/src/main/java/io/opentelemetry/instrumentation/rxjava/v2_0/TracingObservable.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,15 @@ final class TracingObservable<T> extends Observable<T> {
1717
TracingObservable(Observable<T> source, Context context) {
1818
this.source = source;
1919
this.context = context;
20-
System.out.println("TracingObservable created with context: " + context);
2120
}
2221

2322
@Override
2423
protected void subscribeActual(Observer<? super T> observer) {
25-
System.out.println("TracingObservable.subscribeActual called with context: " + context);
26-
System.out.println("Current context before making current: " + Context.current());
27-
2824
try (Scope ignored = context.makeCurrent()) {
29-
System.out.println("Current context after making current: " + Context.current());
30-
31-
// Don't double-wrap if the observer is already a TracingObserver
25+
// Don't double-wrap if already a TracingObserver
3226
if (observer instanceof TracingObserver) {
33-
System.out.println("Observer is already TracingObserver, not wrapping");
3427
source.subscribe(observer);
3528
} else {
36-
System.out.println("Wrapping observer in TracingObserver");
3729
source.subscribe(new TracingObserver<>(observer, context));
3830
}
3931
}

instrumentation/rxjava/rxjava-2.0/testing/src/main/java/io/opentelemetry/instrumentation/rxjava/v2_0/AbstractRxJava2Test.java

Lines changed: 37 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
import static org.assertj.core.api.Assertions.assertThat;
1111
import static org.assertj.core.api.Assertions.assertThatThrownBy;
1212

13-
import com.google.errorprone.annotations.CanIgnoreReturnValue;
1413
import io.opentelemetry.api.common.AttributeKey;
14+
import io.opentelemetry.api.trace.Span;
1515
import io.opentelemetry.api.trace.SpanKind;
1616
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
1717
import io.opentelemetry.instrumentation.testing.util.ThrowingRunnable;
@@ -30,7 +30,9 @@
3030
import io.reactivex.schedulers.Schedulers;
3131
import java.util.Comparator;
3232
import java.util.List;
33+
import java.util.concurrent.CountDownLatch;
3334
import java.util.concurrent.TimeUnit;
35+
import java.util.concurrent.atomic.AtomicReference;
3436
import java.util.function.Consumer;
3537
import java.util.stream.Stream;
3638
import org.junit.jupiter.api.Test;
@@ -340,29 +342,44 @@ public void basicObservable() {
340342
.hasParent(trace.getSpan(0))));
341343
}
342344

343-
344345
@Test
345-
@SuppressWarnings("CanIgnoreReturnValue")
346-
public void basicObservableFromCallable() {
347-
Observable<String> test = createParentSpan(() -> Observable.fromCallable(() -> "success"));
348-
assertThat(test).isNotNull();
349-
350-
// Actually subscribe to trigger the Observable execution
351-
String result = test.blockingFirst();
352-
assertThat(result).isEqualTo("success");
353-
346+
public void basicObservableFromCallable() throws InterruptedException {
347+
CountDownLatch countDownLatch = new CountDownLatch(1);
348+
AtomicReference<Throwable> errorRef = new AtomicReference<>();
354349
testing()
355-
.waitAndAssertTraces(
356-
trace ->
357-
trace.hasSpansSatisfyingExactly(
358-
span -> span.hasName(PARENT).hasKind(SpanKind.INTERNAL).hasNoParent(),
359-
span ->
360-
span.hasName(ADD_ONE)
361-
.hasKind(SpanKind.INTERNAL)
362-
.hasParent(trace.getSpan(0))));
350+
.runWithSpan(
351+
"parent",
352+
() -> {
353+
String traceId = Span.current().getSpanContext().getTraceId();
354+
355+
Disposable result =
356+
Observable.fromCallable(
357+
() -> {
358+
assertThat(traceId)
359+
.isEqualTo(Span.current().getSpanContext().getTraceId());
360+
return "success";
361+
})
362+
.subscribeOn(Schedulers.io())
363+
.observeOn(Schedulers.single())
364+
.doOnNext(
365+
data ->
366+
assertThat(traceId)
367+
.isEqualTo(Span.current().getSpanContext().getTraceId()))
368+
.subscribe(
369+
data -> countDownLatch.countDown(),
370+
error -> {
371+
errorRef.set(error);
372+
countDownLatch.countDown();
373+
});
374+
assertThat(result).isNotNull();
375+
});
376+
countDownLatch.await();
377+
if (errorRef.get() != null) {
378+
throw new AssertionError("Assertion failed in observable thread", errorRef.get());
379+
}
380+
testing().waitForTraces(1);
363381
}
364382

365-
366383
@Test
367384
public void connectableFlowable() {
368385
List<Integer> result =
@@ -804,27 +821,6 @@ public void observableChainHasSubscriptionContext() {
804821
.hasParent(trace.getSpan(0))));
805822
}
806823

807-
@Test
808-
public void basicObservableFromCallableTest() {
809-
Disposable disposable = Observable.fromCallable(() -> "success")
810-
.onErrorReturnItem("")
811-
.subscribeOn(Schedulers.io())
812-
.observeOn(Schedulers.single())
813-
.subscribe(data -> System.out.print("done"));
814-
815-
assertThat(disposable).isNotNull();
816-
817-
testing()
818-
.waitAndAssertTraces(
819-
trace ->
820-
trace.hasSpansSatisfyingExactly(
821-
span -> span.hasName(PARENT).hasKind(SpanKind.INTERNAL).hasNoParent(),
822-
span ->
823-
span.hasName(ADD_ONE)
824-
.hasKind(SpanKind.INTERNAL)
825-
.hasParent(trace.getSpan(0))));
826-
}
827-
828824
@MethodSource("schedulers")
829825
@ParameterizedTest
830826
public void flowableMultiResults(Scheduler scheduler) {

0 commit comments

Comments
 (0)