commit b81a0e0acffd9c87cb191d245cc600eb997068c0
parent 97c0800f960d021f3dc484812efe249489d29e9c
Author: francoispqt <francois@parquet.ninja>
Date: Sun, 20 May 2018 00:47:04 +0800
add int decode tests
Diffstat:
2 files changed, 33 insertions(+), 5 deletions(-)
diff --git a/decode_number_int_test.go b/decode_number_int_test.go
@@ -406,6 +406,12 @@ func TestDecoderInt64(t *testing.T) {
errType: InvalidJSONError(""),
},
{
+ name: "basic-exponent-err",
+ json: "3e",
+ expectedResult: 0,
+ err: true,
+ },
+ {
name: "error1",
json: "132zz4",
expectedResult: 0,
@@ -628,6 +634,12 @@ func TestDecoderInt32(t *testing.T) {
expectedResult: -800000,
},
{
+ name: "basic-exponent-err",
+ json: "3e",
+ expectedResult: 0,
+ err: true,
+ },
+ {
name: "basic-float",
json: "8.32 ",
expectedResult: 8,
@@ -876,6 +888,12 @@ func TestDecoderInt16(t *testing.T) {
expectedResult: -8000,
},
{
+ name: "basic-exponent-err",
+ json: "3e",
+ expectedResult: 0,
+ err: true,
+ },
+ {
name: "basic-float",
json: "8.32 ",
expectedResult: 8,
@@ -1114,6 +1132,12 @@ func TestDecoderInt8(t *testing.T) {
expectedResult: -80,
},
{
+ name: "basic-exponent-err",
+ json: "3e",
+ expectedResult: 0,
+ err: true,
+ },
+ {
name: "basic-float",
json: "8.32 ",
expectedResult: 8,
diff --git a/encode_stream.go b/encode_stream.go
@@ -42,12 +42,16 @@ func (s *StreamEncoder) EncodeStream(m MarshalerStream) {
go consume(s, s, m)
for i := 1; i < s.nConsumer; i++ {
s.mux.RLock()
- ss := Stream.borrowEncoder(s.w)
- ss.done = s.done
- ss.buf = make([]byte, 0, 512)
- ss.delimiter = s.delimiter
+ select {
+ case <-s.done:
+ default:
+ ss := Stream.borrowEncoder(s.w)
+ ss.done = s.done
+ ss.buf = make([]byte, 0, 512)
+ ss.delimiter = s.delimiter
+ go consume(s, ss, m)
+ }
s.mux.RUnlock()
- go consume(s, ss, m)
}
return
}