mirror of
https://github.com/google/nomulus.git
synced 2025-06-26 14:24:55 +02:00
Make the ReadDnsQueueAction tests retry on failures (#1114)
These tests are flaky due to some kind of contention/collision on the mock task queue. Retrying seems to fix the vast majority of flakes, is easy to implement, and is more performant than moving these tests into the fragileTests test suite.
This commit is contained in:
parent
258e5d8cb4
commit
9598d03ee3
1 changed files with 16 additions and 16 deletions
|
@ -57,8 +57,8 @@ import java.util.stream.IntStream;
|
||||||
import org.joda.time.DateTime;
|
import org.joda.time.DateTime;
|
||||||
import org.joda.time.Duration;
|
import org.joda.time.Duration;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
import org.junit.jupiter.api.extension.RegisterExtension;
|
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||||
|
import org.junitpioneer.jupiter.RetryingTest;
|
||||||
|
|
||||||
/** Unit tests for {@link ReadDnsQueueAction}. */
|
/** Unit tests for {@link ReadDnsQueueAction}. */
|
||||||
public class ReadDnsQueueActionTest {
|
public class ReadDnsQueueActionTest {
|
||||||
|
@ -167,7 +167,7 @@ public class ReadDnsQueueActionTest {
|
||||||
.header("content-type", "application/x-www-form-urlencoded")));
|
.header("content-type", "application/x-www-form-urlencoded")));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@RetryingTest(4)
|
||||||
void testSuccess_methodPostIsDefault() {
|
void testSuccess_methodPostIsDefault() {
|
||||||
dnsQueue.addDomainRefreshTask("domain.com");
|
dnsQueue.addDomainRefreshTask("domain.com");
|
||||||
dnsQueue.addDomainRefreshTask("domain.net");
|
dnsQueue.addDomainRefreshTask("domain.net");
|
||||||
|
@ -183,7 +183,7 @@ public class ReadDnsQueueActionTest {
|
||||||
new TaskMatcher().method("POST"));
|
new TaskMatcher().method("POST"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@RetryingTest(4)
|
||||||
void testSuccess_allSingleLockTlds() {
|
void testSuccess_allSingleLockTlds() {
|
||||||
dnsQueue.addDomainRefreshTask("domain.com");
|
dnsQueue.addDomainRefreshTask("domain.com");
|
||||||
dnsQueue.addDomainRefreshTask("domain.net");
|
dnsQueue.addDomainRefreshTask("domain.net");
|
||||||
|
@ -196,7 +196,7 @@ public class ReadDnsQueueActionTest {
|
||||||
ImmutableMultimap.of("com", "comWriter", "net", "netWriter", "example", "exampleWriter"));
|
ImmutableMultimap.of("com", "comWriter", "net", "netWriter", "example", "exampleWriter"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@RetryingTest(4)
|
||||||
void testSuccess_moreUpdatesThanQueueBatchSize() {
|
void testSuccess_moreUpdatesThanQueueBatchSize() {
|
||||||
// The task queue has a batch size of 1000 (that's the maximum number of items you can lease at
|
// The task queue has a batch size of 1000 (that's the maximum number of items you can lease at
|
||||||
// once).
|
// once).
|
||||||
|
@ -222,7 +222,7 @@ public class ReadDnsQueueActionTest {
|
||||||
.containsExactlyElementsIn(domains);
|
.containsExactlyElementsIn(domains);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@RetryingTest(4)
|
||||||
void testSuccess_twoDnsWriters() {
|
void testSuccess_twoDnsWriters() {
|
||||||
persistResource(
|
persistResource(
|
||||||
Registry.get("com")
|
Registry.get("com")
|
||||||
|
@ -237,7 +237,7 @@ public class ReadDnsQueueActionTest {
|
||||||
assertTldsEnqueuedInPushQueue(ImmutableMultimap.of("com", "comWriter", "com", "otherWriter"));
|
assertTldsEnqueuedInPushQueue(ImmutableMultimap.of("com", "comWriter", "com", "otherWriter"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@RetryingTest(4)
|
||||||
void testSuccess_differentUpdateTimes_usesMinimum() {
|
void testSuccess_differentUpdateTimes_usesMinimum() {
|
||||||
clock.setTo(DateTime.parse("3000-02-03TZ"));
|
clock.setTo(DateTime.parse("3000-02-03TZ"));
|
||||||
dnsQueue.addDomainRefreshTask("domain1.com");
|
dnsQueue.addDomainRefreshTask("domain1.com");
|
||||||
|
@ -262,7 +262,7 @@ public class ReadDnsQueueActionTest {
|
||||||
"numPublishLocks", "1");
|
"numPublishLocks", "1");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@RetryingTest(4)
|
||||||
void testSuccess_oneTldPaused_returnedToQueue() {
|
void testSuccess_oneTldPaused_returnedToQueue() {
|
||||||
persistResource(Registry.get("net").asBuilder().setDnsPaused(true).build());
|
persistResource(Registry.get("net").asBuilder().setDnsPaused(true).build());
|
||||||
dnsQueue.addDomainRefreshTask("domain.com");
|
dnsQueue.addDomainRefreshTask("domain.com");
|
||||||
|
@ -276,7 +276,7 @@ public class ReadDnsQueueActionTest {
|
||||||
ImmutableMultimap.of("com", "comWriter", "example", "exampleWriter"));
|
ImmutableMultimap.of("com", "comWriter", "example", "exampleWriter"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@RetryingTest(4)
|
||||||
void testSuccess_oneTldUnknown_returnedToQueue() {
|
void testSuccess_oneTldUnknown_returnedToQueue() {
|
||||||
dnsQueue.addDomainRefreshTask("domain.com");
|
dnsQueue.addDomainRefreshTask("domain.com");
|
||||||
dnsQueue.addDomainRefreshTask("domain.example");
|
dnsQueue.addDomainRefreshTask("domain.example");
|
||||||
|
@ -296,7 +296,7 @@ public class ReadDnsQueueActionTest {
|
||||||
ImmutableMultimap.of("com", "comWriter", "example", "exampleWriter"));
|
ImmutableMultimap.of("com", "comWriter", "example", "exampleWriter"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@RetryingTest(4)
|
||||||
void testSuccess_corruptTaskTldMismatch_published() {
|
void testSuccess_corruptTaskTldMismatch_published() {
|
||||||
// TODO(mcilwain): what's the correct action to take in this case?
|
// TODO(mcilwain): what's the correct action to take in this case?
|
||||||
dnsQueue.addDomainRefreshTask("domain.com");
|
dnsQueue.addDomainRefreshTask("domain.com");
|
||||||
|
@ -317,7 +317,7 @@ public class ReadDnsQueueActionTest {
|
||||||
ImmutableMultimap.of("com", "comWriter", "example", "exampleWriter", "net", "netWriter"));
|
ImmutableMultimap.of("com", "comWriter", "example", "exampleWriter", "net", "netWriter"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@RetryingTest(4)
|
||||||
void testSuccess_corruptTaskNoTld_discarded() {
|
void testSuccess_corruptTaskNoTld_discarded() {
|
||||||
dnsQueue.addDomainRefreshTask("domain.com");
|
dnsQueue.addDomainRefreshTask("domain.com");
|
||||||
dnsQueue.addDomainRefreshTask("domain.example");
|
dnsQueue.addDomainRefreshTask("domain.example");
|
||||||
|
@ -336,7 +336,7 @@ public class ReadDnsQueueActionTest {
|
||||||
ImmutableMultimap.of("com", "comWriter", "example", "exampleWriter"));
|
ImmutableMultimap.of("com", "comWriter", "example", "exampleWriter"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@RetryingTest(4)
|
||||||
void testSuccess_corruptTaskNoName_discarded() {
|
void testSuccess_corruptTaskNoName_discarded() {
|
||||||
dnsQueue.addDomainRefreshTask("domain.com");
|
dnsQueue.addDomainRefreshTask("domain.com");
|
||||||
dnsQueue.addDomainRefreshTask("domain.example");
|
dnsQueue.addDomainRefreshTask("domain.example");
|
||||||
|
@ -355,7 +355,7 @@ public class ReadDnsQueueActionTest {
|
||||||
ImmutableMultimap.of("com", "comWriter", "example", "exampleWriter"));
|
ImmutableMultimap.of("com", "comWriter", "example", "exampleWriter"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@RetryingTest(4)
|
||||||
void testSuccess_corruptTaskNoType_discarded() {
|
void testSuccess_corruptTaskNoType_discarded() {
|
||||||
dnsQueue.addDomainRefreshTask("domain.com");
|
dnsQueue.addDomainRefreshTask("domain.com");
|
||||||
dnsQueue.addDomainRefreshTask("domain.example");
|
dnsQueue.addDomainRefreshTask("domain.example");
|
||||||
|
@ -374,7 +374,7 @@ public class ReadDnsQueueActionTest {
|
||||||
ImmutableMultimap.of("com", "comWriter", "example", "exampleWriter"));
|
ImmutableMultimap.of("com", "comWriter", "example", "exampleWriter"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@RetryingTest(4)
|
||||||
void testSuccess_corruptTaskWrongType_discarded() {
|
void testSuccess_corruptTaskWrongType_discarded() {
|
||||||
dnsQueue.addDomainRefreshTask("domain.com");
|
dnsQueue.addDomainRefreshTask("domain.com");
|
||||||
dnsQueue.addDomainRefreshTask("domain.example");
|
dnsQueue.addDomainRefreshTask("domain.example");
|
||||||
|
@ -394,7 +394,7 @@ public class ReadDnsQueueActionTest {
|
||||||
ImmutableMultimap.of("com", "comWriter", "example", "exampleWriter"));
|
ImmutableMultimap.of("com", "comWriter", "example", "exampleWriter"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@RetryingTest(4)
|
||||||
void testSuccess_zone_getsIgnored() {
|
void testSuccess_zone_getsIgnored() {
|
||||||
dnsQueue.addHostRefreshTask("ns1.domain.com");
|
dnsQueue.addHostRefreshTask("ns1.domain.com");
|
||||||
dnsQueue.addDomainRefreshTask("domain.net");
|
dnsQueue.addDomainRefreshTask("domain.net");
|
||||||
|
@ -415,7 +415,7 @@ public class ReadDnsQueueActionTest {
|
||||||
.collect(Collectors.joining(","));
|
.collect(Collectors.joining(","));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@RetryingTest(4)
|
||||||
void testSuccess_manyDomainsAndHosts() {
|
void testSuccess_manyDomainsAndHosts() {
|
||||||
for (int i = 0; i < 150; i++) {
|
for (int i = 0; i < 150; i++) {
|
||||||
// 0: domain; 1: host 1; 2: host 2
|
// 0: domain; 1: host 1; 2: host 2
|
||||||
|
@ -486,7 +486,7 @@ public class ReadDnsQueueActionTest {
|
||||||
.param("hosts", makeCommaSeparatedRange(100, 150, "ns2.domain%04d.net")));
|
.param("hosts", makeCommaSeparatedRange(100, 150, "ns2.domain%04d.net")));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@RetryingTest(4)
|
||||||
void testSuccess_lockGroupsHostBySuperordinateDomain() {
|
void testSuccess_lockGroupsHostBySuperordinateDomain() {
|
||||||
dnsQueue.addDomainRefreshTask("hello.multilock.uk");
|
dnsQueue.addDomainRefreshTask("hello.multilock.uk");
|
||||||
dnsQueue.addHostRefreshTask("ns1.abc.hello.multilock.uk");
|
dnsQueue.addHostRefreshTask("ns1.abc.hello.multilock.uk");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue