func waitForCount(t *testing.T, num int) {
var numQueued int
- // Wait for 3 seconds to hit the queue.
- timeout := time.Now().Add(3 * time.Second)
+ // Wait for up to 10 seconds for the queue to be impacted.
+ timeout := time.Now().Add(10 * time.Second)
for {
numQueued = len(archiveInProgress)
if numQueued == num || time.Now().After(timeout) {
numQueued = len(archiveInProgress)
- // Release one, then wait up to 3 seconds for it to complete.
+ // Release one, then wait up to 10 seconds for it to complete.
queueMutex.Lock()
archiveQueueReleaseCond.Signal()
queueMutex.Unlock()
- timeout := time.Now().Add(3 * time.Second)
+ timeout := time.Now().Add(10 * time.Second)
for {
nowQueued = len(archiveInProgress)
if nowQueued != numQueued || time.Now().After(timeout) {
}
// Make sure we didn't just timeout.
- assert.NotEqual(t, nowQueued, numQueued)
+ assert.NotEqual(t, numQueued, nowQueued)
// Also make sure that we released only one.
- assert.Equal(t, nowQueued, numQueued-1)
+ assert.Equal(t, numQueued-1, nowQueued)
}
func TestArchive_Basic(t *testing.T) {
archiveQueueStartCond.Broadcast()
queueMutex.Unlock()
- // 8 second timeout for them all to complete.
- timeout := time.Now().Add(8 * time.Second)
+ // 10 second timeout for them all to complete.
+ timeout := time.Now().Add(10 * time.Second)
for {
if allComplete(inFlight) || time.Now().After(timeout) {
break
ArchiveRepository(zipReq2)
// Make sure the queue hasn't grown any.
- assert.Equal(t, len(archiveInProgress), 3)
+ assert.Equal(t, 3, len(archiveInProgress))
// Make sure the queue drains properly
releaseOneEntry(t, inFlight)
- assert.Equal(t, len(archiveInProgress), 2)
+ assert.Equal(t, 2, len(archiveInProgress))
releaseOneEntry(t, inFlight)
- assert.Equal(t, len(archiveInProgress), 1)
+ assert.Equal(t, 1, len(archiveInProgress))
releaseOneEntry(t, inFlight)
- assert.Equal(t, len(archiveInProgress), 0)
+ assert.Equal(t, 0, len(archiveInProgress))
zipReq2 = DeriveRequestFrom(ctx, firstCommit+".zip")
// Now, we're guaranteed to have released the original zipReq from the queue.