Fix race condition in test
This commit is contained in:
parent
64ceb5371b
commit
a140c222c2
|
@ -1,6 +1,7 @@
|
|||
package pool
|
||||
|
||||
import (
|
||||
"sync"
|
||||
"testing"
|
||||
|
||||
"github.com/navidrome/navidrome/log"
|
||||
|
@ -20,7 +21,10 @@ type testItem struct {
|
|||
ID int
|
||||
}
|
||||
|
||||
var processed []int
|
||||
var (
|
||||
processed []int
|
||||
mutex sync.RWMutex
|
||||
)
|
||||
|
||||
var _ = Describe("Pool", func() {
|
||||
var pool *Pool
|
||||
|
@ -34,12 +38,19 @@ var _ = Describe("Pool", func() {
|
|||
for i := 0; i < 5; i++ {
|
||||
pool.Submit(&testItem{ID: i})
|
||||
}
|
||||
Eventually(func() []int { return processed }, "10s").Should(HaveLen(5))
|
||||
Eventually(func() []int {
|
||||
mutex.RLock()
|
||||
defer mutex.RUnlock()
|
||||
return processed
|
||||
}, "10s").Should(HaveLen(5))
|
||||
|
||||
Expect(processed).To(ContainElements(0, 1, 2, 3, 4))
|
||||
})
|
||||
})
|
||||
|
||||
func execute(workload interface{}) {
|
||||
mutex.Lock()
|
||||
defer mutex.Unlock()
|
||||
item := workload.(*testItem)
|
||||
processed = append(processed, item.ID)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue