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  }