lnd.xprv/chainntnfs/queue_test.go
Jim Posen 726c8b2301 chainntnfs: Implement unbounded concurrent-safe FIFO queue.
This can be used in at least one place in the notifiers to improve
efficiency and reduce complexity.
2017-11-16 15:15:22 -08:00

27 lines
545 B
Go

package chainntnfs_test
import (
"testing"
"github.com/lightningnetwork/lnd/chainntnfs"
)
func TestConcurrentQueue(t *testing.T) {
queue := chainntnfs.NewConcurrentQueue(100)
queue.Start()
defer queue.Stop()
// Pushes should never block for long.
for i := 0; i < 1000; i++ {
queue.ChanIn() <- i
}
// Pops also should not block for long. Expect elements in FIFO order.
for i := 0; i < 1000; i++ {
item := <-queue.ChanOut()
if i != item.(int) {
t.Fatalf("Dequeued wrong value: expected %d, got %d", i, item.(int))
}
}
}