github.com/windmeup/goreleaser@v1.21.95/internal/gio/safe_test.go (about) 1 package gio 2 3 import ( 4 "bytes" 5 "io" 6 "sync" 7 "testing" 8 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestSafe(t *testing.T) { 13 chars := 30 14 15 var b bytes.Buffer 16 w := Safe(&b) 17 18 var wg sync.WaitGroup 19 wg.Add(chars) 20 for i := 0; i < chars; i++ { 21 go func() { 22 s, err := io.WriteString(w, "a") 23 require.Equal(t, 1, s) 24 require.NoError(t, err) 25 wg.Done() 26 }() 27 } 28 wg.Wait() 29 30 require.Len(t, b.String(), chars) 31 }