fix: Rewrite ptytest to buffer stdout (#3170)

Fixes #2122
This commit is contained in:
Mathias Fredriksson
2022-07-25 20:02:34 +03:00
committed by GitHub
parent d7dee2c069
commit 92a95fbd5f
3 changed files with 213 additions and 56 deletions

View File

@ -0,0 +1,37 @@
package ptytest
import (
"bytes"
"io"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestStdbuf(t *testing.T) {
t.Parallel()
var got bytes.Buffer
b := newStdbuf()
done := make(chan struct{})
go func() {
defer close(done)
_, err := io.Copy(&got, b)
assert.NoError(t, err)
}()
_, err := b.Write([]byte("hello "))
require.NoError(t, err)
_, err = b.Write([]byte("world\n"))
require.NoError(t, err)
_, err = b.Write([]byte("bye\n"))
require.NoError(t, err)
err = b.Close()
require.NoError(t, err)
<-done
assert.Equal(t, "hello world\nbye\n", got.String())
}