|
@@ -63,8 +63,19 @@ func (w *NopWriter) Write(p []byte) (n int, err error) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func Test_flush_buffer_should_stop_grow_buffer(t *testing.T) {
|
|
func Test_flush_buffer_should_stop_grow_buffer(t *testing.T) {
|
|
|
|
|
+ // Stream an array of a zillion zeros.
|
|
|
writer := new(NopWriter)
|
|
writer := new(NopWriter)
|
|
|
- NewEncoder(writer).Encode(make([]int, 10000000))
|
|
|
|
|
|
|
+ stream := NewStream(ConfigDefault, writer, 512)
|
|
|
|
|
+ stream.WriteArrayStart()
|
|
|
|
|
+ for i := 0; i < 10000000; i++ {
|
|
|
|
|
+ stream.WriteInt(0)
|
|
|
|
|
+ stream.WriteMore()
|
|
|
|
|
+ stream.Flush()
|
|
|
|
|
+ }
|
|
|
|
|
+ stream.WriteInt(0)
|
|
|
|
|
+ stream.WriteArrayEnd()
|
|
|
|
|
+
|
|
|
|
|
+ // Confirm that the buffer didn't have to grow.
|
|
|
should := require.New(t)
|
|
should := require.New(t)
|
|
|
|
|
|
|
|
// 512 is the internal buffer size set in NewEncoder
|
|
// 512 is the internal buffer size set in NewEncoder
|