commit 21339cc43ebbc9053836a766d3f016e448e8a88a
parent cf7ba22141e2c659015749697d99522c6d743d7b
Author: francoispqt <francois@parquet.ninja>
Date: Sun, 20 May 2018 01:52:20 +0800
add test for stream encoding when chan prematurly closed
Diffstat:
1 file changed, 16 insertions(+), 0 deletions(-)
diff --git a/encode_stream_test.go b/encode_stream_test.go
@@ -313,6 +313,22 @@ func TestEncodeStream(t *testing.T) {
}
})
+ t.Run("multiple-consumer-object-chan-closed", func(t *testing.T) {
+ // create our writer
+ w := &TestWriter{target: 5000, mux: &sync.RWMutex{}}
+ enc := Stream.NewEncoder(w).NConsumer(50).LineDelimited()
+ w.enc = enc
+ s := StreamChanObject(make(chan *testObject))
+ close(enc.done)
+ go feedStream(s, 5000)
+ go enc.EncodeStream(s)
+ select {
+ case <-enc.Done():
+ assert.Nil(t, enc.Err(), "enc.Err() should be nil")
+ assert.Len(t, w.result, 0, "w.result should be 0")
+ }
+ })
+
t.Run("encoder-deadline", func(t *testing.T) {
enc := Stream.NewEncoder(os.Stdout)
now := time.Now()