Skip to content

Commit d131d45

Browse files
committed
Fix flakyness in LoggingTransferListenerTest where LogCaptor captures logs from other parrallely running test cases
1 parent 70b7438 commit d131d45

File tree

1 file changed

+48
-39
lines changed

1 file changed

+48
-39
lines changed

Diff for: services-custom/s3-transfer-manager/src/test/java/software/amazon/awssdk/transfer/s3/progress/LoggingTransferListenerTest.java

+48-39
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.apache.logging.log4j.Level;
2323
import org.apache.logging.log4j.core.LogEvent;
2424
import org.junit.jupiter.api.BeforeEach;
25-
import org.junit.jupiter.api.Test;
25+
import org.junit.jupiter.api.RepeatedTest;
2626
import software.amazon.awssdk.testutils.LogCaptor;
2727

2828
import software.amazon.awssdk.transfer.s3.model.CompletedObjectTransfer;
@@ -31,7 +31,7 @@
3131
import software.amazon.awssdk.transfer.s3.internal.progress.DefaultTransferProgressSnapshot;
3232
import software.amazon.awssdk.transfer.s3.internal.progress.TransferListenerContext;
3333

34-
public class LoggingTransferListenerTest {
34+
class LoggingTransferListenerTest {
3535

3636
private static final long TRANSFER_SIZE_IN_BYTES = 1024L;
3737

@@ -53,53 +53,62 @@ public void setUp() throws Exception {
5353
listener = LoggingTransferListener.create();
5454
}
5555

56-
@Test
57-
public void test_defaultListener_successfulTransfer() {
56+
@RepeatedTest(2000)
57+
void test_defaultListener_successfulTransfer() {
5858
try (LogCaptor logCaptor = LogCaptor.create()) {
5959
invokeSuccessfulLifecycle();
6060
List<LogEvent> events = logCaptor.loggedEvents();
61-
assertLogged(events, Level.INFO, "Transfer initiated...");
62-
assertLogged(events, Level.INFO, "| | 0.0%");
63-
assertLogged(events, Level.INFO, "|= | 5.0%");
64-
assertLogged(events, Level.INFO, "|== | 10.0%");
65-
assertLogged(events, Level.INFO, "|=== | 15.0%");
66-
assertLogged(events, Level.INFO, "|==== | 20.0%");
67-
assertLogged(events, Level.INFO, "|===== | 25.0%");
68-
assertLogged(events, Level.INFO, "|====== | 30.0%");
69-
assertLogged(events, Level.INFO, "|======= | 35.0%");
70-
assertLogged(events, Level.INFO, "|======== | 40.0%");
71-
assertLogged(events, Level.INFO, "|========= | 45.0%");
72-
assertLogged(events, Level.INFO, "|========== | 50.0%");
73-
assertLogged(events, Level.INFO, "|=========== | 55.0%");
74-
assertLogged(events, Level.INFO, "|============ | 60.0%");
75-
assertLogged(events, Level.INFO, "|============= | 65.0%");
76-
assertLogged(events, Level.INFO, "|============== | 70.0%");
77-
assertLogged(events, Level.INFO, "|=============== | 75.0%");
78-
assertLogged(events, Level.INFO, "|================ | 80.0%");
79-
assertLogged(events, Level.INFO, "|================= | 85.0%");
80-
assertLogged(events, Level.INFO, "|================== | 90.0%");
81-
assertLogged(events, Level.INFO, "|=================== | 95.0%");
82-
assertLogged(events, Level.INFO, "|====================| 100.0%");
83-
assertLogged(events, Level.INFO, "Transfer complete!");
84-
assertThat(events).isEmpty();
61+
String loggerName = LoggingTransferListener.class.getName();
62+
List<LogEvent> filteredEvents = events.stream()
63+
.filter(e -> e.getLoggerName().equals(loggerName))
64+
.collect(java.util.stream.Collectors.toList());
65+
assertLogged(filteredEvents, Level.INFO, "Transfer initiated...");
66+
assertLogged(filteredEvents, Level.INFO, "| | 0.0%");
67+
assertLogged(filteredEvents, Level.INFO, "|= | 5.0%");
68+
assertLogged(filteredEvents, Level.INFO, "|== | 10.0%");
69+
assertLogged(filteredEvents, Level.INFO, "|=== | 15.0%");
70+
assertLogged(filteredEvents, Level.INFO, "|==== | 20.0%");
71+
assertLogged(filteredEvents, Level.INFO, "|===== | 25.0%");
72+
assertLogged(filteredEvents, Level.INFO, "|====== | 30.0%");
73+
assertLogged(filteredEvents, Level.INFO, "|======= | 35.0%");
74+
assertLogged(filteredEvents, Level.INFO, "|======== | 40.0%");
75+
assertLogged(filteredEvents, Level.INFO, "|========= | 45.0%");
76+
assertLogged(filteredEvents, Level.INFO, "|========== | 50.0%");
77+
assertLogged(filteredEvents, Level.INFO, "|=========== | 55.0%");
78+
assertLogged(filteredEvents, Level.INFO, "|============ | 60.0%");
79+
assertLogged(filteredEvents, Level.INFO, "|============= | 65.0%");
80+
assertLogged(filteredEvents, Level.INFO, "|============== | 70.0%");
81+
assertLogged(filteredEvents, Level.INFO, "|=============== | 75.0%");
82+
assertLogged(filteredEvents, Level.INFO, "|================ | 80.0%");
83+
assertLogged(filteredEvents, Level.INFO, "|================= | 85.0%");
84+
assertLogged(filteredEvents, Level.INFO, "|================== | 90.0%");
85+
assertLogged(filteredEvents, Level.INFO, "|=================== | 95.0%");
86+
assertLogged(filteredEvents, Level.INFO, "|====================| 100.0%");
87+
assertLogged(filteredEvents, Level.INFO, "Transfer complete!");
88+
assertThat(filteredEvents).isEmpty();
8589
}
8690
}
8791

88-
@Test
89-
public void test_customTicksListener_successfulTransfer() {
92+
@RepeatedTest(20000)
93+
void test_customTicksListener_successfulTransfer() {
9094
try (LogCaptor logCaptor = LogCaptor.create()) {
9195
listener = LoggingTransferListener.create(5);
9296
invokeSuccessfulLifecycle();
9397
List<LogEvent> events = logCaptor.loggedEvents();
94-
assertLogged(events, Level.INFO, "Transfer initiated...");
95-
assertLogged(events, Level.INFO, "| | 0.0%");
96-
assertLogged(events, Level.INFO, "|= | 20.0%");
97-
assertLogged(events, Level.INFO, "|== | 40.0%");
98-
assertLogged(events, Level.INFO, "|=== | 60.0%");
99-
assertLogged(events, Level.INFO, "|==== | 80.0%");
100-
assertLogged(events, Level.INFO, "|=====| 100.0%");
101-
assertLogged(events, Level.INFO, "Transfer complete!");
102-
assertThat(events).isEmpty();
98+
String loggerName = LoggingTransferListener.class.getName();
99+
List<LogEvent> filteredEvents = events.stream()
100+
.filter(e -> e.getLoggerName().equals(loggerName))
101+
.collect(java.util.stream.Collectors.toList());
102+
103+
assertLogged(filteredEvents, Level.INFO, "Transfer initiated...");
104+
assertLogged(filteredEvents, Level.INFO, "| | 0.0%");
105+
assertLogged(filteredEvents, Level.INFO, "|= | 20.0%");
106+
assertLogged(filteredEvents, Level.INFO, "|== | 40.0%");
107+
assertLogged(filteredEvents, Level.INFO, "|=== | 60.0%");
108+
assertLogged(filteredEvents, Level.INFO, "|==== | 80.0%");
109+
assertLogged(filteredEvents, Level.INFO, "|=====| 100.0%");
110+
assertLogged(filteredEvents, Level.INFO, "Transfer complete!");
111+
assertThat(filteredEvents).isEmpty();
103112
}
104113
}
105114

0 commit comments

Comments
 (0)