Add tests and update behavior to verify propagators do not alter the … (#3194)

* Add tests and update behavior to verify propagators do not alter the context when failing to parse inputs.

* Ad a couple tests around null contexts

* formatting
This commit is contained in:
John Watson 2021-05-06 16:58:42 -07:00 committed by GitHub
parent 2a002f20fa
commit a8a85c6129
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 163 additions and 133 deletions

View File

@ -78,14 +78,14 @@ public final class W3CBaggagePropagator implements TextMapPropagator {
return context;
}
if (baggageHeader.isEmpty()) {
return context.with(Baggage.empty());
return context;
}
BaggageBuilder baggageBuilder = Baggage.builder();
try {
extractEntries(baggageHeader, baggageBuilder);
} catch (RuntimeException e) {
return context.with(Baggage.empty());
return context;
}
return context.with(baggageBuilder.build());
}

View File

@ -136,23 +136,20 @@ class W3CBaggagePropagatorTest {
assertThat(Baggage.fromContext(result)).isEqualTo(expectedBaggage);
}
/**
* It would be cool if we could replace this with a fuzzer to generate tons of crud data, to make
* sure we don't blow up with it.
*/
@Test
void extract_invalidHeader() {
W3CBaggagePropagator propagator = W3CBaggagePropagator.getInstance();
Context input = Context.current();
Context result =
propagator.extract(
Context.root(),
input,
ImmutableMap.of(
"baggage",
"key1= v;alsdf;-asdflkjasdf===asdlfkjadsf ,,a sdf9asdf-alue1; metadata-key = "
+ "value; othermetadata, key2 =value2 , key3 =\tvalue3 ; "),
getter);
assertThat(result).isSameAs(input);
assertThat(Baggage.fromContext(result)).isEqualTo(Baggage.empty());
}

View File

