github.com/ahmet2mir/goreleaser@v0.180.3-0.20210927151101-8e5ee5a9b8c5/internal/gio/safe_test.go (about)

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