gojay

high performance JSON encoder/decoder with stream API for Golang
git clone git://git.lair.cx/gojay
Log | Files | Refs | README | LICENSE

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:
Mencode_stream_test.go | 16++++++++++++++++
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()