@ -298,42 +298,42 @@ class W3CTraceContextPropagatorTest {
void extract_EmptyHeader() {
Map<String, String> invalidHeaders = new LinkedHashMap<>();
invalidHeaders.put(W3CTraceContextPropagator.TRACE_PARENT, "");
assertThat(
getSpanContext(
w3cTraceContextPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
void extract_invalidDelimiters() {
Map<String, String> carrier = new LinkedHashMap<>();
Context input = Context.current();
Context result;
carrier.put(
W3CTraceContextPropagator.TRACE_PARENT,
"01+" + TRACE_ID_BASE16 + "-" + SPAN_ID_BASE16 + "-00-02");
assertThat(
getSpanContext(w3cTraceContextPropagator.extract(Context.current(), carrier, getter)))
.isEqualTo(SpanContext.getInvalid());
result = w3cTraceContextPropagator.extract(input, carrier, getter);
assertThat(result).isSameAs(input);
assertThat(getSpanContext(result)).isEqualTo(SpanContext.getInvalid());
carrier.put(
W3CTraceContextPropagator.TRACE_PARENT,
"01-" + TRACE_ID_BASE16 + "+" + SPAN_ID_BASE16 + "-00-02");
assertThat(
getSpanContext(w3cTraceContextPropagator.extract(Context.current(), carrier, getter)))
.isEqualTo(SpanContext.getInvalid());
result = w3cTraceContextPropagator.extract(input, carrier, getter);
assertThat(result).isSameAs(input);
assertThat(getSpanContext(result)).isEqualTo(SpanContext.getInvalid());
carrier.put(
W3CTraceContextPropagator.TRACE_PARENT,
"01-" + TRACE_ID_BASE16 + "-" + SPAN_ID_BASE16 + "+00-02");
assertThat(
getSpanContext(w3cTraceContextPropagator.extract(Context.current(), carrier, getter)))
.isEqualTo(SpanContext.getInvalid());
result = w3cTraceContextPropagator.extract(input, carrier, getter);
assertThat(result).isSameAs(input);
assertThat(getSpanContext(result)).isEqualTo(SpanContext.getInvalid());
carrier.put(
W3CTraceContextPropagator.TRACE_PARENT,
"01-" + TRACE_ID_BASE16 + "-" + SPAN_ID_BASE16 + "-00+02");
assertThat(
getSpanContext(w3cTraceContextPropagator.extract(Context.current(), carrier, getter)))
.isEqualTo(SpanContext.getInvalid());
result = w3cTraceContextPropagator.extract(input, carrier, getter);
assertThat(result).isSameAs(input);
assertThat(getSpanContext(result)).isEqualTo(SpanContext.getInvalid());
}
@Test
@ -342,10 +342,7 @@ class W3CTraceContextPropagatorTest {
invalidHeaders.put(
W3CTraceContextPropagator.TRACE_PARENT,
"00-" + "abcdefghijklmnopabcdefghijklmnop" + "-" + SPAN_ID_BASE16 + "-01");
assertThat(
getSpanContext(
w3cTraceContextPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -354,10 +351,7 @@ class W3CTraceContextPropagatorTest {
invalidHeaders.put(
W3CTraceContextPropagator.TRACE_PARENT,
"00-" + TRACE_ID_BASE16 + "00-" + SPAN_ID_BASE16 + "-01");
assertThat(
getSpanContext(
w3cTraceContextPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -366,10 +360,7 @@ class W3CTraceContextPropagatorTest {
invalidHeaders.put(
W3CTraceContextPropagator.TRACE_PARENT,
"00-" + TRACE_ID_BASE16 + "-" + "abcdefghijklmnop" + "-01");
assertThat(
getSpanContext(
w3cTraceContextPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -378,10 +369,7 @@ class W3CTraceContextPropagatorTest {
invalidHeaders.put(
W3CTraceContextPropagator.TRACE_PARENT,
"00-" + TRACE_ID_BASE16 + "-" + SPAN_ID_BASE16 + "00-01");
assertThat(
getSpanContext(
w3cTraceContextPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -390,10 +378,7 @@ class W3CTraceContextPropagatorTest {
invalidHeaders.put(
W3CTraceContextPropagator.TRACE_PARENT,
"00-" + TRACE_ID_BASE16 + "-" + SPAN_ID_BASE16 + "-gh");
assertThat(
getSpanContext(
w3cTraceContextPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -402,10 +387,14 @@ class W3CTraceContextPropagatorTest {
invalidHeaders.put(
W3CTraceContextPropagator.TRACE_PARENT,
"00-" + TRACE_ID_BASE16 + "-" + SPAN_ID_BASE16 + "-0100");
assertThat(
getSpanContext(
w3cTraceContextPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
private void verifyInvalidBehavior(Map<String, String> invalidHeaders) {
Context input = Context.current();
Context result = w3cTraceContextPropagator.extract(input, invalidHeaders, getter);
assertThat(result).isSameAs(input);
assertThat(getSpanContext(result)).isSameAs(SpanContext.getInvalid());
}
@Test
@ -474,10 +463,7 @@ class W3CTraceContextPropagatorTest {
invalidHeaders.put(
W3CTraceContextPropagator.TRACE_PARENT,
"ff-" + TRACE_ID_BASE16 + "-" + SPAN_ID_BASE16 + "-01");
assertThat(
getSpanContext(
w3cTraceContextPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -486,10 +472,7 @@ class W3CTraceContextPropagatorTest {
invalidHeaders.put(
W3CTraceContextPropagator.TRACE_PARENT,
"00-" + TRACE_ID_BASE16 + "-" + SPAN_ID_BASE16 + "-00-01");
assertThat(
getSpanContext(
w3cTraceContextPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test

View File

@ -93,6 +93,19 @@ class MultiTextMapPropagatorTest {
verify(propagator3).inject(context, carrier, setter);
}
@Test
void inject_nullContextAllDelegated() {
Map<String, String> carrier = new HashMap<>();
Context context = null;
TextMapSetter<Map<String, String>> setter = Map::put;
TextMapPropagator prop = new MultiTextMapPropagator(propagator1, propagator2, propagator3);
prop.inject(context, carrier, setter);
verify(propagator1).inject(context, carrier, setter);
verify(propagator2).inject(context, carrier, setter);
verify(propagator3).inject(context, carrier, setter);
}
@Test
void extract_noPropagators() {
Map<String, String> carrier = new HashMap<>();
@ -121,7 +134,6 @@ class MultiTextMapPropagatorTest {
@Test
void extract_notFound() {
Map<String, String> carrier = new HashMap<>();
Context context = mock(Context.class);
when(propagator1.extract(context, carrier, getter)).thenReturn(context);
@ -132,4 +144,17 @@ class MultiTextMapPropagatorTest {
assertThat(result).isSameAs(context);
}
@Test
void extract_nullContext() {
Map<String, String> carrier = new HashMap<>();
Context context = null;
when(propagator1.extract(context, carrier, getter)).thenReturn(context);
when(propagator2.extract(context, carrier, getter)).thenReturn(context);
TextMapPropagator prop = new MultiTextMapPropagator(propagator1, propagator2);
Context result = prop.extract(context, carrier, getter);
assertThat(result).isSameAs(context);
}
}

View File

@ -7,6 +7,9 @@ package io.opentelemetry.context.propagation;
import static org.assertj.core.api.Assertions.assertThat;
import io.opentelemetry.context.Context;
import java.util.HashMap;
import javax.annotation.Nullable;
import org.junit.jupiter.api.Test;
class NoopTextMapPropagatorTest {
@ -15,4 +18,34 @@ class NoopTextMapPropagatorTest {
void noopFields() {
assertThat(TextMapPropagator.noop().fields()).isEmpty();
}
@Test
void extract_contextUnchanged() {
Context input = Context.current();
Context result =
TextMapPropagator.noop().extract(input, new HashMap<>(), new HashMapTextMapGetter());
assertThat(result).isSameAs(input);
}
@Test
void extract_nullContext() {
Context input = null;
Context result =
TextMapPropagator.noop().extract(input, new HashMap<>(), new HashMapTextMapGetter());
assertThat(result).isSameAs(input);
}
private static class HashMapTextMapGetter
implements TextMapGetter<HashMap<? extends Object, ? extends Object>> {
@Override
public Iterable<String> keys(HashMap<?, ?> carrier) {
return null;
}
@Nullable
@Override
public String get(@Nullable HashMap<?, ?> carrier, String key) {
return null;
}
}
}

View File

@ -233,8 +233,9 @@ public final class AwsXrayPropagator implements TextMapPropagator {
spanId,
isSampled ? TraceFlags.getSampled() : TraceFlags.getDefault(),
TraceState.getDefault());
context = context.with(Span.wrap(spanContext));
if (spanContext.isValid()) {
context = context.with(Span.wrap(spanContext));
}
if (baggage != null) {
context = context.with(baggage.build());
}

View File

@ -273,8 +273,7 @@ class AwsXrayPropagatorTest {
Map<String, String> invalidHeaders = new LinkedHashMap<>();
invalidHeaders.put(TRACE_HEADER_KEY, "");
assertThat(getSpanContext(xrayPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -284,8 +283,7 @@ class AwsXrayPropagatorTest {
TRACE_HEADER_KEY,
"Root=abcdefghijklmnopabcdefghijklmnop;Parent=53995c3f42cd8ad8;Sampled=0");
assertThat(getSpanContext(xrayPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -295,8 +293,7 @@ class AwsXrayPropagatorTest {
TRACE_HEADER_KEY,
"Root=1-8a3c60f7-d188f8fa79d48a391a778fa600;Parent=53995c3f42cd8ad8;Sampled=0");
assertThat(getSpanContext(xrayPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -306,8 +303,7 @@ class AwsXrayPropagatorTest {
TRACE_HEADER_KEY,
"Root=1-8a3c60f7-d188f8fa79d48a391a778fa6;Parent=abcdefghijklmnop;Sampled=0");
assertThat(getSpanContext(xrayPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -317,8 +313,7 @@ class AwsXrayPropagatorTest {
TRACE_HEADER_KEY,
"Root=1-8a3c60f7-d188f8fa79d48a391a778fa6;Parent=53995c3f42cd8ad800;Sampled=0");
assertThat(getSpanContext(xrayPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -328,8 +323,7 @@ class AwsXrayPropagatorTest {
TRACE_HEADER_KEY,
"Root=1-8a3c60f7-d188f8fa79d48a391a778fa6;Parent=53995c3f42cd8ad8;Sampled=");
assertThat(getSpanContext(xrayPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -339,8 +333,7 @@ class AwsXrayPropagatorTest {
TRACE_HEADER_KEY,
"Root=1-8a3c60f7-d188f8fa79d48a391a778fa6;Parent=53995c3f42cd8ad8;Sampled=10220");
assertThat(getSpanContext(xrayPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -350,8 +343,14 @@ class AwsXrayPropagatorTest {
TRACE_HEADER_KEY,
"Root=1-8a3c60f7-d188f8fa79d48a391a778fa6;Parent=53995c3f42cd8ad8;Sampled=a");
assertThat(getSpanContext(xrayPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
private void verifyInvalidBehavior(Map<String, String> invalidHeaders) {
Context input = Context.current();
Context result = xrayPropagator.extract(input, invalidHeaders, getter);
assertThat(result).isSameAs(input);
assertThat(getSpanContext(result)).isSameAs(SpanContext.getInvalid());
}
@Test

View File

@ -234,8 +234,7 @@ class B3PropagatorTest {
invalidHeaders.put(B3Propagator.TRACE_ID_HEADER, "g" + TRACE_ID.substring(1));
invalidHeaders.put(B3Propagator.SPAN_ID_HEADER, SPAN_ID);
invalidHeaders.put(B3Propagator.SAMPLED_HEADER, Common.TRUE_INT);
assertThat(getSpanContext(b3Propagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -244,8 +243,7 @@ class B3PropagatorTest {
invalidHeaders.put(B3Propagator.TRACE_ID_HEADER, TRACE_ID.substring(2));
invalidHeaders.put(B3Propagator.SPAN_ID_HEADER, SPAN_ID);
invalidHeaders.put(B3Propagator.SAMPLED_HEADER, Common.TRUE_INT);
assertThat(getSpanContext(b3Propagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -254,8 +252,7 @@ class B3PropagatorTest {
invalidHeaders.put(B3Propagator.TRACE_ID_HEADER, TRACE_ID + "00");
invalidHeaders.put(B3Propagator.SPAN_ID_HEADER, SPAN_ID);
invalidHeaders.put(B3Propagator.SAMPLED_HEADER, Common.TRUE_INT);
assertThat(getSpanContext(b3Propagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -264,8 +261,7 @@ class B3PropagatorTest {
invalidHeaders.put(B3Propagator.TRACE_ID_HEADER, TRACE_ID_ALL_ZERO);
invalidHeaders.put(B3Propagator.SPAN_ID_HEADER, SPAN_ID);
invalidHeaders.put(B3Propagator.SAMPLED_HEADER, Common.TRUE_INT);
assertThat(getSpanContext(b3Propagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -274,8 +270,7 @@ class B3PropagatorTest {
invalidHeaders.put(B3Propagator.TRACE_ID_HEADER, TRACE_ID);
invalidHeaders.put(B3Propagator.SPAN_ID_HEADER, "g" + SPAN_ID.substring(1));
invalidHeaders.put(B3Propagator.SAMPLED_HEADER, Common.TRUE_INT);
assertThat(getSpanContext(b3Propagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -284,8 +279,7 @@ class B3PropagatorTest {
invalidHeaders.put(B3Propagator.TRACE_ID_HEADER, TRACE_ID);
invalidHeaders.put(B3Propagator.SPAN_ID_HEADER, SPAN_ID.substring(2));
invalidHeaders.put(B3Propagator.SAMPLED_HEADER, Common.TRUE_INT);
assertThat(getSpanContext(b3Propagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -294,8 +288,7 @@ class B3PropagatorTest {
invalidHeaders.put(B3Propagator.TRACE_ID_HEADER, TRACE_ID);
invalidHeaders.put(B3Propagator.SPAN_ID_HEADER, SPAN_ID + "00");
invalidHeaders.put(B3Propagator.SAMPLED_HEADER, Common.TRUE_INT);
assertThat(getSpanContext(b3Propagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -304,8 +297,7 @@ class B3PropagatorTest {
invalidHeaders.put(B3Propagator.TRACE_ID_HEADER, TRACE_ID);
invalidHeaders.put(B3Propagator.SPAN_ID_HEADER, SPAN_ID_ALL_ZERO);
invalidHeaders.put(B3Propagator.SAMPLED_HEADER, Common.TRUE_INT);
assertThat(getSpanContext(b3Propagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -481,8 +473,14 @@ class B3PropagatorTest {
Map<String, String> invalidHeaders = new LinkedHashMap<>();
invalidHeaders.put(B3Propagator.COMBINED_HEADER, null);
assertThat(getSpanContext(b3Propagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
private void verifyInvalidBehavior(Map<String, String> invalidHeaders) {
Context input = Context.current();
Context extractedContext = b3Propagator.extract(input, invalidHeaders, getter);
assertThat(extractedContext).isSameAs(input);
assertThat(getSpanContext(extractedContext)).isSameAs(SpanContext.getInvalid());
}
@Test
@ -490,8 +488,7 @@ class B3PropagatorTest {
Map<String, String> invalidHeaders = new LinkedHashMap<>();
invalidHeaders.put(B3Propagator.COMBINED_HEADER, "");
assertThat(getSpanContext(b3Propagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -501,8 +498,7 @@ class B3PropagatorTest {
B3Propagator.COMBINED_HEADER,
"abcdefghijklmnopabcdefghijklmnop" + "-" + SPAN_ID + "-" + Common.TRUE_INT);
assertThat(getSpanContext(b3Propagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -512,8 +508,7 @@ class B3PropagatorTest {
B3Propagator.COMBINED_HEADER,
"abcdefghijklmnopabcdefghijklmnop" + "00" + "-" + SPAN_ID + "-" + Common.TRUE_INT);
assertThat(getSpanContext(b3Propagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -522,8 +517,7 @@ class B3PropagatorTest {
invalidHeaders.put(
B3Propagator.COMBINED_HEADER, TRACE_ID + "-" + "abcdefghijklmnop" + "-" + Common.TRUE_INT);
assertThat(getSpanContext(b3Propagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -533,8 +527,7 @@ class B3PropagatorTest {
B3Propagator.COMBINED_HEADER,
TRACE_ID + "-" + "abcdefghijklmnop" + "00" + "-" + Common.TRUE_INT);
assertThat(getSpanContext(b3Propagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -542,8 +535,7 @@ class B3PropagatorTest {
Map<String, String> invalidHeaders = new LinkedHashMap<>();
invalidHeaders.put(B3Propagator.COMBINED_HEADER, TRACE_ID);
assertThat(getSpanContext(b3Propagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -552,8 +544,7 @@ class B3PropagatorTest {
invalidHeaders.put(
B3Propagator.COMBINED_HEADER,
TRACE_ID + "-" + SPAN_ID + "-" + Common.TRUE_INT + "-extra-extra");
assertThat(getSpanContext(b3Propagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test

View File

@ -213,8 +213,14 @@ class JaegerPropagatorTest {
Map<String, String> invalidHeaders = new LinkedHashMap<>();
invalidHeaders.put(PROPAGATION_HEADER, "aa:bb:cc");
assertThat(getSpanContext(jaegerPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
private void verifyInvalidBehavior(Map<String, String> invalidHeaders) {
Context input = Context.current();
Context result = jaegerPropagator.extract(input, invalidHeaders, getter);
assertThat(result).isSameAs(input);
assertThat(getSpanContext(result)).isSameAs(SpanContext.getInvalid());
}
@Test
@ -222,8 +228,7 @@ class JaegerPropagatorTest {
Map<String, String> invalidHeaders = new LinkedHashMap<>();
invalidHeaders.put(PROPAGATION_HEADER, "aa:bb:cc:dd:ee");
assertThat(getSpanContext(jaegerPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -234,8 +239,7 @@ class JaegerPropagatorTest {
generateTraceIdHeaderValue(
"abcdefghijklmnopabcdefghijklmnop", SPAN_ID, DEPRECATED_PARENT_SPAN, "0"));
assertThat(getSpanContext(jaegerPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -245,8 +249,7 @@ class JaegerPropagatorTest {
PROPAGATION_HEADER,
generateTraceIdHeaderValue(TRACE_ID + "00", SPAN_ID, DEPRECATED_PARENT_SPAN, "0"));
assertThat(getSpanContext(jaegerPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -256,8 +259,7 @@ class JaegerPropagatorTest {
PROPAGATION_HEADER,
generateTraceIdHeaderValue(TRACE_ID, "abcdefghijklmnop", DEPRECATED_PARENT_SPAN, "0"));
assertThat(getSpanContext(jaegerPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -267,8 +269,7 @@ class JaegerPropagatorTest {
PROPAGATION_HEADER,
generateTraceIdHeaderValue(TRACE_ID, SPAN_ID + "00", DEPRECATED_PARENT_SPAN, "0"));
assertThat(getSpanContext(jaegerPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -278,8 +279,7 @@ class JaegerPropagatorTest {
PROPAGATION_HEADER,
generateTraceIdHeaderValue(TRACE_ID, SPAN_ID, DEPRECATED_PARENT_SPAN, ""));
assertThat(getSpanContext(jaegerPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -289,8 +289,7 @@ class JaegerPropagatorTest {
PROPAGATION_HEADER,
generateTraceIdHeaderValue(TRACE_ID, SPAN_ID, DEPRECATED_PARENT_SPAN, "10220"));
assertThat(getSpanContext(jaegerPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -300,8 +299,7 @@ class JaegerPropagatorTest {
PROPAGATION_HEADER,
generateTraceIdHeaderValue(TRACE_ID, SPAN_ID, DEPRECATED_PARENT_SPAN, "abcdefr"));
assertThat(getSpanContext(jaegerPropagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test

View File

@ -264,8 +264,7 @@ class OtTracePropagatorTest {
invalidHeaders.put(OtTracePropagator.TRACE_ID_HEADER, TRACE_ID + "00");
invalidHeaders.put(OtTracePropagator.SPAN_ID_HEADER, SPAN_ID);
invalidHeaders.put(OtTracePropagator.SAMPLED_HEADER, Common.TRUE_INT);
assertThat(getSpanContext(propagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -274,8 +273,7 @@ class OtTracePropagatorTest {
invalidHeaders.put(OtTracePropagator.TRACE_ID_HEADER, TRACE_ID);
invalidHeaders.put(OtTracePropagator.SPAN_ID_HEADER, "abcdefghijklmnop");
invalidHeaders.put(OtTracePropagator.SAMPLED_HEADER, Common.TRUE_INT);
assertThat(getSpanContext(propagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
@Test
@ -284,15 +282,20 @@ class OtTracePropagatorTest {
invalidHeaders.put(OtTracePropagator.TRACE_ID_HEADER, TRACE_ID);
invalidHeaders.put(OtTracePropagator.SPAN_ID_HEADER, "abcdefghijklmnop" + "00");
invalidHeaders.put(OtTracePropagator.SAMPLED_HEADER, Common.TRUE_INT);
assertThat(getSpanContext(propagator.extract(Context.current(), invalidHeaders, getter)))
.isSameAs(SpanContext.getInvalid());
verifyInvalidBehavior(invalidHeaders);
}
private void verifyInvalidBehavior(Map<String, String> invalidHeaders) {
Context input = Context.current();
Context result = propagator.extract(input, invalidHeaders, getter);
assertThat(result).isSameAs(input);
assertThat(getSpanContext(result)).isSameAs(SpanContext.getInvalid());
}
@Test
void extract_emptyCarrier() {
Map<String, String> emptyHeaders = new HashMap<>();
assertThat(getSpanContext(propagator.extract(Context.current(), emptyHeaders, getter)))
.isEqualTo(SpanContext.getInvalid());
verifyInvalidBehavior(emptyHeaders);
}
@Test