lib/readers: add NewContextReader to error on context errors

This commit is contained in:
Nick Craig-Wood
2021-03-25 15:53:16 +00:00
parent 9dd39e8524
commit 8c5c91e68f
2 changed files with 56 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
package readers
import (
"context"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestContextReader(t *testing.T) {
r := NewPatternReader(100)
ctx, cancel := context.WithCancel(context.Background())
cr := NewContextReader(ctx, r)
var buf = make([]byte, 3)
n, err := cr.Read(buf)
require.NoError(t, err)
assert.Equal(t, 3, n)
assert.Equal(t, []byte{0, 1, 2}, buf)
cancel()
n, err = cr.Read(buf)
assert.Equal(t, context.Canceled, err)
assert.Equal(t, 0, n)
}