1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-03-17 20:47:50 +02:00

test: fix race

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
This commit is contained in:
Carlos Alexandro Becker 2019-08-09 11:05:07 -03:00
parent 7b84a2ccd7
commit 36b190490f
No known key found for this signature in database
GPG Key ID: E61E2F7DC14AB940

View File

@ -1,6 +1,7 @@
package semerrgroup
import (
"fmt"
"sync"
"testing"
"time"
@ -26,21 +27,30 @@ func TestSemaphore(t *testing.T) {
}
func TestSemaphoreOrder(t *testing.T) {
num := 10
var num = 10
var g = New(1)
output := make(chan int)
go func() {
for i := 0; i < num; i++ {
require.Equal(t, <-output, i)
}
require.NoError(t, g.Wait())
}()
var output = []int{}
for i := 0; i < num; i++ {
j := i
i := i
g.Go(func() error {
output <- j
output = append(output, i)
return nil
})
}
require.NoError(t, g.Wait())
require.Equal(t, []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, output)
}
func TestSemaphoreOrderError(t *testing.T) {
var g = New(1)
var output = []int{}
for i := 0; i < 10; i++ {
i := i
g.Go(func() error {
output = append(output, i)
return fmt.Errorf("fake err")
})
}
require.EqualError(t, g.Wait(), "fake err")
require.Equal(t, []int{0}, output)
}