Skip to content

Commit 2ecd77d

Browse files
Fighting flakey tests
1 parent 85517c6 commit 2ecd77d

File tree

4 files changed

+12
-23
lines changed

4 files changed

+12
-23
lines changed

spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/messaging/TraceChannelInterceptorTests.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,11 @@
1818

1919
import java.util.HashMap;
2020
import java.util.Map;
21-
import java.util.concurrent.CountDownLatch;
2221
import java.util.concurrent.Executors;
2322
import java.util.concurrent.TimeUnit;
2423

24+
import org.assertj.core.api.BDDAssertions;
25+
import org.awaitility.Awaitility;
2526
import org.junit.After;
2627
import org.junit.Before;
2728
import org.junit.Test;
@@ -101,11 +102,8 @@ public class TraceChannelInterceptorTests implements MessageHandler {
101102

102103
private Span span;
103104

104-
private CountDownLatch latch = new CountDownLatch(1);
105-
106105
@Override
107106
public void handleMessage(Message<?> message) throws MessagingException {
108-
this.latch.countDown();
109107
this.message = message;
110108
this.span = TestSpanContextHolder.getCurrentSpan();
111109
if (message.getHeaders().containsKey("THROW_EXCEPTION")) {
@@ -147,8 +145,8 @@ public void nonExportableSpanCreation() {
147145
public void executableSpanCreation() throws Exception {
148146
this.executorChannel.send(MessageBuilder.withPayload("hi")
149147
.setHeader(TraceMessageHeaders.SAMPLED_NAME, Span.SPAN_NOT_SAMPLED).build());
150-
this.latch.await(1, TimeUnit.SECONDS);
151-
assertNotNull("message was null", this.message);
148+
Awaitility.await()
149+
.untilAsserted(() -> BDDAssertions.assertThat(this.message).isNotNull());
152150

153151
String spanId = this.message.getHeaders().get(TraceMessageHeaders.SPAN_ID_NAME, String.class);
154152
then(spanId).isNotNull();

spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/test/java/integration/MessagingApplicationTests.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,8 @@ private void thenAllSpansHaveTraceIdEqualTo(long traceId) {
113113
.collect(Collectors.joining("\n")) + "\n]");
114114
then(this.integrationTestSpanCollector.hashedSpans
115115
.stream()
116-
.filter(span -> !span.traceId().equals(traceIdHex))
116+
.filter(span ->
117+
org.springframework.cloud.sleuth.Span.hexToId(span.traceId()) != traceId)
117118
.collect(Collectors.toList()))
118119
.describedAs("All spans have same trace id [" + traceIdHex + "]")
119120
.isEmpty();

spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/src/main/java/tools/AbstractIntegrationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public void clearSpanAfter() {
5050

5151

5252
protected Runnable httpMessageWithTraceIdInHeadersIsSuccessfullySent(String endpoint, long traceId) {
53-
return new RequestSendingRunnable(this.restTemplate, endpoint, traceId, null);
53+
return new RequestSendingRunnable(this.restTemplate, endpoint, traceId, traceId);
5454
}
5555

5656
protected Runnable httpMessageWithTraceIdInHeadersIsSuccessfullySent(String endpoint, long traceId, Long spanId) {

spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin2/src/test/java/integration/ZipkinTests.java

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,18 @@
1515
*/
1616
package integration;
1717

18-
import integration.ZipkinTests.WaitUntilZipkinIsUpConfig;
1918
import java.util.ArrayList;
2019
import java.util.Collections;
2120
import java.util.List;
2221
import java.util.Objects;
2322
import java.util.Optional;
23+
import java.util.Random;
2424
import java.util.stream.Collectors;
25+
26+
import integration.ZipkinTests.WaitUntilZipkinIsUpConfig;
2527
import okhttp3.mockwebserver.MockResponse;
2628
import okhttp3.mockwebserver.MockWebServer;
2729
import okhttp3.mockwebserver.RecordedRequest;
28-
import sample.SampleZipkinApplication;
29-
import tools.AbstractIntegrationTest;
30-
31-
import java.net.URI;
32-
import java.util.Random;
33-
3430
import org.junit.ClassRule;
3531
import org.junit.Test;
3632
import org.junit.runner.RunWith;
@@ -43,6 +39,8 @@
4339
import org.springframework.context.annotation.Primary;
4440
import org.springframework.test.context.TestPropertySource;
4541
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
42+
import sample.SampleZipkinApplication;
43+
import tools.AbstractIntegrationTest;
4644
import zipkin2.Span;
4745
import zipkin2.codec.SpanBytesDecoder;
4846

@@ -62,14 +60,6 @@ public class ZipkinTests extends AbstractIntegrationTest {
6260
private String sampleAppUrl = "http://localhost:" + this.port;
6361
@Autowired ZipkinProperties zipkinProperties;
6462

65-
int getZipkinServerPort() {
66-
return getPortFromProps();
67-
}
68-
69-
private int getPortFromProps() {
70-
return URI.create(this.zipkinProperties.getBaseUrl()).getPort();
71-
}
72-
7363
@Test
7464
public void should_propagate_spans_to_zipkin() throws Exception {
7565
zipkin.enqueue(new MockResponse());

0 commit comments

Comments
 (0)