htlcswitch: expand TestWaitingQueueThreadSafety to assert proper queue length

This commit is contained in:
Olaoluwa Osuntokun 2017-09-25 16:55:13 -07:00
parent 7ae436e30e
commit 5ec3ee2ece
No known key found for this signature in database
GPG Key ID: 964EA263DD637C21
2 changed files with 17 additions and 3 deletions

View File

@ -67,8 +67,6 @@ func (p *packetQueue) Stop() {
close(p.quit)
p.queueCond.Signal()
p.wg.Wait()
}
// packetCoordinator is a goroutine that handles the packet overflow queue.
@ -126,8 +124,8 @@ func (p *packetQueue) packetCoordinator() {
p.queueCond.L.Lock()
p.queue[0] = nil
p.queue = p.queue[1:]
p.queueCond.L.Unlock()
atomic.AddInt32(&p.queueLen, -1)
p.queueCond.L.Unlock()
case <-p.quit:
return
}

View File

@ -29,6 +29,14 @@ func TestWaitingQueueThreadSafety(t *testing.T) {
})
}
// The reported length of the queue should be the exact number of
// packets we added above.
queueLength := q.Length()
if queueLength != numPkts {
t.Fatalf("queue has wrong length: expected %v, got %v", numPkts,
queueLength)
}
var b []lnwire.MilliSatoshi
for i := 0; i < numPkts; i++ {
q.SignalFreeSlot()
@ -42,6 +50,14 @@ func TestWaitingQueueThreadSafety(t *testing.T) {
}
}
// The length of the queue should be zero at this point.
time.Sleep(time.Millisecond * 50)
queueLength = q.Length()
if queueLength != 0 {
t.Fatalf("queue has wrong length: expected %v, got %v", 0,
queueLength)
}
if !reflect.DeepEqual(b, a) {
t.Fatal("wrong order of the objects")
}