aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/json-iterator/go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/json-iterator/go')
-rw-r--r--vendor/github.com/json-iterator/go/Gopkg.lock40
-rw-r--r--vendor/github.com/json-iterator/go/Gopkg.toml17
-rw-r--r--vendor/github.com/json-iterator/go/any.go4
-rw-r--r--vendor/github.com/json-iterator/go/any_tests/jsoniter_any_array_test.go123
-rw-r--r--vendor/github.com/json-iterator/go/any_tests/jsoniter_any_bool_test.go65
-rw-r--r--vendor/github.com/json-iterator/go/any_tests/jsoniter_any_float_test.go103
-rw-r--r--vendor/github.com/json-iterator/go/any_tests/jsoniter_any_int_test.go198
-rw-r--r--vendor/github.com/json-iterator/go/any_tests/jsoniter_any_map_test.go28
-rw-r--r--vendor/github.com/json-iterator/go/any_tests/jsoniter_any_null_test.go16
-rw-r--r--vendor/github.com/json-iterator/go/any_tests/jsoniter_any_object_test.go123
-rw-r--r--vendor/github.com/json-iterator/go/any_tests/jsoniter_any_string_test.go58
-rw-r--r--vendor/github.com/json-iterator/go/any_tests/jsoniter_must_be_valid_test.go72
-rw-r--r--vendor/github.com/json-iterator/go/any_tests/jsoniter_wrap_test.go119
-rw-r--r--vendor/github.com/json-iterator/go/api_tests/config_test.go48
-rw-r--r--vendor/github.com/json-iterator/go/api_tests/decoder_test.go59
-rw-r--r--vendor/github.com/json-iterator/go/api_tests/encoder_18_test.go46
-rw-r--r--vendor/github.com/json-iterator/go/api_tests/encoder_test.go20
-rw-r--r--vendor/github.com/json-iterator/go/api_tests/marshal_indent_test.go36
-rw-r--r--vendor/github.com/json-iterator/go/benchmarks/encode_string_test.go25
-rw-r--r--vendor/github.com/json-iterator/go/benchmarks/jsoniter_large_file_test.go158
-rw-r--r--vendor/github.com/json-iterator/go/config.go70
-rw-r--r--vendor/github.com/json-iterator/go/config_with_sync_map.go64
-rw-r--r--vendor/github.com/json-iterator/go/config_without_sync_map.go70
-rw-r--r--vendor/github.com/json-iterator/go/example_test.go26
-rw-r--r--vendor/github.com/json-iterator/go/extension_tests/decoder_test.go101
-rw-r--r--vendor/github.com/json-iterator/go/extension_tests/extension_test.go71
-rw-r--r--vendor/github.com/json-iterator/go/extra/fuzzy_decoder.go279
-rw-r--r--vendor/github.com/json-iterator/go/extra/fuzzy_decoder_test.go359
-rw-r--r--vendor/github.com/json-iterator/go/extra/naming_strategy.go41
-rw-r--r--vendor/github.com/json-iterator/go/extra/naming_strategy_test.go23
-rw-r--r--vendor/github.com/json-iterator/go/extra/privat_fields.go25
-rw-r--r--vendor/github.com/json-iterator/go/extra/private_fields_test.go18
-rw-r--r--vendor/github.com/json-iterator/go/extra/time_as_int64_codec.go31
-rw-r--r--vendor/github.com/json-iterator/go/extra/time_as_int64_codec_test.go31
-rw-r--r--vendor/github.com/json-iterator/go/misc_tests/jsoniter_array_test.go214
-rw-r--r--vendor/github.com/json-iterator/go/misc_tests/jsoniter_bool_test.go47
-rw-r--r--vendor/github.com/json-iterator/go/misc_tests/jsoniter_float_test.go95
-rw-r--r--vendor/github.com/json-iterator/go/misc_tests/jsoniter_int_test.go101
-rw-r--r--vendor/github.com/json-iterator/go/misc_tests/jsoniter_interface_test.go178
-rw-r--r--vendor/github.com/json-iterator/go/misc_tests/jsoniter_iterator_test.go67
-rw-r--r--vendor/github.com/json-iterator/go/misc_tests/jsoniter_map_test.go33
-rw-r--r--vendor/github.com/json-iterator/go/misc_tests/jsoniter_nested_test.go89
-rw-r--r--vendor/github.com/json-iterator/go/misc_tests/jsoniter_null_test.go81
-rw-r--r--vendor/github.com/json-iterator/go/misc_tests/jsoniter_object_test.go132
-rw-r--r--vendor/github.com/json-iterator/go/misc_tests/jsoniter_raw_message_test.go68
-rw-r--r--vendor/github.com/json-iterator/go/reflect.go2
-rw-r--r--vendor/github.com/json-iterator/go/reflect_array.go2
-rw-r--r--vendor/github.com/json-iterator/go/reflect_dynamic.go4
-rw-r--r--vendor/github.com/json-iterator/go/reflect_extension.go42
-rw-r--r--vendor/github.com/json-iterator/go/reflect_json_number.go4
-rw-r--r--vendor/github.com/json-iterator/go/reflect_json_raw_message.go6
-rw-r--r--vendor/github.com/json-iterator/go/reflect_map.go38
-rw-r--r--vendor/github.com/json-iterator/go/reflect_marshaler.go4
-rw-r--r--vendor/github.com/json-iterator/go/reflect_native.go8
-rw-r--r--vendor/github.com/json-iterator/go/reflect_optional.go2
-rw-r--r--vendor/github.com/json-iterator/go/reflect_slice.go2
-rw-r--r--vendor/github.com/json-iterator/go/reflect_struct_decoder.go4
-rw-r--r--vendor/github.com/json-iterator/go/reflect_struct_encoder.go2
-rw-r--r--vendor/github.com/json-iterator/go/skip_tests/array_test.go15
-rw-r--r--vendor/github.com/json-iterator/go/skip_tests/float64_test.go20
-rw-r--r--vendor/github.com/json-iterator/go/skip_tests/jsoniter_skip_test.go185
-rw-r--r--vendor/github.com/json-iterator/go/skip_tests/skip_test.go45
-rw-r--r--vendor/github.com/json-iterator/go/skip_tests/string_test.go17
-rw-r--r--vendor/github.com/json-iterator/go/skip_tests/struct_test.go19
-rw-r--r--vendor/github.com/json-iterator/go/stream.go5
-rw-r--r--vendor/github.com/json-iterator/go/stream_int.go8
-rw-r--r--vendor/github.com/json-iterator/go/type_tests/array_test.go63
-rw-r--r--vendor/github.com/json-iterator/go/type_tests/builtin_test.go69
-rw-r--r--vendor/github.com/json-iterator/go/type_tests/map_key_test.go44
-rw-r--r--vendor/github.com/json-iterator/go/type_tests/map_test.go60
-rw-r--r--vendor/github.com/json-iterator/go/type_tests/marshaler_string_test.go52
-rw-r--r--vendor/github.com/json-iterator/go/type_tests/marshaler_struct_test.go69
-rw-r--r--vendor/github.com/json-iterator/go/type_tests/slice_test.go127
-rw-r--r--vendor/github.com/json-iterator/go/type_tests/struct_embedded_test.go233
-rw-r--r--vendor/github.com/json-iterator/go/type_tests/struct_field_case_test.go30
-rw-r--r--vendor/github.com/json-iterator/go/type_tests/struct_tags_test.go282
-rw-r--r--vendor/github.com/json-iterator/go/type_tests/struct_test.go404
-rw-r--r--vendor/github.com/json-iterator/go/type_tests/text_marshaler_string_test.go57
-rw-r--r--vendor/github.com/json-iterator/go/type_tests/text_marshaler_struct_test.go69
-rw-r--r--vendor/github.com/json-iterator/go/type_tests/type_test.go162
-rw-r--r--vendor/github.com/json-iterator/go/value_tests/array_test.go20
-rw-r--r--vendor/github.com/json-iterator/go/value_tests/bool_test.go10
-rw-r--r--vendor/github.com/json-iterator/go/value_tests/eface_test.go78
-rw-r--r--vendor/github.com/json-iterator/go/value_tests/float_test.go130
-rw-r--r--vendor/github.com/json-iterator/go/value_tests/iface_test.go45
-rw-r--r--vendor/github.com/json-iterator/go/value_tests/int_test.go420
-rw-r--r--vendor/github.com/json-iterator/go/value_tests/invalid_test.go226
-rw-r--r--vendor/github.com/json-iterator/go/value_tests/map_test.go51
-rw-r--r--vendor/github.com/json-iterator/go/value_tests/marshaler_test.go85
-rw-r--r--vendor/github.com/json-iterator/go/value_tests/number_test.go17
-rw-r--r--vendor/github.com/json-iterator/go/value_tests/ptr_test.go39
-rw-r--r--vendor/github.com/json-iterator/go/value_tests/raw_message_test.go13
-rw-r--r--vendor/github.com/json-iterator/go/value_tests/slice_test.go17
-rw-r--r--vendor/github.com/json-iterator/go/value_tests/string_test.go88
-rw-r--r--vendor/github.com/json-iterator/go/value_tests/struct_test.go200
-rw-r--r--vendor/github.com/json-iterator/go/value_tests/value_test.go80
96 files changed, 209 insertions, 7137 deletions
diff --git a/vendor/github.com/json-iterator/go/Gopkg.lock b/vendor/github.com/json-iterator/go/Gopkg.lock
index bbccc68d2..338f1c68a 100644
--- a/vendor/github.com/json-iterator/go/Gopkg.lock
+++ b/vendor/github.com/json-iterator/go/Gopkg.lock
@@ -2,44 +2,20 @@
[[projects]]
- name = "github.com/davecgh/go-spew"
- packages = ["spew"]
- revision = "346938d642f2ec3594ed81d874461961cd0faa76"
- version = "v1.1.0"
-
-[[projects]]
- branch = "master"
- name = "github.com/google/gofuzz"
+ name = "github.com/modern-go/concurrent"
packages = ["."]
- revision = "24818f796faf91cd76ec7bddd72458fbced7a6c1"
-
-[[projects]]
- name = "github.com/pmezard/go-difflib"
- packages = ["difflib"]
- revision = "792786c7400a136282c1664665ae0a8db921c6c2"
- version = "v1.0.0"
+ revision = "e0a39a4cb4216ea8db28e22a69f4ec25610d513a"
+ version = "1.0.0"
[[projects]]
- name = "github.com/stretchr/testify"
- packages = [
- "assert",
- "require"
- ]
- revision = "12b6f73e6084dad08a7c6e575284b177ecafbc71"
- version = "v1.2.1"
-
-[[projects]]
- name = "github.com/v2pro/plz"
- packages = [
- "concurrent",
- "reflect2"
- ]
- revision = "10fc95fad3224a032229e59f6e7023137d82b526"
- version = "0.9.1"
+ name = "github.com/modern-go/reflect2"
+ packages = ["."]
+ revision = "1df9eeb2bb81f327b96228865c5687bc2194af3f"
+ version = "1.0.0"
[solve-meta]
analyzer-name = "dep"
analyzer-version = 1
- inputs-digest = "64fe3937a1afce5cb551c06ff7109065c971643e082512243d1071bab428ff14"
+ inputs-digest = "ac7003b5a981716353a43055ab7d4c5357403cb30a60de2dbdeb446c1544beaa"
solver-name = "gps-cdcl"
solver-version = 1
diff --git a/vendor/github.com/json-iterator/go/Gopkg.toml b/vendor/github.com/json-iterator/go/Gopkg.toml
index 8e7e8a65c..5801ffa1e 100644
--- a/vendor/github.com/json-iterator/go/Gopkg.toml
+++ b/vendor/github.com/json-iterator/go/Gopkg.toml
@@ -19,19 +19,8 @@
# name = "github.com/x/y"
# version = "2.4.0"
+ignored = ["github.com/davecgh/go-spew*","github.com/google/gofuzz*","github.com/stretchr/testify*"]
[[constraint]]
- name = "github.com/davecgh/go-spew"
- version = "1.1.0"
-
-[[constraint]]
- branch = "master"
- name = "github.com/google/gofuzz"
-
-[[constraint]]
- name = "github.com/stretchr/testify"
- version = "1.1.4"
-
-[[constraint]]
- name = "github.com/v2pro/plz"
- version = "0.9.1"
+ name = "github.com/modern-go/reflect2"
+ version = "1.0.0"
diff --git a/vendor/github.com/json-iterator/go/any.go b/vendor/github.com/json-iterator/go/any.go
index 81c30fc97..daecfed61 100644
--- a/vendor/github.com/json-iterator/go/any.go
+++ b/vendor/github.com/json-iterator/go/any.go
@@ -3,11 +3,11 @@ package jsoniter
import (
"errors"
"fmt"
+ "github.com/modern-go/reflect2"
"io"
"reflect"
- "unsafe"
- "github.com/v2pro/plz/reflect2"
"strconv"
+ "unsafe"
)
// Any generic object representation.
diff --git a/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_array_test.go b/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_array_test.go
deleted file mode 100644
index 9159f1bbb..000000000
--- a/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_array_test.go
+++ /dev/null
@@ -1,123 +0,0 @@
-package any_tests
-
-import (
- "testing"
-
- "github.com/stretchr/testify/require"
- "github.com/json-iterator/go"
-)
-
-func Test_read_empty_array_as_any(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Get([]byte("[]"))
- should.Equal(jsoniter.ArrayValue, any.Get().ValueType())
- should.Equal(jsoniter.InvalidValue, any.Get(0.3).ValueType())
- should.Equal(0, any.Size())
- should.Equal(jsoniter.ArrayValue, any.ValueType())
- should.Nil(any.LastError())
- should.Equal(0, any.ToInt())
- should.Equal(int32(0), any.ToInt32())
- should.Equal(int64(0), any.ToInt64())
- should.Equal(uint(0), any.ToUint())
- should.Equal(uint32(0), any.ToUint32())
- should.Equal(uint64(0), any.ToUint64())
- should.Equal(float32(0), any.ToFloat32())
- should.Equal(float64(0), any.ToFloat64())
-}
-
-func Test_read_one_element_array_as_any(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Get([]byte("[1]"))
- should.Equal(1, any.Size())
-}
-
-func Test_read_two_element_array_as_any(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Get([]byte("[1,2]"))
- should.Equal(1, any.Get(0).ToInt())
- should.Equal(2, any.Size())
- should.True(any.ToBool())
- should.Equal(1, any.ToInt())
- should.Equal([]interface{}{float64(1), float64(2)}, any.GetInterface())
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, nil, 32)
- any.WriteTo(stream)
- should.Equal("[1,2]", string(stream.Buffer()))
- arr := []int{}
- any.ToVal(&arr)
- should.Equal([]int{1, 2}, arr)
-}
-
-func Test_wrap_array_and_convert_to_any(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Wrap([]int{1, 2, 3})
- any2 := jsoniter.Wrap([]int{})
-
- should.Equal("[1,2,3]", any.ToString())
- should.True(any.ToBool())
- should.False(any2.ToBool())
-
- should.Equal(1, any.ToInt())
- should.Equal(0, any2.ToInt())
- should.Equal(int32(1), any.ToInt32())
- should.Equal(int32(0), any2.ToInt32())
- should.Equal(int64(1), any.ToInt64())
- should.Equal(int64(0), any2.ToInt64())
- should.Equal(uint(1), any.ToUint())
- should.Equal(uint(0), any2.ToUint())
- should.Equal(uint32(1), any.ToUint32())
- should.Equal(uint32(0), any2.ToUint32())
- should.Equal(uint64(1), any.ToUint64())
- should.Equal(uint64(0), any2.ToUint64())
- should.Equal(float32(1), any.ToFloat32())
- should.Equal(float32(0), any2.ToFloat32())
- should.Equal(float64(1), any.ToFloat64())
- should.Equal(float64(0), any2.ToFloat64())
- should.Equal(3, any.Size())
- should.Equal(0, any2.Size())
-
- var i interface{} = []int{1, 2, 3}
- should.Equal(i, any.GetInterface())
-}
-
-func Test_array_lazy_any_get(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Get([]byte("[1,[2,3],4]"))
- should.Equal(3, any.Get(1, 1).ToInt())
- should.Equal("[1,[2,3],4]", any.ToString())
-}
-
-func Test_array_lazy_any_get_all(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Get([]byte("[[1],[2],[3,4]]"))
- should.Equal("[1,2,3]", any.Get('*', 0).ToString())
- any = jsoniter.Get([]byte("[[[1],[2],[3,4]]]"), 0, '*', 0)
- should.Equal("[1,2,3]", any.ToString())
-}
-
-func Test_array_wrapper_any_get_all(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Wrap([][]int{
- {1, 2},
- {3, 4},
- {5, 6},
- })
- should.Equal("[1,3,5]", any.Get('*', 0).ToString())
- should.Equal(jsoniter.ArrayValue, any.ValueType())
- should.True(any.ToBool())
- should.Equal(1, any.Get(0, 0).ToInt())
-}
-
-func Test_array_lazy_any_get_invalid(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Get([]byte("[]"))
- should.Equal(jsoniter.InvalidValue, any.Get(1, 1).ValueType())
- should.NotNil(any.Get(1, 1).LastError())
- should.Equal(jsoniter.InvalidValue, any.Get("1").ValueType())
- should.NotNil(any.Get("1").LastError())
-}
-
-func Test_invalid_array(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Get([]byte("["), 0)
- should.Equal(jsoniter.InvalidValue, any.ValueType())
-}
diff --git a/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_bool_test.go b/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_bool_test.go
deleted file mode 100644
index 65cd26c45..000000000
--- a/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_bool_test.go
+++ /dev/null
@@ -1,65 +0,0 @@
-package any_tests
-
-import (
- "fmt"
- "testing"
-
- "github.com/stretchr/testify/require"
- "github.com/json-iterator/go"
-)
-
-var boolConvertMap = map[string]bool{
- "null": false,
- "true": true,
- "false": false,
-
- `"true"`: true,
- `"false"`: true,
-
- "123": true,
- `"123"`: true,
- "0": false,
- `"0"`: false,
- "-1": true,
- `"-1"`: true,
-
- "1.1": true,
- "0.0": false,
- "-1.1": true,
- `""`: false,
- "[1,2]": true,
- "[]": false,
- "{}": true,
- `{"abc":1}`: true,
-}
-
-func Test_read_bool_as_any(t *testing.T) {
- should := require.New(t)
-
- var any jsoniter.Any
- for k, v := range boolConvertMap {
- any = jsoniter.Get([]byte(k))
- if v {
- should.True(any.ToBool(), fmt.Sprintf("origin val is %v", k))
- } else {
- should.False(any.ToBool(), fmt.Sprintf("origin val is %v", k))
- }
- }
-
-}
-
-func Test_write_bool_to_stream(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Get([]byte("true"))
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, nil, 32)
- any.WriteTo(stream)
- should.Equal("true", string(stream.Buffer()))
- should.Equal(any.ValueType(), jsoniter.BoolValue)
-
- any = jsoniter.Get([]byte("false"))
- stream = jsoniter.NewStream(jsoniter.ConfigDefault, nil, 32)
- any.WriteTo(stream)
- should.Equal("false", string(stream.Buffer()))
-
- should.Equal(any.ValueType(), jsoniter.BoolValue)
-}
diff --git a/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_float_test.go b/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_float_test.go
deleted file mode 100644
index 4247b4491..000000000
--- a/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_float_test.go
+++ /dev/null
@@ -1,103 +0,0 @@
-package any_tests
-
-import (
- "testing"
-
- "github.com/stretchr/testify/require"
- "github.com/json-iterator/go"
-)
-
-var floatConvertMap = map[string]float64{
- "null": 0,
- "true": 1,
- "false": 0,
-
- `"true"`: 0,
- `"false"`: 0,
-
- "1e1": 10,
- "1e+1": 10,
- "1e-1": .1,
- "1E1": 10,
- "1E+1": 10,
- "1E-1": .1,
-
- "-1e1": -10,
- "-1e+1": -10,
- "-1e-1": -.1,
- "-1E1": -10,
- "-1E+1": -10,
- "-1E-1": -.1,
-
- `"1e1"`: 10,
- `"1e+1"`: 10,
- `"1e-1"`: .1,
- `"1E1"`: 10,
- `"1E+1"`: 10,
- `"1E-1"`: .1,
-
- `"-1e1"`: -10,
- `"-1e+1"`: -10,
- `"-1e-1"`: -.1,
- `"-1E1"`: -10,
- `"-1E+1"`: -10,
- `"-1E-1"`: -.1,
-
- "123": 123,
- `"123true"`: 123,
- `"+"`: 0,
- `"-"`: 0,
-
- `"-123true"`: -123,
- `"-99.9true"`: -99.9,
- "0": 0,
- `"0"`: 0,
- "-1": -1,
-
- "1.1": 1.1,
- "0.0": 0,
- "-1.1": -1.1,
- `"+1.1"`: 1.1,
- `""`: 0,
- "[1,2]": 1,
- "[]": 0,
- "{}": 0,
- `{"abc":1}`: 0,
-}
-
-func Test_read_any_to_float(t *testing.T) {
- should := require.New(t)
- for k, v := range floatConvertMap {
- any := jsoniter.Get([]byte(k))
- should.Equal(float64(v), any.ToFloat64(), "the original val is "+k)
- }
-
- for k, v := range floatConvertMap {
- any := jsoniter.Get([]byte(k))
- should.Equal(float32(v), any.ToFloat32(), "the original val is "+k)
- }
-}
-
-func Test_read_float_to_any(t *testing.T) {
- should := require.New(t)
- any := jsoniter.WrapFloat64(12.3)
- anyFloat64 := float64(12.3)
- //negaAnyFloat64 := float64(-1.1)
- any2 := jsoniter.WrapFloat64(-1.1)
- should.Equal(float64(12.3), any.ToFloat64())
- //should.Equal("12.3", any.ToString())
- should.True(any.ToBool())
- should.Equal(float32(anyFloat64), any.ToFloat32())
- should.Equal(int(anyFloat64), any.ToInt())
- should.Equal(int32(anyFloat64), any.ToInt32())
- should.Equal(int64(anyFloat64), any.ToInt64())
- should.Equal(uint(anyFloat64), any.ToUint())
- should.Equal(uint32(anyFloat64), any.ToUint32())
- should.Equal(uint64(anyFloat64), any.ToUint64())
- should.Equal(uint(0), any2.ToUint())
- should.Equal(uint32(0), any2.ToUint32())
- should.Equal(uint64(0), any2.ToUint64())
- should.Equal(any.ValueType(), jsoniter.NumberValue)
-
- should.Equal("1.23E+01", any.ToString())
-}
diff --git a/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_int_test.go b/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_int_test.go
deleted file mode 100644
index f83a8ad15..000000000
--- a/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_int_test.go
+++ /dev/null
@@ -1,198 +0,0 @@
-package any_tests
-
-import (
- "fmt"
- "testing"
-
- "github.com/stretchr/testify/require"
- "github.com/json-iterator/go"
-)
-
-var intConvertMap = map[string]int{
- "null": 0,
- "321.1": 321,
- "-321.1": -321,
- `"1.1"`: 1,
- `"-321.1"`: -321,
- "0.0": 0,
- "0": 0,
- `"0"`: 0,
- `"0.0"`: 0,
- "-1.1": -1,
- "true": 1,
- "false": 0,
- `"true"`: 0,
- `"false"`: 0,
- `"true123"`: 0,
- `"123true"`: 123,
- `"-123true"`: -123,
- `"1.2332e6"`: 1,
- `""`: 0,
- "+": 0,
- "-": 0,
- "[]": 0,
- "[1,2]": 1,
- `["1","2"]`: 1,
- // object in php cannot convert to int
- "{}": 0,
-}
-
-func Test_read_any_to_int(t *testing.T) {
- should := require.New(t)
-
- // int
- for k, v := range intConvertMap {
- any := jsoniter.Get([]byte(k))
- should.Equal(v, any.ToInt(), fmt.Sprintf("origin val %v", k))
- }
-
- // int32
- for k, v := range intConvertMap {
- any := jsoniter.Get([]byte(k))
- should.Equal(int32(v), any.ToInt32(), fmt.Sprintf("original val is %v", k))
- }
-
- // int64
- for k, v := range intConvertMap {
- any := jsoniter.Get([]byte(k))
- should.Equal(int64(v), any.ToInt64(), fmt.Sprintf("original val is %v", k))
- }
-
-}
-
-var uintConvertMap = map[string]int{
- "null": 0,
- "321.1": 321,
- `"1.1"`: 1,
- `"-123.1"`: 0,
- "0.0": 0,
- "0": 0,
- `"0"`: 0,
- `"0.0"`: 0,
- `"00.0"`: 0,
- "true": 1,
- "false": 0,
- `"true"`: 0,
- `"false"`: 0,
- `"true123"`: 0,
- `"+1"`: 1,
- `"123true"`: 123,
- `"-123true"`: 0,
- `"1.2332e6"`: 1,
- `""`: 0,
- "+": 0,
- "-": 0,
- ".": 0,
- "[]": 0,
- "[1,2]": 1,
- "{}": 0,
- "{1,2}": 0,
- "-1.1": 0,
- "-321.1": 0,
-}
-
-func Test_read_any_to_uint(t *testing.T) {
- should := require.New(t)
-
- for k, v := range uintConvertMap {
- any := jsoniter.Get([]byte(k))
- should.Equal(uint64(v), any.ToUint64(), fmt.Sprintf("origin val %v", k))
- }
-
- for k, v := range uintConvertMap {
- any := jsoniter.Get([]byte(k))
- should.Equal(uint32(v), any.ToUint32(), fmt.Sprintf("origin val %v", k))
- }
-
- for k, v := range uintConvertMap {
- any := jsoniter.Get([]byte(k))
- should.Equal(uint(v), any.ToUint(), fmt.Sprintf("origin val %v", k))
- }
-
-}
-
-func Test_read_int64_to_any(t *testing.T) {
- should := require.New(t)
- any := jsoniter.WrapInt64(12345)
- should.Equal(12345, any.ToInt())
- should.Equal(int32(12345), any.ToInt32())
- should.Equal(int64(12345), any.ToInt64())
- should.Equal(uint(12345), any.ToUint())
- should.Equal(uint32(12345), any.ToUint32())
- should.Equal(uint64(12345), any.ToUint64())
- should.Equal(float32(12345), any.ToFloat32())
- should.Equal(float64(12345), any.ToFloat64())
- should.Equal("12345", any.ToString())
- should.Equal(true, any.ToBool())
- should.Equal(any.ValueType(), jsoniter.NumberValue)
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, nil, 32)
- any.WriteTo(stream)
- should.Equal("12345", string(stream.Buffer()))
-}
-func Test_read_int32_to_any(t *testing.T) {
- should := require.New(t)
- any := jsoniter.WrapInt32(12345)
- should.Equal(12345, any.ToInt())
- should.Equal(int32(12345), any.ToInt32())
- should.Equal(int64(12345), any.ToInt64())
- should.Equal(uint(12345), any.ToUint())
- should.Equal(uint32(12345), any.ToUint32())
- should.Equal(uint64(12345), any.ToUint64())
- should.Equal(float32(12345), any.ToFloat32())
- should.Equal(float64(12345), any.ToFloat64())
- should.Equal("12345", any.ToString())
- should.Equal(true, any.ToBool())
- should.Equal(any.ValueType(), jsoniter.NumberValue)
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, nil, 32)
- any.WriteTo(stream)
- should.Equal("12345", string(stream.Buffer()))
-}
-
-func Test_read_uint32_to_any(t *testing.T) {
- should := require.New(t)
- any := jsoniter.WrapUint32(12345)
- should.Equal(12345, any.ToInt())
- should.Equal(int32(12345), any.ToInt32())
- should.Equal(int64(12345), any.ToInt64())
- should.Equal(uint(12345), any.ToUint())
- should.Equal(uint32(12345), any.ToUint32())
- should.Equal(uint64(12345), any.ToUint64())
- should.Equal(float32(12345), any.ToFloat32())
- should.Equal(float64(12345), any.ToFloat64())
- should.Equal("12345", any.ToString())
- should.Equal(true, any.ToBool())
- should.Equal(any.ValueType(), jsoniter.NumberValue)
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, nil, 32)
- any.WriteTo(stream)
- should.Equal("12345", string(stream.Buffer()))
-}
-
-func Test_read_uint64_to_any(t *testing.T) {
- should := require.New(t)
- any := jsoniter.WrapUint64(12345)
- should.Equal(12345, any.ToInt())
- should.Equal(int32(12345), any.ToInt32())
- should.Equal(int64(12345), any.ToInt64())
- should.Equal(uint(12345), any.ToUint())
- should.Equal(uint32(12345), any.ToUint32())
- should.Equal(uint64(12345), any.ToUint64())
- should.Equal(float32(12345), any.ToFloat32())
- should.Equal(float64(12345), any.ToFloat64())
- should.Equal("12345", any.ToString())
- should.Equal(true, any.ToBool())
- should.Equal(any.ValueType(), jsoniter.NumberValue)
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, nil, 32)
- any.WriteTo(stream)
- should.Equal("12345", string(stream.Buffer()))
- stream = jsoniter.NewStream(jsoniter.ConfigDefault, nil, 32)
- stream.WriteUint(uint(123))
- should.Equal("123", string(stream.Buffer()))
-}
-
-func Test_int_lazy_any_get(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Get([]byte("1234"))
- // panic!!
- //should.Equal(any.LastError(), io.EOF)
- should.Equal(jsoniter.InvalidValue, any.Get(1, "2").ValueType())
-}
diff --git a/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_map_test.go b/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_map_test.go
deleted file mode 100644
index 259fb19c5..000000000
--- a/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_map_test.go
+++ /dev/null
@@ -1,28 +0,0 @@
-package any_tests
-
-import (
- "github.com/stretchr/testify/require"
- "testing"
- "github.com/json-iterator/go"
-)
-
-func Test_wrap_map(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Wrap(map[string]string{"Field1": "hello"})
- should.Equal("hello", any.Get("Field1").ToString())
- any = jsoniter.Wrap(map[string]string{"Field1": "hello"})
- should.Equal(1, any.Size())
-}
-
-func Test_map_wrapper_any_get_all(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Wrap(map[string][]int{"Field1": {1, 2}})
- should.Equal(`{"Field1":1}`, any.Get('*', 0).ToString())
- should.Contains(any.Keys(), "Field1")
-
- // map write to
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, nil, 0)
- any.WriteTo(stream)
- // TODO cannot pass
- //should.Equal(string(stream.buf), "")
-}
diff --git a/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_null_test.go b/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_null_test.go
deleted file mode 100644
index 5f44b722e..000000000
--- a/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_null_test.go
+++ /dev/null
@@ -1,16 +0,0 @@
-package any_tests
-
-import (
- "github.com/stretchr/testify/require"
- "testing"
- "github.com/json-iterator/go"
-)
-
-func Test_read_null_as_any(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Get([]byte(`null`))
- should.Equal(0, any.ToInt())
- should.Equal(float64(0), any.ToFloat64())
- should.Equal("", any.ToString())
- should.False(any.ToBool())
-}
diff --git a/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_object_test.go b/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_object_test.go
deleted file mode 100644
index 4afec71b9..000000000
--- a/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_object_test.go
+++ /dev/null
@@ -1,123 +0,0 @@
-package any_tests
-
-import (
- "testing"
-
- "github.com/stretchr/testify/require"
- "github.com/json-iterator/go"
-)
-
-func Test_read_object_as_any(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Get([]byte(`{"a":"stream","c":"d"}`))
- should.Equal(`{"a":"stream","c":"d"}`, any.ToString())
- // partial parse
- should.Equal("stream", any.Get("a").ToString())
- should.Equal("d", any.Get("c").ToString())
- should.Equal(2, len(any.Keys()))
- any = jsoniter.Get([]byte(`{"a":"stream","c":"d"}`))
- // full parse
- should.Equal(2, len(any.Keys()))
- should.Equal(2, any.Size())
- should.True(any.ToBool())
- should.Equal(0, any.ToInt())
- should.Equal(jsoniter.ObjectValue, any.ValueType())
- should.Nil(any.LastError())
- obj := struct {
- A string
- }{}
- any.ToVal(&obj)
- should.Equal("stream", obj.A)
-}
-
-func Test_object_lazy_any_get(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Get([]byte(`{"a":{"stream":{"c":"d"}}}`))
- should.Equal("d", any.Get("a", "stream", "c").ToString())
-}
-
-func Test_object_lazy_any_get_all(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Get([]byte(`{"a":[0],"stream":[1]}`))
- should.Contains(any.Get('*', 0).ToString(), `"a":0`)
-}
-
-func Test_object_lazy_any_get_invalid(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Get([]byte(`{}`))
- should.Equal(jsoniter.InvalidValue, any.Get("a", "stream", "c").ValueType())
- should.Equal(jsoniter.InvalidValue, any.Get(1).ValueType())
-}
-
-func Test_wrap_map_and_convert_to_any(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Wrap(map[string]interface{}{"a": 1})
- should.True(any.ToBool())
- should.Equal(0, any.ToInt())
- should.Equal(int32(0), any.ToInt32())
- should.Equal(int64(0), any.ToInt64())
- should.Equal(float32(0), any.ToFloat32())
- should.Equal(float64(0), any.ToFloat64())
- should.Equal(uint(0), any.ToUint())
- should.Equal(uint32(0), any.ToUint32())
- should.Equal(uint64(0), any.ToUint64())
-}
-
-func Test_wrap_object_and_convert_to_any(t *testing.T) {
- should := require.New(t)
- type TestObject struct {
- Field1 string
- field2 string
- }
- any := jsoniter.Wrap(TestObject{"hello", "world"})
- should.Equal("hello", any.Get("Field1").ToString())
- any = jsoniter.Wrap(TestObject{"hello", "world"})
- should.Equal(2, any.Size())
- should.Equal(`{"Field1":"hello"}`, any.Get('*').ToString())
-
- should.Equal(0, any.ToInt())
- should.Equal(int32(0), any.ToInt32())
- should.Equal(int64(0), any.ToInt64())
- should.Equal(float32(0), any.ToFloat32())
- should.Equal(float64(0), any.ToFloat64())
- should.Equal(uint(0), any.ToUint())
- should.Equal(uint32(0), any.ToUint32())
- should.Equal(uint64(0), any.ToUint64())
- should.True(any.ToBool())
- should.Equal(`{"Field1":"hello"}`, any.ToString())
-
- // cannot pass!
- //stream := NewStream(ConfigDefault, nil, 32)
- //any.WriteTo(stream)
- //should.Equal(`{"Field1":"hello"}`, string(stream.Buffer()))
- // cannot pass!
-
-}
-
-func Test_any_within_struct(t *testing.T) {
- should := require.New(t)
- type TestObject struct {
- Field1 jsoniter.Any
- Field2 jsoniter.Any
- }
- obj := TestObject{}
- err := jsoniter.UnmarshalFromString(`{"Field1": "hello", "Field2": [1,2,3]}`, &obj)
- should.Nil(err)
- should.Equal("hello", obj.Field1.ToString())
- should.Equal("[1,2,3]", obj.Field2.ToString())
-}
-
-func Test_object_wrapper_any_get_all(t *testing.T) {
- should := require.New(t)
- type TestObject struct {
- Field1 []int
- Field2 []int
- }
- any := jsoniter.Wrap(TestObject{[]int{1, 2}, []int{3, 4}})
- should.Contains(any.Get('*', 0).ToString(), `"Field2":3`)
- should.Contains(any.Keys(), "Field1")
- should.Contains(any.Keys(), "Field2")
- should.NotContains(any.Keys(), "Field3")
-
- //should.Contains(any.GetObject()["Field1"].GetArray()[0], 1)
-} \ No newline at end of file
diff --git a/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_string_test.go b/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_string_test.go
deleted file mode 100644
index 44058a328..000000000
--- a/vendor/github.com/json-iterator/go/any_tests/jsoniter_any_string_test.go
+++ /dev/null
@@ -1,58 +0,0 @@
-package any_tests
-
-import (
- "testing"
-
- "github.com/stretchr/testify/require"
- "github.com/json-iterator/go"
-)
-
-var stringConvertMap = map[string]string{
- "null": "",
- "321.1": "321.1",
- `"1.1"`: "1.1",
- `"-123.1"`: "-123.1",
- "0.0": "0.0",
- "0": "0",
- `"0"`: "0",
- `"0.0"`: "0.0",
- `"00.0"`: "00.0",
- "true": "true",
- "false": "false",
- `"true"`: "true",
- `"false"`: "false",
- `"true123"`: "true123",
- `"+1"`: "+1",
- "[]": "[]",
- "[1,2]": "[1,2]",
- "{}": "{}",
- `{"a":1, "stream":true}`: `{"a":1, "stream":true}`,
-}
-
-func Test_read_any_to_string(t *testing.T) {
- should := require.New(t)
- for k, v := range stringConvertMap {
- any := jsoniter.Get([]byte(k))
- should.Equal(v, any.ToString(), "original val "+k)
- }
-}
-
-func Test_read_string_as_any(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Get([]byte(`"hello"`))
- should.Equal("hello", any.ToString())
- should.True(any.ToBool())
- any = jsoniter.Get([]byte(`" "`))
- should.False(any.ToBool())
- any = jsoniter.Get([]byte(`"false"`))
- should.True(any.ToBool())
- any = jsoniter.Get([]byte(`"123"`))
- should.Equal(123, any.ToInt())
-}
-
-func Test_wrap_string(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Get([]byte("-32000")).MustBeValid()
- should.Equal(-32000, any.ToInt())
- should.NoError(any.LastError())
-}
diff --git a/vendor/github.com/json-iterator/go/any_tests/jsoniter_must_be_valid_test.go b/vendor/github.com/json-iterator/go/any_tests/jsoniter_must_be_valid_test.go
deleted file mode 100644
index 4b5d26222..000000000
--- a/vendor/github.com/json-iterator/go/any_tests/jsoniter_must_be_valid_test.go
+++ /dev/null
@@ -1,72 +0,0 @@
-package any_tests
-
-import (
- "testing"
-
- "github.com/stretchr/testify/require"
- "github.com/json-iterator/go"
-)
-
-// if must be valid is useless, just drop this test
-func Test_must_be_valid(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Get([]byte("123"))
- should.Equal(any.MustBeValid().ToInt(), 123)
-
- any = jsoniter.Wrap(int8(10))
- should.Equal(any.MustBeValid().ToInt(), 10)
-
- any = jsoniter.Wrap(int16(10))
- should.Equal(any.MustBeValid().ToInt(), 10)
-
- any = jsoniter.Wrap(int32(10))
- should.Equal(any.MustBeValid().ToInt(), 10)
-
- any = jsoniter.Wrap(int64(10))
- should.Equal(any.MustBeValid().ToInt(), 10)
-
- any = jsoniter.Wrap(uint(10))
- should.Equal(any.MustBeValid().ToInt(), 10)
-
- any = jsoniter.Wrap(uint8(10))
- should.Equal(any.MustBeValid().ToInt(), 10)
-
- any = jsoniter.Wrap(uint16(10))
- should.Equal(any.MustBeValid().ToInt(), 10)
-
- any = jsoniter.Wrap(uint32(10))
- should.Equal(any.MustBeValid().ToInt(), 10)
-
- any = jsoniter.Wrap(uint64(10))
- should.Equal(any.MustBeValid().ToInt(), 10)
-
- any = jsoniter.Wrap(float32(10))
- should.Equal(any.MustBeValid().ToFloat64(), float64(10))
-
- any = jsoniter.Wrap(float64(10))
- should.Equal(any.MustBeValid().ToFloat64(), float64(10))
-
- any = jsoniter.Wrap(true)
- should.Equal(any.MustBeValid().ToFloat64(), float64(1))
-
- any = jsoniter.Wrap(false)
- should.Equal(any.MustBeValid().ToFloat64(), float64(0))
-
- any = jsoniter.Wrap(nil)
- should.Equal(any.MustBeValid().ToFloat64(), float64(0))
-
- any = jsoniter.Wrap(struct{ age int }{age: 1})
- should.Equal(any.MustBeValid().ToFloat64(), float64(0))
-
- any = jsoniter.Wrap(map[string]interface{}{"abc": 1})
- should.Equal(any.MustBeValid().ToFloat64(), float64(0))
-
- any = jsoniter.Wrap("abc")
- should.Equal(any.MustBeValid().ToFloat64(), float64(0))
-
- any = jsoniter.Wrap([]int{})
- should.Equal(any.MustBeValid().ToFloat64(), float64(0))
-
- any = jsoniter.Wrap([]int{1, 2})
- should.Equal(any.MustBeValid().ToFloat64(), float64(1))
-}
diff --git a/vendor/github.com/json-iterator/go/any_tests/jsoniter_wrap_test.go b/vendor/github.com/json-iterator/go/any_tests/jsoniter_wrap_test.go
deleted file mode 100644
index d6e5aad35..000000000
--- a/vendor/github.com/json-iterator/go/any_tests/jsoniter_wrap_test.go
+++ /dev/null
@@ -1,119 +0,0 @@
-package any_tests
-
-import (
- "testing"
-
- "github.com/stretchr/testify/require"
- "github.com/json-iterator/go"
-)
-
-func Test_wrap_and_valuetype_everything(t *testing.T) {
- should := require.New(t)
- var i interface{}
- any := jsoniter.Get([]byte("123"))
- // default of number type is float64
- i = float64(123)
- should.Equal(i, any.GetInterface())
-
- any = jsoniter.Wrap(int8(10))
- should.Equal(any.ValueType(), jsoniter.NumberValue)
- should.Equal(any.LastError(), nil)
- // get interface is not int8 interface
- // i = int8(10)
- // should.Equal(i, any.GetInterface())
-
- any = jsoniter.Wrap(int16(10))
- should.Equal(any.ValueType(), jsoniter.NumberValue)
- should.Equal(any.LastError(), nil)
- //i = int16(10)
- //should.Equal(i, any.GetInterface())
-
- any = jsoniter.Wrap(int32(10))
- should.Equal(any.ValueType(), jsoniter.NumberValue)
- should.Equal(any.LastError(), nil)
- i = int32(10)
- should.Equal(i, any.GetInterface())
- any = jsoniter.Wrap(int64(10))
- should.Equal(any.ValueType(), jsoniter.NumberValue)
- should.Equal(any.LastError(), nil)
- i = int64(10)
- should.Equal(i, any.GetInterface())
-
- any = jsoniter.Wrap(uint(10))
- should.Equal(any.ValueType(), jsoniter.NumberValue)
- should.Equal(any.LastError(), nil)
- // not equal
- //i = uint(10)
- //should.Equal(i, any.GetInterface())
- any = jsoniter.Wrap(uint8(10))
- should.Equal(any.ValueType(), jsoniter.NumberValue)
- should.Equal(any.LastError(), nil)
- // not equal
- // i = uint8(10)
- // should.Equal(i, any.GetInterface())
- any = jsoniter.Wrap(uint16(10))
- should.Equal(any.ValueType(), jsoniter.NumberValue)
- should.Equal(any.LastError(), nil)
- any = jsoniter.Wrap(uint32(10))
- should.Equal(any.ValueType(), jsoniter.NumberValue)
- should.Equal(any.LastError(), nil)
- i = uint32(10)
- should.Equal(i, any.GetInterface())
- any = jsoniter.Wrap(uint64(10))
- should.Equal(any.ValueType(), jsoniter.NumberValue)
- should.Equal(any.LastError(), nil)
- i = uint64(10)
- should.Equal(i, any.GetInterface())
-
- any = jsoniter.Wrap(float32(10))
- should.Equal(any.ValueType(), jsoniter.NumberValue)
- should.Equal(any.LastError(), nil)
- // not equal
- //i = float32(10)
- //should.Equal(i, any.GetInterface())
- any = jsoniter.Wrap(float64(10))
- should.Equal(any.ValueType(), jsoniter.NumberValue)
- should.Equal(any.LastError(), nil)
- i = float64(10)
- should.Equal(i, any.GetInterface())
-
- any = jsoniter.Wrap(true)
- should.Equal(any.ValueType(), jsoniter.BoolValue)
- should.Equal(any.LastError(), nil)
- i = true
- should.Equal(i, any.GetInterface())
- any = jsoniter.Wrap(false)
- should.Equal(any.ValueType(), jsoniter.BoolValue)
- should.Equal(any.LastError(), nil)
- i = false
- should.Equal(i, any.GetInterface())
-
- any = jsoniter.Wrap(nil)
- should.Equal(any.ValueType(), jsoniter.NilValue)
- should.Equal(any.LastError(), nil)
- i = nil
- should.Equal(i, any.GetInterface())
-
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, nil, 32)
- any.WriteTo(stream)
- should.Equal("null", string(stream.Buffer()))
- should.Equal(any.LastError(), nil)
-
- any = jsoniter.Wrap(struct{ age int }{age: 1})
- should.Equal(any.ValueType(), jsoniter.ObjectValue)
- should.Equal(any.LastError(), nil)
- i = struct{ age int }{age: 1}
- should.Equal(i, any.GetInterface())
-
- any = jsoniter.Wrap(map[string]interface{}{"abc": 1})
- should.Equal(any.ValueType(), jsoniter.ObjectValue)
- should.Equal(any.LastError(), nil)
- i = map[string]interface{}{"abc": 1}
- should.Equal(i, any.GetInterface())
-
- any = jsoniter.Wrap("abc")
- i = "abc"
- should.Equal(i, any.GetInterface())
- should.Equal(nil, any.LastError())
-
-}
diff --git a/vendor/github.com/json-iterator/go/api_tests/config_test.go b/vendor/github.com/json-iterator/go/api_tests/config_test.go
deleted file mode 100644
index 75e9215c8..000000000
--- a/vendor/github.com/json-iterator/go/api_tests/config_test.go
+++ /dev/null
@@ -1,48 +0,0 @@
-package test
-
-import (
- "testing"
- "github.com/stretchr/testify/require"
- "github.com/json-iterator/go"
- "encoding/json"
-)
-
-func Test_use_number_for_unmarshal(t *testing.T) {
- should := require.New(t)
- api := jsoniter.Config{UseNumber: true}.Froze()
- var obj interface{}
- should.Nil(api.UnmarshalFromString("123", &obj))
- should.Equal(json.Number("123"), obj)
-}
-
-func Test_customize_float_marshal(t *testing.T) {
- should := require.New(t)
- json := jsoniter.Config{MarshalFloatWith6Digits: true}.Froze()
- str, err := json.MarshalToString(float32(1.23456789))
- should.Nil(err)
- should.Equal("1.234568", str)
-}
-
-
-func Test_customize_tag_key(t *testing.T) {
-
- type TestObject struct {
- Field string `orm:"field"`
- }
-
- should := require.New(t)
- json := jsoniter.Config{TagKey: "orm"}.Froze()
- str, err := json.MarshalToString(TestObject{"hello"})
- should.Nil(err)
- should.Equal(`{"field":"hello"}`, str)
-}
-
-func Test_read_large_number_as_interface(t *testing.T) {
- should := require.New(t)
- var val interface{}
- err := jsoniter.Config{UseNumber: true}.Froze().UnmarshalFromString(`123456789123456789123456789`, &val)
- should.Nil(err)
- output, err := jsoniter.MarshalToString(val)
- should.Nil(err)
- should.Equal(`123456789123456789123456789`, output)
-} \ No newline at end of file
diff --git a/vendor/github.com/json-iterator/go/api_tests/decoder_test.go b/vendor/github.com/json-iterator/go/api_tests/decoder_test.go
deleted file mode 100644
index e4d3a3a02..000000000
--- a/vendor/github.com/json-iterator/go/api_tests/decoder_test.go
+++ /dev/null
@@ -1,59 +0,0 @@
-package test
-
-import (
- "bytes"
- "github.com/stretchr/testify/require"
- "testing"
- "github.com/json-iterator/go"
- "io/ioutil"
- "encoding/json"
-)
-
-func Test_disallowUnknownFields(t *testing.T) {
- should := require.New(t)
- type TestObject struct{}
- var obj TestObject
- decoder := jsoniter.NewDecoder(bytes.NewBufferString(`{"field1":100}`))
- decoder.DisallowUnknownFields()
- should.Error(decoder.Decode(&obj))
-}
-
-
-func Test_new_decoder(t *testing.T) {
- should := require.New(t)
- decoder1 := json.NewDecoder(bytes.NewBufferString(`[1][2]`))
- decoder2 := jsoniter.NewDecoder(bytes.NewBufferString(`[1][2]`))
- arr1 := []int{}
- should.Nil(decoder1.Decode(&arr1))
- should.Equal([]int{1}, arr1)
- arr2 := []int{}
- should.True(decoder1.More())
- buffered, _ := ioutil.ReadAll(decoder1.Buffered())
- should.Equal("[2]", string(buffered))
- should.Nil(decoder2.Decode(&arr2))
- should.Equal([]int{1}, arr2)
- should.True(decoder2.More())
- buffered, _ = ioutil.ReadAll(decoder2.Buffered())
- should.Equal("[2]", string(buffered))
-
- should.Nil(decoder1.Decode(&arr1))
- should.Equal([]int{2}, arr1)
- should.False(decoder1.More())
- should.Nil(decoder2.Decode(&arr2))
- should.Equal([]int{2}, arr2)
- should.False(decoder2.More())
-}
-
-func Test_use_number(t *testing.T) {
- should := require.New(t)
- decoder1 := json.NewDecoder(bytes.NewBufferString(`123`))
- decoder1.UseNumber()
- decoder2 := jsoniter.NewDecoder(bytes.NewBufferString(`123`))
- decoder2.UseNumber()
- var obj1 interface{}
- should.Nil(decoder1.Decode(&obj1))
- should.Equal(json.Number("123"), obj1)
- var obj2 interface{}
- should.Nil(decoder2.Decode(&obj2))
- should.Equal(json.Number("123"), obj2)
-}
diff --git a/vendor/github.com/json-iterator/go/api_tests/encoder_18_test.go b/vendor/github.com/json-iterator/go/api_tests/encoder_18_test.go
deleted file mode 100644
index 35d306a3c..000000000
--- a/vendor/github.com/json-iterator/go/api_tests/encoder_18_test.go
+++ /dev/null
@@ -1,46 +0,0 @@
-//+build go1.8
-
-package test
-
-import (
- "bytes"
- "encoding/json"
- "testing"
- "unicode/utf8"
-
- "github.com/stretchr/testify/require"
- "github.com/json-iterator/go"
-)
-
-func Test_new_encoder(t *testing.T) {
- should := require.New(t)
- buf1 := &bytes.Buffer{}
- encoder1 := json.NewEncoder(buf1)
- encoder1.SetEscapeHTML(false)
- encoder1.Encode([]int{1})
- should.Equal("[1]\n", buf1.String())
- buf2 := &bytes.Buffer{}
- encoder2 := jsoniter.NewEncoder(buf2)
- encoder2.SetEscapeHTML(false)
- encoder2.Encode([]int{1})
- should.Equal("[1]\n", buf2.String())
-}
-
-func Test_string_encode_with_std_without_html_escape(t *testing.T) {
- api := jsoniter.Config{EscapeHTML: false}.Froze()
- should := require.New(t)
- for i := 0; i < utf8.RuneSelf; i++ {
- input := string([]byte{byte(i)})
- buf := &bytes.Buffer{}
- encoder := json.NewEncoder(buf)
- encoder.SetEscapeHTML(false)
- err := encoder.Encode(input)
- should.Nil(err)
- stdOutput := buf.String()
- stdOutput = stdOutput[:len(stdOutput)-1]
- jsoniterOutputBytes, err := api.Marshal(input)
- should.Nil(err)
- jsoniterOutput := string(jsoniterOutputBytes)
- should.Equal(stdOutput, jsoniterOutput)
- }
-}
diff --git a/vendor/github.com/json-iterator/go/api_tests/encoder_test.go b/vendor/github.com/json-iterator/go/api_tests/encoder_test.go
deleted file mode 100644
index 124508863..000000000
--- a/vendor/github.com/json-iterator/go/api_tests/encoder_test.go
+++ /dev/null
@@ -1,20 +0,0 @@
-package test
-
-import (
- "testing"
- "github.com/stretchr/testify/require"
- "bytes"
- "github.com/json-iterator/go"
- "encoding/json"
-)
-
-// Standard Encoder has trailing newline.
-func TestEncoderHasTrailingNewline(t *testing.T) {
- should := require.New(t)
- var buf, stdbuf bytes.Buffer
- enc := jsoniter.ConfigCompatibleWithStandardLibrary.NewEncoder(&buf)
- enc.Encode(1)
- stdenc := json.NewEncoder(&stdbuf)
- stdenc.Encode(1)
- should.Equal(stdbuf.Bytes(), buf.Bytes())
-} \ No newline at end of file
diff --git a/vendor/github.com/json-iterator/go/api_tests/marshal_indent_test.go b/vendor/github.com/json-iterator/go/api_tests/marshal_indent_test.go
deleted file mode 100644
index e227d786d..000000000
--- a/vendor/github.com/json-iterator/go/api_tests/marshal_indent_test.go
+++ /dev/null
@@ -1,36 +0,0 @@
-package test
-
-import (
- "encoding/json"
- "github.com/stretchr/testify/require"
- "testing"
- "github.com/json-iterator/go"
-)
-
-func Test_marshal_indent(t *testing.T) {
- should := require.New(t)
- obj := struct {
- F1 int
- F2 []int
- }{1, []int{2, 3, 4}}
- output, err := json.MarshalIndent(obj, "", " ")
- should.Nil(err)
- should.Equal("{\n \"F1\": 1,\n \"F2\": [\n 2,\n 3,\n 4\n ]\n}", string(output))
- output, err = jsoniter.MarshalIndent(obj, "", " ")
- should.Nil(err)
- should.Equal("{\n \"F1\": 1,\n \"F2\": [\n 2,\n 3,\n 4\n ]\n}", string(output))
-}
-
-func Test_marshal_indent_map(t *testing.T) {
- should := require.New(t)
- obj := map[int]int{1: 2}
- output, err := json.MarshalIndent(obj, "", " ")
- should.Nil(err)
- should.Equal("{\n \"1\": 2\n}", string(output))
- output, err = jsoniter.MarshalIndent(obj, "", " ")
- should.Nil(err)
- should.Equal("{\n \"1\": 2\n}", string(output))
- output, err = jsoniter.ConfigCompatibleWithStandardLibrary.MarshalIndent(obj, "", " ")
- should.Nil(err)
- should.Equal("{\n \"1\": 2\n}", string(output))
-}
diff --git a/vendor/github.com/json-iterator/go/benchmarks/encode_string_test.go b/vendor/github.com/json-iterator/go/benchmarks/encode_string_test.go
deleted file mode 100644
index c1cb1afb0..000000000
--- a/vendor/github.com/json-iterator/go/benchmarks/encode_string_test.go
+++ /dev/null
@@ -1,25 +0,0 @@
-package test
-
-import (
- "bytes"
- "github.com/json-iterator/go"
- "testing"
-)
-
-func Benchmark_encode_string_with_SetEscapeHTML(b *testing.B) {
- type V struct {
- S string
- B bool
- I int
- }
- var json = jsoniter.ConfigCompatibleWithStandardLibrary
- b.ReportAllocs()
- for i := 0; i < b.N; i++ {
- buf := &bytes.Buffer{}
- enc := json.NewEncoder(buf)
- enc.SetEscapeHTML(true)
- if err := enc.Encode(V{S: "s", B: true, I: 233}); err != nil {
- b.Fatal(err)
- }
- }
-}
diff --git a/vendor/github.com/json-iterator/go/benchmarks/jsoniter_large_file_test.go b/vendor/github.com/json-iterator/go/benchmarks/jsoniter_large_file_test.go
deleted file mode 100644
index 790e36a0b..000000000
--- a/vendor/github.com/json-iterator/go/benchmarks/jsoniter_large_file_test.go
+++ /dev/null
@@ -1,158 +0,0 @@
-package test
-
-import (
- "encoding/json"
- "io/ioutil"
- "os"
- "testing"
- "github.com/json-iterator/go"
-)
-
-//func Test_large_file(t *testing.T) {
-// file, err := os.Open("/tmp/large-file.json")
-// if err != nil {
-// t.Fatal(err)
-// }
-// iter := Parse(file, 4096)
-// count := 0
-// for iter.ReadArray() {
-// iter.Skip()
-// count++
-// }
-// if count != 11351 {
-// t.Fatal(count)
-// }
-//}
-
-func init() {
- ioutil.WriteFile("/tmp/large-file.json", []byte(`[{
- "person": {
- "id": "d50887ca-a6ce-4e59-b89f-14f0b5d03b03",
- "name": {
- "fullName": "Leonid Bugaev",
- "givenName": "Leonid",
- "familyName": "Bugaev"
- },
- "email": "leonsbox@gmail.com",
- "gender": "male",
- "location": "Saint Petersburg, Saint Petersburg, RU",
- "geo": {
- "city": "Saint Petersburg",
- "state": "Saint Petersburg",
- "country": "Russia",
- "lat": 59.9342802,
- "lng": 30.3350986
- },
- "bio": "Senior engineer at Granify.com",
- "site": "http://flickfaver.com",
- "avatar": "https://d1ts43dypk8bqh.cloudfront.net/v1/avatars/d50887ca-a6ce-4e59-b89f-14f0b5d03b03",
- "employment": {
- "name": "www.latera.ru",
- "title": "Software Engineer",
- "domain": "gmail.com"
- },
- "facebook": {
- "handle": "leonid.bugaev"
- },
- "github": {
- "handle": "buger",
- "id": 14009,
- "avatar": "https://avatars.githubusercontent.com/u/14009?v=3",
- "company": "Granify",
- "blog": "http://leonsbox.com",
- "followers": 95,
- "following": 10
- },
- "twitter": {
- "handle": "flickfaver",
- "id": 77004410,
- "bio": null,
- "followers": 2,
- "following": 1,
- "statuses": 5,
- "favorites": 0,
- "location": "",
- "site": "http://flickfaver.com",
- "avatar": null
- },
- "linkedin": {
- "handle": "in/leonidbugaev"
- },
- "googleplus": {
- "handle": null
- },
- "angellist": {
- "handle": "leonid-bugaev",
- "id": 61541,
- "bio": "Senior engineer at Granify.com",
- "blog": "http://buger.github.com",
- "site": "http://buger.github.com",
- "followers": 41,
- "avatar": "https://d1qb2nb5cznatu.cloudfront.net/users/61541-medium_jpg?1405474390"
- },
- "klout": {
- "handle": null,
- "score": null
- },
- "foursquare": {
- "handle": null
- },
- "aboutme": {
- "handle": "leonid.bugaev",
- "bio": null,
- "avatar": null
- },
- "gravatar": {
- "handle": "buger",
- "urls": [
- ],
- "avatar": "http://1.gravatar.com/avatar/f7c8edd577d13b8930d5522f28123510",
- "avatars": [
- {
- "url": "http://1.gravatar.com/avatar/f7c8edd577d13b8930d5522f28123510",
- "type": "thumbnail"
- }
- ]
- },
- "fuzzy": false
- },
- "company": "hello"
-}]`), 0666)
-}
-
-/*
-200000 8886 ns/op 4336 B/op 6 allocs/op
-50000 34244 ns/op 6744 B/op 14 allocs/op
-*/
-func Benchmark_jsoniter_large_file(b *testing.B) {
- b.ReportAllocs()
- for n := 0; n < b.N; n++ {
- file, _ := os.Open("/tmp/large-file.json")
- iter := jsoniter.Parse(jsoniter.ConfigDefault, file, 4096)
- count := 0
- iter.ReadArrayCB(func(iter *jsoniter.Iterator) bool {
- // Skip() is strict by default, use --tags jsoniter-sloppy to skip without validation
- iter.Skip()
- count++
- return true
- })
- file.Close()
- if iter.Error != nil {
- b.Error(iter.Error)
- }
- }
-}
-
-func Benchmark_json_large_file(b *testing.B) {
- b.ReportAllocs()
- for n := 0; n < b.N; n++ {
- file, _ := os.Open("/tmp/large-file.json")
- bytes, _ := ioutil.ReadAll(file)
- file.Close()
- result := []struct{}{}
- err := json.Unmarshal(bytes, &result)
- if err != nil {
- b.Error(err)
- }
- }
-}
diff --git a/vendor/github.com/json-iterator/go/config.go b/vendor/github.com/json-iterator/go/config.go
index aa4af6386..bd66947d7 100644
--- a/vendor/github.com/json-iterator/go/config.go
+++ b/vendor/github.com/json-iterator/go/config.go
@@ -2,10 +2,12 @@ package jsoniter
import (
"encoding/json"
+ "github.com/modern-go/concurrent"
+ "github.com/modern-go/reflect2"
"io"
- "unsafe"
- "github.com/v2pro/plz/reflect2"
+ "reflect"
"sync"
+ "unsafe"
)
// Config customize how the API should behave.
@@ -38,6 +40,8 @@ type API interface {
NewDecoder(reader io.Reader) *Decoder
Valid(data []byte) bool
RegisterExtension(extension Extension)
+ DecoderOf(typ reflect2.Type) ValDecoder
+ EncoderOf(typ reflect2.Type) ValEncoder
}
// ConfigDefault the default API
@@ -59,6 +63,63 @@ var ConfigFastest = Config{
ObjectFieldMustBeSimpleString: true, // do not unescape object field
}.Froze()
+type frozenConfig struct {
+ configBeforeFrozen Config
+ sortMapKeys bool
+ indentionStep int
+ objectFieldMustBeSimpleString bool
+ onlyTaggedField bool
+ disallowUnknownFields bool
+ decoderCache *concurrent.Map
+ encoderCache *concurrent.Map
+ extensions []Extension
+ streamPool *sync.Pool
+ iteratorPool *sync.Pool
+}
+
+func (cfg *frozenConfig) initCache() {
+ cfg.decoderCache = concurrent.NewMap()
+ cfg.encoderCache = concurrent.NewMap()
+}
+
+func (cfg *frozenConfig) addDecoderToCache(cacheKey uintptr, decoder ValDecoder) {
+ cfg.decoderCache.Store(cacheKey, decoder)
+}
+
+func (cfg *frozenConfig) addEncoderToCache(cacheKey uintptr, encoder ValEncoder) {
+ cfg.encoderCache.Store(cacheKey, encoder)
+}
+
+func (cfg *frozenConfig) getDecoderFromCache(cacheKey uintptr) ValDecoder {
+ decoder, found := cfg.decoderCache.Load(cacheKey)
+ if found {
+ return decoder.(ValDecoder)
+ }
+ return nil
+}
+
+func (cfg *frozenConfig) getEncoderFromCache(cacheKey uintptr) ValEncoder {
+ encoder, found := cfg.encoderCache.Load(cacheKey)
+ if found {
+ return encoder.(ValEncoder)
+ }
+ return nil
+}
+
+var cfgCache = concurrent.NewMap()
+
+func getFrozenConfigFromCache(cfg Config) *frozenConfig {
+ obj, found := cfgCache.Load(cfg)
+ if found {
+ return obj.(*frozenConfig)
+ }
+ return nil
+}
+
+func addFrozenConfigToCache(cfg Config, frozenConfig *frozenConfig) {
+ cfgCache.Store(cfg, frozenConfig)
+}
+
// Froze forge API from config
func (cfg Config) Froze() API {
api := &frozenConfig{
@@ -133,6 +194,11 @@ func (cfg *frozenConfig) validateJsonRawMessage(extension EncoderExtension) {
func (cfg *frozenConfig) useNumber(extension DecoderExtension) {
extension[reflect2.TypeOfPtr((*interface{})(nil)).Elem()] = &funcDecoder{func(ptr unsafe.Pointer, iter *Iterator) {
+ exitingValue := *((*interface{})(ptr))
+ if exitingValue != nil && reflect.TypeOf(exitingValue).Kind() == reflect.Ptr {
+ iter.ReadVal(exitingValue)
+ return
+ }
if iter.WhatIsNext() == NumberValue {
*((*interface{})(ptr)) = json.Number(iter.readNumberAsString())
} else {
diff --git a/vendor/github.com/json-iterator/go/config_with_sync_map.go b/vendor/github.com/json-iterator/go/config_with_sync_map.go
deleted file mode 100644
index 7f14812c3..000000000
--- a/vendor/github.com/json-iterator/go/config_with_sync_map.go
+++ /dev/null
@@ -1,64 +0,0 @@
-//+build go1.9
-
-package jsoniter
-
-import (
- "sync"
-)
-
-type frozenConfig struct {
- configBeforeFrozen Config
- sortMapKeys bool
- indentionStep int
- objectFieldMustBeSimpleString bool
- onlyTaggedField bool
- disallowUnknownFields bool
- decoderCache sync.Map
- encoderCache sync.Map
- extensions []Extension
- streamPool *sync.Pool
- iteratorPool *sync.Pool
-}
-
-func (cfg *frozenConfig) initCache() {
- cfg.decoderCache = sync.Map{}
- cfg.encoderCache = sync.Map{}
-}
-
-func (cfg *frozenConfig) addDecoderToCache(cacheKey uintptr, decoder ValDecoder) {
- cfg.decoderCache.Store(cacheKey, decoder)
-}
-
-func (cfg *frozenConfig) addEncoderToCache(cacheKey uintptr, encoder ValEncoder) {
- cfg.encoderCache.Store(cacheKey, encoder)
-}
-
-func (cfg *frozenConfig) getDecoderFromCache(cacheKey uintptr) ValDecoder {
- decoder, found := cfg.decoderCache.Load(cacheKey)
- if found {
- return decoder.(ValDecoder)
- }
- return nil
-}
-
-func (cfg *frozenConfig) getEncoderFromCache(cacheKey uintptr) ValEncoder {
- encoder, found := cfg.encoderCache.Load(cacheKey)
- if found {
- return encoder.(ValEncoder)
- }
- return nil
-}
-
-var cfgCache = &sync.Map{}
-
-func getFrozenConfigFromCache(cfg Config) *frozenConfig {
- obj, found := cfgCache.Load(cfg)
- if found {
- return obj.(*frozenConfig)
- }
- return nil
-}
-
-func addFrozenConfigToCache(cfg Config, frozenConfig *frozenConfig) {
- cfgCache.Store(cfg, frozenConfig)
-}
diff --git a/vendor/github.com/json-iterator/go/config_without_sync_map.go b/vendor/github.com/json-iterator/go/config_without_sync_map.go
deleted file mode 100644
index 5906cd550..000000000
--- a/vendor/github.com/json-iterator/go/config_without_sync_map.go
+++ /dev/null
@@ -1,70 +0,0 @@
-//+build !go1.9
-
-package jsoniter
-
-import (
- "sync"
-)
-
-type frozenConfig struct {
- configBeforeFrozen Config
- sortMapKeys bool
- indentionStep int
- objectFieldMustBeSimpleString bool
- onlyTaggedField bool
- disallowUnknownFields bool
- cacheLock *sync.RWMutex
- decoderCache map[uintptr]ValDecoder
- encoderCache map[uintptr]ValEncoder
- extensions []Extension
- streamPool *sync.Pool
- iteratorPool *sync.Pool
-}
-
-func (cfg *frozenConfig) initCache() {
- cfg.cacheLock = &sync.RWMutex{}
- cfg.decoderCache = map[uintptr]ValDecoder{}
- cfg.encoderCache = map[uintptr]ValEncoder{}
-}
-
-func (cfg *frozenConfig) addDecoderToCache(cacheKey uintptr, decoder ValDecoder) {
- cfg.cacheLock.Lock()
- cfg.decoderCache[cacheKey] = decoder
- cfg.cacheLock.Unlock()
-}
-
-func (cfg *frozenConfig) addEncoderToCache(cacheKey uintptr, encoder ValEncoder) {
- cfg.cacheLock.Lock()
- cfg.encoderCache[cacheKey] = encoder
- cfg.cacheLock.Unlock()
-}
-
-func (cfg *frozenConfig) getDecoderFromCache(cacheKey uintptr) ValDecoder {
- cfg.cacheLock.RLock()
- decoder, _ := cfg.decoderCache[cacheKey].(ValDecoder)
- cfg.cacheLock.RUnlock()
- return decoder
-}
-
-func (cfg *frozenConfig) getEncoderFromCache(cacheKey uintptr) ValEncoder {
- cfg.cacheLock.RLock()
- encoder, _ := cfg.encoderCache[cacheKey].(ValEncoder)
- cfg.cacheLock.RUnlock()
- return encoder
-}
-
-var cfgCacheLock = &sync.RWMutex{}
-var cfgCache = map[Config]*frozenConfig{}
-
-func getFrozenConfigFromCache(cfg Config) *frozenConfig {
- cfgCacheLock.RLock()
- frozenConfig := cfgCache[cfg]
- cfgCacheLock.RUnlock()
- return frozenConfig
-}
-
-func addFrozenConfigToCache(cfg Config, frozenConfig *frozenConfig) {
- cfgCacheLock.Lock()
- cfgCache[cfg] = frozenConfig
- cfgCacheLock.Unlock()
-}
diff --git a/vendor/github.com/json-iterator/go/example_test.go b/vendor/github.com/json-iterator/go/example_test.go
index 1c8f341c1..7f521a300 100644
--- a/vendor/github.com/json-iterator/go/example_test.go
+++ b/vendor/github.com/json-iterator/go/example_test.go
@@ -3,6 +3,7 @@ package jsoniter
import (
"fmt"
"os"
+ "strings"
)
func ExampleMarshal() {
@@ -93,3 +94,28 @@ func ExampleGet() {
// Output:
// Crimson
}
+
+func ExampleMapKey() {
+ hello := MyKey("hello")
+ output, _ := Marshal(map[*MyKey]string{&hello: "world"})
+ fmt.Println(string(output))
+ obj := map[*MyKey]string{}
+ Unmarshal(output, &obj)
+ for k, v := range obj {
+ fmt.Println(*k, v)
+ }
+ // Output:
+ // {"Hello":"world"}
+ // Hel world
+}
+
+type MyKey string
+
+func (m *MyKey) MarshalText() ([]byte, error) {
+ return []byte(strings.Replace(string(*m), "h", "H", -1)), nil
+}
+
+func (m *MyKey) UnmarshalText(text []byte) error {
+ *m = MyKey(text[:3])
+ return nil
+}
diff --git a/vendor/github.com/json-iterator/go/extension_tests/decoder_test.go b/vendor/github.com/json-iterator/go/extension_tests/decoder_test.go
deleted file mode 100644
index d25e597b4..000000000
--- a/vendor/github.com/json-iterator/go/extension_tests/decoder_test.go
+++ /dev/null
@@ -1,101 +0,0 @@
-package test
-
-import (
- "testing"
- "unsafe"
- "time"
- "github.com/json-iterator/go"
- "github.com/stretchr/testify/require"
- "strconv"
-)
-
-func Test_customize_type_decoder(t *testing.T) {
- t.Skip()
- jsoniter.RegisterTypeDecoderFunc("time.Time", func(ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- t, err := time.ParseInLocation("2006-01-02 15:04:05", iter.ReadString(), time.UTC)
- if err != nil {
- iter.Error = err
- return
- }
- *((*time.Time)(ptr)) = t
- })
- //defer jsoniter.ConfigDefault.(*frozenConfig).cleanDecoders()
- val := time.Time{}
- err := jsoniter.Unmarshal([]byte(`"2016-12-05 08:43:28"`), &val)
- if err != nil {
- t.Fatal(err)
- }
- year, month, day := val.Date()
- if year != 2016 || month != 12 || day != 5 {
- t.Fatal(val)
- }
-}
-
-func Test_customize_byte_array_encoder(t *testing.T) {
- t.Skip()
- //jsoniter.ConfigDefault.(*frozenConfig).cleanEncoders()
- should := require.New(t)
- jsoniter.RegisterTypeEncoderFunc("[]uint8", func(ptr unsafe.Pointer, stream *jsoniter.Stream) {
- t := *((*[]byte)(ptr))
- stream.WriteString(string(t))
- }, nil)
- //defer jsoniter.ConfigDefault.(*frozenConfig).cleanEncoders()
- val := []byte("abc")
- str, err := jsoniter.MarshalToString(val)
- should.Nil(err)
- should.Equal(`"abc"`, str)
-}
-
-func Test_customize_field_decoder(t *testing.T) {
- type Tom struct {
- field1 string
- }
- jsoniter.RegisterFieldDecoderFunc("jsoniter.Tom", "field1", func(ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- *((*string)(ptr)) = strconv.Itoa(iter.ReadInt())
- })
- //defer jsoniter.ConfigDefault.(*frozenConfig).cleanDecoders()
- tom := Tom{}
- err := jsoniter.Unmarshal([]byte(`{"field1": 100}`), &tom)
- if err != nil {
- t.Fatal(err)
- }
-}
-
-
-func Test_recursive_empty_interface_customization(t *testing.T) {
- t.Skip()
- var obj interface{}
- jsoniter.RegisterTypeDecoderFunc("interface {}", func(ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- switch iter.WhatIsNext() {
- case jsoniter.NumberValue:
- *(*interface{})(ptr) = iter.ReadInt64()
- default:
- *(*interface{})(ptr) = iter.Read()
- }
- })
- should := require.New(t)
- jsoniter.Unmarshal([]byte("[100]"), &obj)
- should.Equal([]interface{}{int64(100)}, obj)
-}
-
-type MyInterface interface {
- Hello() string
-}
-
-type MyString string
-
-func (ms MyString) Hello() string {
- return string(ms)
-}
-
-func Test_read_custom_interface(t *testing.T) {
- t.Skip()
- should := require.New(t)
- var val MyInterface
- jsoniter.RegisterTypeDecoderFunc("jsoniter.MyInterface", func(ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- *((*MyInterface)(ptr)) = MyString(iter.ReadString())
- })
- err := jsoniter.UnmarshalFromString(`"hello"`, &val)
- should.Nil(err)
- should.Equal("hello", val.Hello())
-} \ No newline at end of file
diff --git a/vendor/github.com/json-iterator/go/extension_tests/extension_test.go b/vendor/github.com/json-iterator/go/extension_tests/extension_test.go
deleted file mode 100644
index 83571bf3e..000000000
--- a/vendor/github.com/json-iterator/go/extension_tests/extension_test.go
+++ /dev/null
@@ -1,71 +0,0 @@
-package test
-
-import (
- "unsafe"
- "strconv"
- "testing"
- "github.com/stretchr/testify/require"
- "github.com/json-iterator/go"
-)
-
-type TestObject1 struct {
- Field1 string
-}
-
-type testExtension struct {
- jsoniter.DummyExtension
-}
-
-func (extension *testExtension) UpdateStructDescriptor(structDescriptor *jsoniter.StructDescriptor) {
- if structDescriptor.Type.String() != "test.TestObject1" {
- return
- }
- binding := structDescriptor.GetField("Field1")
- binding.Encoder = &funcEncoder{fun: func(ptr unsafe.Pointer, stream *jsoniter.Stream) {
- str := *((*string)(ptr))
- val, _ := strconv.Atoi(str)
- stream.WriteInt(val)
- }}
- binding.Decoder = &funcDecoder{func(ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- *((*string)(ptr)) = strconv.Itoa(iter.ReadInt())
- }}
- binding.ToNames = []string{"field-1"}
- binding.FromNames = []string{"field-1"}
-}
-
-func Test_customize_field_by_extension(t *testing.T) {
- should := require.New(t)
- cfg := jsoniter.Config{}.Froze()
- cfg.RegisterExtension(&testExtension{})
- obj := TestObject1{}
- err := cfg.UnmarshalFromString(`{"field-1": 100}`, &obj)
- should.Nil(err)
- should.Equal("100", obj.Field1)
- str, err := cfg.MarshalToString(obj)
- should.Nil(err)
- should.Equal(`{"field-1":100}`, str)
-}
-
-type funcDecoder struct {
- fun jsoniter.DecoderFunc
-}
-
-func (decoder *funcDecoder) Decode(ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- decoder.fun(ptr, iter)
-}
-
-type funcEncoder struct {
- fun jsoniter.EncoderFunc
- isEmptyFunc func(ptr unsafe.Pointer) bool
-}
-
-func (encoder *funcEncoder) Encode(ptr unsafe.Pointer, stream *jsoniter.Stream) {
- encoder.fun(ptr, stream)
-}
-
-func (encoder *funcEncoder) IsEmpty(ptr unsafe.Pointer) bool {
- if encoder.isEmptyFunc == nil {
- return false
- }
- return encoder.isEmptyFunc(ptr)
-}
diff --git a/vendor/github.com/json-iterator/go/extra/fuzzy_decoder.go b/vendor/github.com/json-iterator/go/extra/fuzzy_decoder.go
deleted file mode 100644
index 4091f4b87..000000000
--- a/vendor/github.com/json-iterator/go/extra/fuzzy_decoder.go
+++ /dev/null
@@ -1,279 +0,0 @@
-package extra
-
-import (
- "encoding/json"
- "io"
- "math"
- "reflect"
- "strings"
- "unsafe"
-
- "github.com/json-iterator/go"
- "github.com/v2pro/plz/reflect2"
-)
-
-const maxUint = ^uint(0)
-const maxInt = int(maxUint >> 1)
-const minInt = -maxInt - 1
-
-// RegisterFuzzyDecoders decode input from PHP with tolerance.
-// It will handle string/number auto conversation, and treat empty [] as empty struct.
-func RegisterFuzzyDecoders() {
- jsoniter.RegisterExtension(&tolerateEmptyArrayExtension{})
- jsoniter.RegisterTypeDecoder("string", &fuzzyStringDecoder{})
- jsoniter.RegisterTypeDecoder("float32", &fuzzyFloat32Decoder{})
- jsoniter.RegisterTypeDecoder("float64", &fuzzyFloat64Decoder{})
- jsoniter.RegisterTypeDecoder("int", &fuzzyIntegerDecoder{func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- if isFloat {
- val := iter.ReadFloat64()
- if val > float64(maxInt) || val < float64(minInt) {
- iter.ReportError("fuzzy decode int", "exceed range")
- return
- }
- *((*int)(ptr)) = int(val)
- } else {
- *((*int)(ptr)) = iter.ReadInt()
- }
- }})
- jsoniter.RegisterTypeDecoder("uint", &fuzzyIntegerDecoder{func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- if isFloat {
- val := iter.ReadFloat64()
- if val > float64(maxUint) || val < 0 {
- iter.ReportError("fuzzy decode uint", "exceed range")
- return
- }
- *((*uint)(ptr)) = uint(val)
- } else {
- *((*uint)(ptr)) = iter.ReadUint()
- }
- }})
- jsoniter.RegisterTypeDecoder("int8", &fuzzyIntegerDecoder{func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- if isFloat {
- val := iter.ReadFloat64()
- if val > float64(math.MaxInt8) || val < float64(math.MinInt8) {
- iter.ReportError("fuzzy decode int8", "exceed range")
- return
- }
- *((*int8)(ptr)) = int8(val)
- } else {
- *((*int8)(ptr)) = iter.ReadInt8()
- }
- }})
- jsoniter.RegisterTypeDecoder("uint8", &fuzzyIntegerDecoder{func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- if isFloat {
- val := iter.ReadFloat64()
- if val > float64(math.MaxUint8) || val < 0 {
- iter.ReportError("fuzzy decode uint8", "exceed range")
- return
- }
- *((*uint8)(ptr)) = uint8(val)
- } else {
- *((*uint8)(ptr)) = iter.ReadUint8()
- }
- }})
- jsoniter.RegisterTypeDecoder("int16", &fuzzyIntegerDecoder{func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- if isFloat {
- val := iter.ReadFloat64()
- if val > float64(math.MaxInt16) || val < float64(math.MinInt16) {
- iter.ReportError("fuzzy decode int16", "exceed range")
- return
- }
- *((*int16)(ptr)) = int16(val)
- } else {
- *((*int16)(ptr)) = iter.ReadInt16()
- }
- }})
- jsoniter.RegisterTypeDecoder("uint16", &fuzzyIntegerDecoder{func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- if isFloat {
- val := iter.ReadFloat64()
- if val > float64(math.MaxUint16) || val < 0 {
- iter.ReportError("fuzzy decode uint16", "exceed range")
- return
- }
- *((*uint16)(ptr)) = uint16(val)
- } else {
- *((*uint16)(ptr)) = iter.ReadUint16()
- }
- }})
- jsoniter.RegisterTypeDecoder("int32", &fuzzyIntegerDecoder{func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- if isFloat {
- val := iter.ReadFloat64()
- if val > float64(math.MaxInt32) || val < float64(math.MinInt32) {
- iter.ReportError("fuzzy decode int32", "exceed range")
- return
- }
- *((*int32)(ptr)) = int32(val)
- } else {
- *((*int32)(ptr)) = iter.ReadInt32()
- }
- }})
- jsoniter.RegisterTypeDecoder("uint32", &fuzzyIntegerDecoder{func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- if isFloat {
- val := iter.ReadFloat64()
- if val > float64(math.MaxUint32) || val < 0 {
- iter.ReportError("fuzzy decode uint32", "exceed range")
- return
- }
- *((*uint32)(ptr)) = uint32(val)
- } else {
- *((*uint32)(ptr)) = iter.ReadUint32()
- }
- }})
- jsoniter.RegisterTypeDecoder("int64", &fuzzyIntegerDecoder{func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- if isFloat {
- val := iter.ReadFloat64()
- if val > float64(math.MaxInt64) || val < float64(math.MinInt64) {
- iter.ReportError("fuzzy decode int64", "exceed range")
- return
- }
- *((*int64)(ptr)) = int64(val)
- } else {
- *((*int64)(ptr)) = iter.ReadInt64()
- }
- }})
- jsoniter.RegisterTypeDecoder("uint64", &fuzzyIntegerDecoder{func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- if isFloat {
- val := iter.ReadFloat64()
- if val > float64(math.MaxUint64) || val < 0 {
- iter.ReportError("fuzzy decode uint64", "exceed range")
- return
- }
- *((*uint64)(ptr)) = uint64(val)
- } else {
- *((*uint64)(ptr)) = iter.ReadUint64()
- }
- }})
-}
-
-type tolerateEmptyArrayExtension struct {
- jsoniter.DummyExtension
-}
-
-func (extension *tolerateEmptyArrayExtension) DecorateDecoder(typ reflect2.Type, decoder jsoniter.ValDecoder) jsoniter.ValDecoder {
- if typ.Kind() == reflect.Struct || typ.Kind() == reflect.Map {
- return &tolerateEmptyArrayDecoder{decoder}
- }
- return decoder
-}
-
-type tolerateEmptyArrayDecoder struct {
- valDecoder jsoniter.ValDecoder
-}
-
-func (decoder *tolerateEmptyArrayDecoder) Decode(ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- if iter.WhatIsNext() == jsoniter.ArrayValue {
- iter.Skip()
- newIter := iter.Pool().BorrowIterator([]byte("{}"))
- defer iter.Pool().ReturnIterator(newIter)
- decoder.valDecoder.Decode(ptr, newIter)
- } else {
- decoder.valDecoder.Decode(ptr, iter)
- }
-}
-
-type fuzzyStringDecoder struct {
-}
-
-func (decoder *fuzzyStringDecoder) Decode(ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- valueType := iter.WhatIsNext()
- switch valueType {
- case jsoniter.NumberValue:
- var number json.Number
- iter.ReadVal(&number)
- *((*string)(ptr)) = string(number)
- case jsoniter.StringValue:
- *((*string)(ptr)) = iter.ReadString()
- default:
- iter.ReportError("fuzzyStringDecoder", "not number or string")
- }
-}
-
-type fuzzyIntegerDecoder struct {
- fun func(isFloat bool, ptr unsafe.Pointer, iter *jsoniter.Iterator)
-}
-
-func (decoder *fuzzyIntegerDecoder) Decode(ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- valueType := iter.WhatIsNext()
- var str string
- switch valueType {
- case jsoniter.NumberValue:
- var number json.Number
- iter.ReadVal(&number)
- str = string(number)
- case jsoniter.StringValue:
- str = iter.ReadString()
- case jsoniter.BoolValue:
- if iter.ReadBool() {
- str = "1"
- } else {
- str = "0"
- }
- default:
- iter.ReportError("fuzzyIntegerDecoder", "not number or string")
- }
- newIter := iter.Pool().BorrowIterator([]byte(str))
- defer iter.Pool().ReturnIterator(newIter)
- isFloat := strings.IndexByte(str, '.') != -1
- decoder.fun(isFloat, ptr, newIter)
- if newIter.Error != nil && newIter.Error != io.EOF {
- iter.Error = newIter.Error
- }
-}
-
-type fuzzyFloat32Decoder struct {
-}
-
-func (decoder *fuzzyFloat32Decoder) Decode(ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- valueType := iter.WhatIsNext()
- var str string
- switch valueType {
- case jsoniter.NumberValue:
- *((*float32)(ptr)) = iter.ReadFloat32()
- case jsoniter.StringValue:
- str = iter.ReadString()
- newIter := iter.Pool().BorrowIterator([]byte(str))
- defer iter.Pool().ReturnIterator(newIter)
- *((*float32)(ptr)) = newIter.ReadFloat32()
- if newIter.Error != nil && newIter.Error != io.EOF {
- iter.Error = newIter.Error
- }
- case jsoniter.BoolValue:
- // support bool to float32
- if iter.ReadBool() {
- *((*float32)(ptr)) = 1
- } else {
- *((*float32)(ptr)) = 0
- }
- default:
- iter.ReportError("fuzzyFloat32Decoder", "not number or string")
- }
-}
-
-type fuzzyFloat64Decoder struct {
-}
-
-func (decoder *fuzzyFloat64Decoder) Decode(ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- valueType := iter.WhatIsNext()
- var str string
- switch valueType {
- case jsoniter.NumberValue:
- *((*float64)(ptr)) = iter.ReadFloat64()
- case jsoniter.StringValue:
- str = iter.ReadString()
- newIter := iter.Pool().BorrowIterator([]byte(str))
- defer iter.Pool().ReturnIterator(newIter)
- *((*float64)(ptr)) = newIter.ReadFloat64()
- if newIter.Error != nil && newIter.Error != io.EOF {
- iter.Error = newIter.Error
- }
- case jsoniter.BoolValue:
- // support bool to float64
- if iter.ReadBool() {
- *((*float64)(ptr)) = 1
- } else {
- *((*float64)(ptr)) = 0
- }
- default:
- iter.ReportError("fuzzyFloat32Decoder", "not number or string")
- }
-}
diff --git a/vendor/github.com/json-iterator/go/extra/fuzzy_decoder_test.go b/vendor/github.com/json-iterator/go/extra/fuzzy_decoder_test.go
deleted file mode 100644
index b6a15596d..000000000
--- a/vendor/github.com/json-iterator/go/extra/fuzzy_decoder_test.go
+++ /dev/null
@@ -1,359 +0,0 @@
-package extra
-
-import (
- "testing"
-
- "github.com/json-iterator/go"
- "github.com/stretchr/testify/require"
-)
-
-func init() {
- RegisterFuzzyDecoders()
-}
-
-func Test_any_to_string(t *testing.T) {
- should := require.New(t)
- var val string
- should.Nil(jsoniter.UnmarshalFromString(`"100"`, &val))
- should.Equal("100", val)
- should.Nil(jsoniter.UnmarshalFromString("10", &val))
- should.Equal("10", val)
- should.Nil(jsoniter.UnmarshalFromString("10.1", &val))
- should.Equal("10.1", val)
- should.Nil(jsoniter.UnmarshalFromString(`"10.1"`, &val))
- should.Equal("10.1", val)
- should.NotNil(jsoniter.UnmarshalFromString("{}", &val))
- should.NotNil(jsoniter.UnmarshalFromString("[]", &val))
-}
-func Test_any_to_int64(t *testing.T) {
- should := require.New(t)
- var val int64
-
- should.Nil(jsoniter.UnmarshalFromString(`"100"`, &val))
- should.Equal(int64(100), val)
- should.Nil(jsoniter.UnmarshalFromString(`"10.1"`, &val))
- should.Equal(int64(10), val)
- should.Nil(jsoniter.UnmarshalFromString(`10.1`, &val))
- should.Equal(int64(10), val)
- should.Nil(jsoniter.UnmarshalFromString(`10`, &val))
- should.Equal(int64(10), val)
-
- // bool part
- should.Nil(jsoniter.UnmarshalFromString(`false`, &val))
- should.Equal(int64(0), val)
- should.Nil(jsoniter.UnmarshalFromString(`true`, &val))
- should.Equal(int64(1), val)
-
- should.Nil(jsoniter.UnmarshalFromString(`-10`, &val))
- should.Equal(int64(-10), val)
- should.NotNil(jsoniter.UnmarshalFromString("{}", &val))
- should.NotNil(jsoniter.UnmarshalFromString("[]", &val))
- // large float to int
- should.NotNil(jsoniter.UnmarshalFromString(`1234512345123451234512345.0`, &val))
-}
-
-func Test_any_to_int(t *testing.T) {
- should := require.New(t)
- var val int
- should.Nil(jsoniter.UnmarshalFromString(`"100"`, &val))
- should.Equal(100, val)
- should.Nil(jsoniter.UnmarshalFromString(`"10.1"`, &val))
- should.Equal(10, val)
- should.Nil(jsoniter.UnmarshalFromString(`10.1`, &val))
- should.Equal(10, val)
- should.Nil(jsoniter.UnmarshalFromString(`10`, &val))
- should.Equal(10, val)
-
- // bool part
- should.Nil(jsoniter.UnmarshalFromString(`false`, &val))
- should.Equal(0, val)
- should.Nil(jsoniter.UnmarshalFromString(`true`, &val))
- should.Equal(1, val)
-
- should.NotNil(jsoniter.UnmarshalFromString("{}", &val))
- should.NotNil(jsoniter.UnmarshalFromString("[]", &val))
- // large float to int
- should.NotNil(jsoniter.UnmarshalFromString(`1234512345123451234512345.0`, &val))
-}
-
-func Test_any_to_int16(t *testing.T) {
- should := require.New(t)
- var val int16
- should.Nil(jsoniter.UnmarshalFromString(`"100"`, &val))
- should.Equal(int16(100), val)
- should.Nil(jsoniter.UnmarshalFromString(`"10.1"`, &val))
- should.Equal(int16(10), val)
- should.Nil(jsoniter.UnmarshalFromString(`10.1`, &val))
- should.Equal(int16(10), val)
- should.Nil(jsoniter.UnmarshalFromString(`10`, &val))
- should.Equal(int16(10), val)
-
- // bool part
- should.Nil(jsoniter.UnmarshalFromString(`false`, &val))
- should.Equal(int16(0), val)
- should.Nil(jsoniter.UnmarshalFromString(`true`, &val))
- should.Equal(int16(1), val)
-
- should.NotNil(jsoniter.UnmarshalFromString("{}", &val))
- should.NotNil(jsoniter.UnmarshalFromString("[]", &val))
- // large float to int
- should.NotNil(jsoniter.UnmarshalFromString(`1234512345123451234512345.0`, &val))
-}
-
-func Test_any_to_int32(t *testing.T) {
- should := require.New(t)
- var val int32
- should.Nil(jsoniter.UnmarshalFromString(`"100"`, &val))
- should.Equal(int32(100), val)
- should.Nil(jsoniter.UnmarshalFromString(`"10.1"`, &val))
- should.Equal(int32(10), val)
- should.Nil(jsoniter.UnmarshalFromString(`10.1`, &val))
- should.Equal(int32(10), val)
- should.Nil(jsoniter.UnmarshalFromString(`10`, &val))
- should.Equal(int32(10), val)
-
- // bool part
- should.Nil(jsoniter.UnmarshalFromString(`false`, &val))
- should.Equal(int32(0), val)
- should.Nil(jsoniter.UnmarshalFromString(`true`, &val))
- should.Equal(int32(1), val)
-
- should.NotNil(jsoniter.UnmarshalFromString("{}", &val))
- should.NotNil(jsoniter.UnmarshalFromString("[]", &val))
- // large float to int
- should.NotNil(jsoniter.UnmarshalFromString(`1234512345123451234512345.0`, &val))
-}
-
-func Test_any_to_int8(t *testing.T) {
- should := require.New(t)
- var val int8
- should.Nil(jsoniter.UnmarshalFromString(`"100"`, &val))
- should.Equal(int8(100), val)
- should.Nil(jsoniter.UnmarshalFromString(`"10.1"`, &val))
- should.Equal(int8(10), val)
- should.Nil(jsoniter.UnmarshalFromString(`10.1`, &val))
- should.Equal(int8(10), val)
- should.Nil(jsoniter.UnmarshalFromString(`10`, &val))
- should.Equal(int8(10), val)
-
- // bool part
- should.Nil(jsoniter.UnmarshalFromString(`false`, &val))
- should.Equal(int8(0), val)
- should.Nil(jsoniter.UnmarshalFromString(`true`, &val))
- should.Equal(int8(1), val)
-
- should.NotNil(jsoniter.UnmarshalFromString("{}", &val))
- should.NotNil(jsoniter.UnmarshalFromString("[]", &val))
- // large float to int
- should.NotNil(jsoniter.UnmarshalFromString(`1234512345123451234512345.0`, &val))
-}
-
-func Test_any_to_uint8(t *testing.T) {
- should := require.New(t)
- var val uint8
- should.Nil(jsoniter.UnmarshalFromString(`"100"`, &val))
- should.Equal(uint8(100), val)
- should.Nil(jsoniter.UnmarshalFromString(`"10.1"`, &val))
- should.Equal(uint8(10), val)
- should.Nil(jsoniter.UnmarshalFromString(`10.1`, &val))
- should.Equal(uint8(10), val)
- should.Nil(jsoniter.UnmarshalFromString(`10`, &val))
- should.Equal(uint8(10), val)
-
- // bool part
- should.Nil(jsoniter.UnmarshalFromString(`false`, &val))
- should.Equal(uint8(0), val)
- should.Nil(jsoniter.UnmarshalFromString(`true`, &val))
- should.Equal(uint8(1), val)
-
- should.NotNil(jsoniter.UnmarshalFromString("{}", &val))
- should.NotNil(jsoniter.UnmarshalFromString("[]", &val))
- // large float to int
- should.NotNil(jsoniter.UnmarshalFromString(`1234512345123451234512345.0`, &val))
-}
-
-func Test_any_to_uint64(t *testing.T) {
- should := require.New(t)
- var val uint64
-
- should.Nil(jsoniter.UnmarshalFromString(`"100"`, &val))
- should.Equal(uint64(100), val)
- should.Nil(jsoniter.UnmarshalFromString(`"10.1"`, &val))
- should.Equal(uint64(10), val)
- should.Nil(jsoniter.UnmarshalFromString(`10.1`, &val))
- should.Equal(uint64(10), val)
- should.Nil(jsoniter.UnmarshalFromString(`10`, &val))
- should.Equal(uint64(10), val)
-
- // bool part
- should.Nil(jsoniter.UnmarshalFromString(`false`, &val))
- should.Equal(uint64(0), val)
- should.Nil(jsoniter.UnmarshalFromString(`true`, &val))
- should.Equal(uint64(1), val)
-
- // TODO fix?
- should.NotNil(jsoniter.UnmarshalFromString(`-10`, &val))
- should.Equal(uint64(0), val)
- should.NotNil(jsoniter.UnmarshalFromString("{}", &val))
- should.NotNil(jsoniter.UnmarshalFromString("[]", &val))
- // large float to int
- should.NotNil(jsoniter.UnmarshalFromString(`1234512345123451234512345.0`, &val))
-}
-func Test_any_to_uint32(t *testing.T) {
- should := require.New(t)
- var val uint32
-
- should.Nil(jsoniter.UnmarshalFromString(`"100"`, &val))
- should.Equal(uint32(100), val)
- should.Nil(jsoniter.UnmarshalFromString(`"10.1"`, &val))
- should.Equal(uint32(10), val)
- should.Nil(jsoniter.UnmarshalFromString(`10.1`, &val))
- should.Equal(uint32(10), val)
- should.Nil(jsoniter.UnmarshalFromString(`10`, &val))
- should.Equal(uint32(10), val)
-
- // bool part
- should.Nil(jsoniter.UnmarshalFromString(`false`, &val))
- should.Equal(uint32(0), val)
- should.Nil(jsoniter.UnmarshalFromString(`true`, &val))
- should.Equal(uint32(1), val)
-
- // TODO fix?
- should.NotNil(jsoniter.UnmarshalFromString(`-10`, &val))
- should.Equal(uint32(0), val)
- should.NotNil(jsoniter.UnmarshalFromString("{}", &val))
- should.NotNil(jsoniter.UnmarshalFromString("[]", &val))
- // large float to int
- should.NotNil(jsoniter.UnmarshalFromString(`1234512345123451234512345.0`, &val))
-}
-func Test_any_to_uint16(t *testing.T) {
- should := require.New(t)
- var val uint16
-
- should.Nil(jsoniter.UnmarshalFromString(`"100"`, &val))
- should.Equal(uint16(100), val)
- should.Nil(jsoniter.UnmarshalFromString(`"10.1"`, &val))
- should.Equal(uint16(10), val)
- should.Nil(jsoniter.UnmarshalFromString(`10.1`, &val))
- should.Equal(uint16(10), val)
- should.Nil(jsoniter.UnmarshalFromString(`10`, &val))
- should.Equal(uint16(10), val)
-
- // bool part
- should.Nil(jsoniter.UnmarshalFromString(`false`, &val))
- should.Equal(uint16(0), val)
- should.Nil(jsoniter.UnmarshalFromString(`true`, &val))
- should.Equal(uint16(1), val)
-
- // TODO fix?
- should.NotNil(jsoniter.UnmarshalFromString(`-10`, &val))
- should.Equal(uint16(0), val)
- should.NotNil(jsoniter.UnmarshalFromString("{}", &val))
- should.NotNil(jsoniter.UnmarshalFromString("[]", &val))
- // large float to int
- should.NotNil(jsoniter.UnmarshalFromString(`1234512345123451234512345.0`, &val))
-}
-func Test_any_to_uint(t *testing.T) {
- should := require.New(t)
- var val uint
- should.Nil(jsoniter.UnmarshalFromString(`"100"`, &val))
- should.Equal(uint(100), val)
- should.Nil(jsoniter.UnmarshalFromString(`"10.1"`, &val))
- should.Equal(uint(10), val)
- should.Nil(jsoniter.UnmarshalFromString(`10.1`, &val))
- should.Equal(uint(10), val)
- should.Nil(jsoniter.UnmarshalFromString(`10`, &val))
- should.Equal(uint(10), val)
-
- should.Nil(jsoniter.UnmarshalFromString(`false`, &val))
- should.Equal(uint(0), val)
- should.Nil(jsoniter.UnmarshalFromString(`true`, &val))
- should.Equal(uint(1), val)
-
- should.NotNil(jsoniter.UnmarshalFromString("{}", &val))
- should.NotNil(jsoniter.UnmarshalFromString("[]", &val))
- // large float to int
- should.NotNil(jsoniter.UnmarshalFromString(`1234512345123451234512345.0`, &val))
-}
-
-func Test_any_to_float32(t *testing.T) {
- should := require.New(t)
- var val float32
- should.Nil(jsoniter.UnmarshalFromString(`"100"`, &val))
- should.Equal(float32(100), val)
-
- should.Nil(jsoniter.UnmarshalFromString(`"10.1"`, &val))
- should.Equal(float32(10.1), val)
- should.Nil(jsoniter.UnmarshalFromString(`10.1`, &val))
- should.Equal(float32(10.1), val)
- should.Nil(jsoniter.UnmarshalFromString(`10`, &val))
- should.Equal(float32(10), val)
-
- // bool part
- should.Nil(jsoniter.UnmarshalFromString(`false`, &val))
- should.Equal(float32(0), val)
- should.Nil(jsoniter.UnmarshalFromString(`true`, &val))
- should.Equal(float32(1), val)
-
- should.NotNil(jsoniter.UnmarshalFromString("{}", &val))
- should.NotNil(jsoniter.UnmarshalFromString("[]", &val))
-}
-
-func Test_any_to_float64(t *testing.T) {
- should := require.New(t)
- var val float64
-
- should.Nil(jsoniter.UnmarshalFromString(`"100"`, &val))
- should.Equal(float64(100), val)
-
- should.Nil(jsoniter.UnmarshalFromString(`"10.1"`, &val))
- should.Equal(float64(10.1), val)
- should.Nil(jsoniter.UnmarshalFromString(`10.1`, &val))
- should.Equal(float64(10.1), val)
- should.Nil(jsoniter.UnmarshalFromString(`10`, &val))
- should.Equal(float64(10), val)
-
- // bool part
- should.Nil(jsoniter.UnmarshalFromString(`false`, &val))
- should.Equal(float64(0), val)
- should.Nil(jsoniter.UnmarshalFromString(`true`, &val))
- should.Equal(float64(1), val)
-
- should.NotNil(jsoniter.UnmarshalFromString("{}", &val))
- should.NotNil(jsoniter.UnmarshalFromString("[]", &val))
-}
-
-func Test_empty_array_as_map(t *testing.T) {
- should := require.New(t)
- var val map[string]interface{}
- should.Nil(jsoniter.UnmarshalFromString(`[]`, &val))
- should.Equal(map[string]interface{}{}, val)
-}
-
-func Test_empty_array_as_object(t *testing.T) {
- should := require.New(t)
- var val struct{}
- should.Nil(jsoniter.UnmarshalFromString(`[]`, &val))
- should.Equal(struct{}{}, val)
-}
-
-func Test_bad_case(t *testing.T) {
- var jsonstr = `
-{
- "extra_type": 181760,
- "combo_type": 0,
- "trigger_time_ms": 1498800398000,
- "_create_time": "2017-06-16 11:21:39",
- "_msg_type": 41000
-}
-`
-
- type OrderEventRequestParams struct {
- ExtraType uint64 `json:"extra_type"`
- }
-
- var a OrderEventRequestParams
- err := jsoniter.UnmarshalFromString(jsonstr, &a)
- should := require.New(t)
- should.Nil(err)
-}
diff --git a/vendor/github.com/json-iterator/go/extra/naming_strategy.go b/vendor/github.com/json-iterator/go/extra/naming_strategy.go
deleted file mode 100644
index 671e4951b..000000000
--- a/vendor/github.com/json-iterator/go/extra/naming_strategy.go
+++ /dev/null
@@ -1,41 +0,0 @@
-package extra
-
-import (
- "github.com/json-iterator/go"
- "unicode"
-)
-
-// SetNamingStrategy rename struct fields uniformly
-func SetNamingStrategy(translate func(string) string) {
- jsoniter.RegisterExtension(&namingStrategyExtension{jsoniter.DummyExtension{}, translate})
-}
-
-type namingStrategyExtension struct {
- jsoniter.DummyExtension
- translate func(string) string
-}
-
-func (extension *namingStrategyExtension) UpdateStructDescriptor(structDescriptor *jsoniter.StructDescriptor) {
- for _, binding := range structDescriptor.Fields {
- binding.ToNames = []string{extension.translate(binding.Field.Name())}
- binding.FromNames = []string{extension.translate(binding.Field.Name())}
- }
-}
-
-// LowerCaseWithUnderscores one strategy to SetNamingStrategy for. It will change HelloWorld to hello_world.
-func LowerCaseWithUnderscores(name string) string {
- newName := []rune{}
- for i, c := range name {
- if i == 0 {
- newName = append(newName, unicode.ToLower(c))
- } else {
- if unicode.IsUpper(c) {
- newName = append(newName, '_')
- newName = append(newName, unicode.ToLower(c))
- } else {
- newName = append(newName, c)
- }
- }
- }
- return string(newName)
-}
diff --git a/vendor/github.com/json-iterator/go/extra/naming_strategy_test.go b/vendor/github.com/json-iterator/go/extra/naming_strategy_test.go
deleted file mode 100644
index d15608126..000000000
--- a/vendor/github.com/json-iterator/go/extra/naming_strategy_test.go
+++ /dev/null
@@ -1,23 +0,0 @@
-package extra
-
-import (
- "github.com/json-iterator/go"
- "github.com/stretchr/testify/require"
- "testing"
-)
-
-func Test_lower_case_with_underscores(t *testing.T) {
- should := require.New(t)
- should.Equal("hello_world", LowerCaseWithUnderscores("helloWorld"))
- should.Equal("hello_world", LowerCaseWithUnderscores("HelloWorld"))
- SetNamingStrategy(LowerCaseWithUnderscores)
- output, err := jsoniter.Marshal(struct {
- UserName string
- FirstLanguage string
- }{
- UserName: "taowen",
- FirstLanguage: "Chinese",
- })
- should.Nil(err)
- should.Equal(`{"user_name":"taowen","first_language":"Chinese"}`, string(output))
-}
diff --git a/vendor/github.com/json-iterator/go/extra/privat_fields.go b/vendor/github.com/json-iterator/go/extra/privat_fields.go
deleted file mode 100644
index ac7096ff4..000000000
--- a/vendor/github.com/json-iterator/go/extra/privat_fields.go
+++ /dev/null
@@ -1,25 +0,0 @@
-package extra
-
-import (
- "github.com/json-iterator/go"
- "unicode"
-)
-
-// SupportPrivateFields include private fields when encoding/decoding
-func SupportPrivateFields() {
- jsoniter.RegisterExtension(&privateFieldsExtension{})
-}
-
-type privateFieldsExtension struct {
- jsoniter.DummyExtension
-}
-
-func (extension *privateFieldsExtension) UpdateStructDescriptor(structDescriptor *jsoniter.StructDescriptor) {
- for _, binding := range structDescriptor.Fields {
- isPrivate := unicode.IsLower(rune(binding.Field.Name()[0]))
- if isPrivate {
- binding.FromNames = []string{binding.Field.Name()}
- binding.ToNames = []string{binding.Field.Name()}
- }
- }
-}
diff --git a/vendor/github.com/json-iterator/go/extra/private_fields_test.go b/vendor/github.com/json-iterator/go/extra/private_fields_test.go
deleted file mode 100644
index d3bc40dac..000000000
--- a/vendor/github.com/json-iterator/go/extra/private_fields_test.go
+++ /dev/null
@@ -1,18 +0,0 @@
-package extra
-
-import (
- "github.com/json-iterator/go"
- "github.com/stretchr/testify/require"
- "testing"
-)
-
-func Test_private_fields(t *testing.T) {
- type TestObject struct {
- field1 string
- }
- SupportPrivateFields()
- should := require.New(t)
- obj := TestObject{}
- should.Nil(jsoniter.UnmarshalFromString(`{"field1":"Hello"}`, &obj))
- should.Equal("Hello", obj.field1)
-}
diff --git a/vendor/github.com/json-iterator/go/extra/time_as_int64_codec.go b/vendor/github.com/json-iterator/go/extra/time_as_int64_codec.go
deleted file mode 100644
index 9893872a0..000000000
--- a/vendor/github.com/json-iterator/go/extra/time_as_int64_codec.go
+++ /dev/null
@@ -1,31 +0,0 @@
-package extra
-
-import (
- "github.com/json-iterator/go"
- "time"
- "unsafe"
-)
-
-// RegisterTimeAsInt64Codec encode/decode time since number of unit since epoch. the precision is the unit.
-func RegisterTimeAsInt64Codec(precision time.Duration) {
- jsoniter.RegisterTypeEncoder("time.Time", &timeAsInt64Codec{precision})
- jsoniter.RegisterTypeDecoder("time.Time", &timeAsInt64Codec{precision})
-}
-
-type timeAsInt64Codec struct {
- precision time.Duration
-}
-
-func (codec *timeAsInt64Codec) Decode(ptr unsafe.Pointer, iter *jsoniter.Iterator) {
- nanoseconds := iter.ReadInt64() * codec.precision.Nanoseconds()
- *((*time.Time)(ptr)) = time.Unix(0, nanoseconds)
-}
-
-func (codec *timeAsInt64Codec) IsEmpty(ptr unsafe.Pointer) bool {
- ts := *((*time.Time)(ptr))
- return ts.UnixNano() == 0
-}
-func (codec *timeAsInt64Codec) Encode(ptr unsafe.Pointer, stream *jsoniter.Stream) {
- ts := *((*time.Time)(ptr))
- stream.WriteInt64(ts.UnixNano() / codec.precision.Nanoseconds())
-}
diff --git a/vendor/github.com/json-iterator/go/extra/time_as_int64_codec_test.go b/vendor/github.com/json-iterator/go/extra/time_as_int64_codec_test.go
deleted file mode 100644
index b27220f18..000000000
--- a/vendor/github.com/json-iterator/go/extra/time_as_int64_codec_test.go
+++ /dev/null
@@ -1,31 +0,0 @@
-package extra
-
-import (
- "github.com/json-iterator/go"
- "github.com/stretchr/testify/require"
- "testing"
- "time"
-)
-
-func Test_time_as_int64(t *testing.T) {
- should := require.New(t)
- RegisterTimeAsInt64Codec(time.Nanosecond)
- output, err := jsoniter.Marshal(time.Unix(1497952257, 1002))
- should.Nil(err)
- should.Equal("1497952257000001002", string(output))
- var val time.Time
- should.Nil(jsoniter.Unmarshal(output, &val))
- should.Equal(int64(1497952257000001002), val.UnixNano())
-}
-
-func Test_time_as_int64_keep_microsecond(t *testing.T) {
- t.Skip("conflict")
- should := require.New(t)
- RegisterTimeAsInt64Codec(time.Microsecond)
- output, err := jsoniter.Marshal(time.Unix(1, 1002))
- should.Nil(err)
- should.Equal("1000001", string(output))
- var val time.Time
- should.Nil(jsoniter.Unmarshal(output, &val))
- should.Equal(int64(1000001000), val.UnixNano())
-}
diff --git a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_array_test.go b/vendor/github.com/json-iterator/go/misc_tests/jsoniter_array_test.go
deleted file mode 100644
index e40abb871..000000000
--- a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_array_test.go
+++ /dev/null
@@ -1,214 +0,0 @@
-package misc_tests
-
-import (
- "bytes"
- "encoding/json"
- "github.com/stretchr/testify/require"
- "testing"
- "github.com/json-iterator/go"
-)
-
-func Test_empty_array(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[]`)
- cont := iter.ReadArray()
- should.False(cont)
- iter = jsoniter.ParseString(jsoniter.ConfigDefault, `[]`)
- iter.ReadArrayCB(func(iter *jsoniter.Iterator) bool {
- should.FailNow("should not call")
- return true
- })
-}
-
-func Test_one_element(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[1]`)
- should.True(iter.ReadArray())
- should.Equal(1, iter.ReadInt())
- should.False(iter.ReadArray())
- iter = jsoniter.ParseString(jsoniter.ConfigDefault, `[1]`)
- iter.ReadArrayCB(func(iter *jsoniter.Iterator) bool {
- should.Equal(1, iter.ReadInt())
- return true
- })
-}
-
-func Test_two_elements(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[1,2]`)
- should.True(iter.ReadArray())
- should.Equal(int64(1), iter.ReadInt64())
- should.True(iter.ReadArray())
- should.Equal(int64(2), iter.ReadInt64())
- should.False(iter.ReadArray())
- iter = jsoniter.ParseString(jsoniter.ConfigDefault, `[1,2]`)
- should.Equal([]interface{}{float64(1), float64(2)}, iter.Read())
-}
-
-func Test_whitespace_in_head(t *testing.T) {
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, ` [1]`)
- cont := iter.ReadArray()
- if cont != true {
- t.FailNow()
- }
- if iter.ReadUint64() != 1 {
- t.FailNow()
- }
-}
-
-func Test_whitespace_after_array_start(t *testing.T) {
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[ 1]`)
- cont := iter.ReadArray()
- if cont != true {
- t.FailNow()
- }
- if iter.ReadUint64() != 1 {
- t.FailNow()
- }
-}
-
-func Test_whitespace_before_array_end(t *testing.T) {
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[1 ]`)
- cont := iter.ReadArray()
- if cont != true {
- t.FailNow()
- }
- if iter.ReadUint64() != 1 {
- t.FailNow()
- }
- cont = iter.ReadArray()
- if cont != false {
- t.FailNow()
- }
-}
-
-func Test_whitespace_before_comma(t *testing.T) {
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[1 ,2]`)
- cont := iter.ReadArray()
- if cont != true {
- t.FailNow()
- }
- if iter.ReadUint64() != 1 {
- t.FailNow()
- }
- cont = iter.ReadArray()
- if cont != true {
- t.FailNow()
- }
- if iter.ReadUint64() != 2 {
- t.FailNow()
- }
- cont = iter.ReadArray()
- if cont != false {
- t.FailNow()
- }
-}
-
-func Test_write_array(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.Config{IndentionStep: 2}.Froze(), buf, 4096)
- stream.WriteArrayStart()
- stream.WriteInt(1)
- stream.WriteMore()
- stream.WriteInt(2)
- stream.WriteArrayEnd()
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal("[\n 1,\n 2\n]", buf.String())
-}
-
-func Test_write_val_array(t *testing.T) {
- should := require.New(t)
- val := []int{1, 2, 3}
- str, err := jsoniter.MarshalToString(&val)
- should.Nil(err)
- should.Equal("[1,2,3]", str)
-}
-
-func Test_write_val_empty_array(t *testing.T) {
- should := require.New(t)
- val := []int{}
- str, err := jsoniter.MarshalToString(val)
- should.Nil(err)
- should.Equal("[]", str)
-}
-
-func Test_write_array_of_interface_in_struct(t *testing.T) {
- should := require.New(t)
- type TestObject struct {
- Field []interface{}
- Field2 string
- }
- val := TestObject{[]interface{}{1, 2}, ""}
- str, err := jsoniter.MarshalToString(val)
- should.Nil(err)
- should.Contains(str, `"Field":[1,2]`)
- should.Contains(str, `"Field2":""`)
-}
-
-func Test_encode_byte_array(t *testing.T) {
- should := require.New(t)
- bytes, err := json.Marshal([]byte{1, 2, 3})
- should.Nil(err)
- should.Equal(`"AQID"`, string(bytes))
- bytes, err = jsoniter.Marshal([]byte{1, 2, 3})
- should.Nil(err)
- should.Equal(`"AQID"`, string(bytes))
-}
-
-func Test_decode_byte_array_from_base64(t *testing.T) {
- should := require.New(t)
- data := []byte{}
- err := json.Unmarshal([]byte(`"AQID"`), &data)
- should.Nil(err)
- should.Equal([]byte{1, 2, 3}, data)
- err = jsoniter.Unmarshal([]byte(`"AQID"`), &data)
- should.Nil(err)
- should.Equal([]byte{1, 2, 3}, data)
-}
-
-func Test_decode_byte_array_from_array(t *testing.T) {
- should := require.New(t)
- data := []byte{}
- err := json.Unmarshal([]byte(`[1,2,3]`), &data)
- should.Nil(err)
- should.Equal([]byte{1, 2, 3}, data)
- err = jsoniter.Unmarshal([]byte(`[1,2,3]`), &data)
- should.Nil(err)
- should.Equal([]byte{1, 2, 3}, data)
-}
-
-func Test_decode_slice(t *testing.T) {
- should := require.New(t)
- slice := make([]string, 0, 5)
- jsoniter.UnmarshalFromString(`["hello", "world"]`, &slice)
- should.Equal([]string{"hello", "world"}, slice)
-}
-
-func Test_decode_large_slice(t *testing.T) {
- should := require.New(t)
- slice := make([]int, 0, 1)
- jsoniter.UnmarshalFromString(`[1,2,3,4,5,6,7,8,9]`, &slice)
- should.Equal([]int{1, 2, 3, 4, 5, 6, 7, 8, 9}, slice)
-}
-
-func Benchmark_jsoniter_array(b *testing.B) {
- b.ReportAllocs()
- input := []byte(`[1,2,3,4,5,6,7,8,9]`)
- iter := jsoniter.ParseBytes(jsoniter.ConfigDefault, input)
- b.ResetTimer()
- for n := 0; n < b.N; n++ {
- iter.ResetBytes(input)
- for iter.ReadArray() {
- iter.ReadUint64()
- }
- }
-}
-
-func Benchmark_json_array(b *testing.B) {
- for n := 0; n < b.N; n++ {
- result := []interface{}{}
- json.Unmarshal([]byte(`[1,2,3]`), &result)
- }
-}
diff --git a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_bool_test.go b/vendor/github.com/json-iterator/go/misc_tests/jsoniter_bool_test.go
deleted file mode 100644
index 3b0b4cb86..000000000
--- a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_bool_test.go
+++ /dev/null
@@ -1,47 +0,0 @@
-package misc_tests
-
-import (
- "bytes"
- "testing"
-
- "github.com/stretchr/testify/require"
- "github.com/json-iterator/go"
-)
-
-func Test_true(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `true`)
- should.True(iter.ReadBool())
- iter = jsoniter.ParseString(jsoniter.ConfigDefault, `true`)
- should.Equal(true, iter.Read())
-}
-
-func Test_false(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `false`)
- should.False(iter.ReadBool())
-}
-
-func Test_write_true_false(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteTrue()
- stream.WriteFalse()
- stream.WriteBool(false)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal("truefalsefalse", buf.String())
-}
-
-func Test_write_val_bool(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteVal(true)
- should.Equal(stream.Buffered(), 4)
- stream.Flush()
- should.Equal(stream.Buffered(), 0)
- should.Nil(stream.Error)
- should.Equal("true", buf.String())
-} \ No newline at end of file
diff --git a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_float_test.go b/vendor/github.com/json-iterator/go/misc_tests/jsoniter_float_test.go
deleted file mode 100644
index d9c449d2e..000000000
--- a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_float_test.go
+++ /dev/null
@@ -1,95 +0,0 @@
-package misc_tests
-
-import (
- "encoding/json"
- "testing"
-
- "github.com/stretchr/testify/require"
- "github.com/json-iterator/go"
-)
-
-func Test_read_big_float(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `12.3`)
- val := iter.ReadBigFloat()
- val64, _ := val.Float64()
- should.Equal(12.3, val64)
-}
-
-func Test_read_big_int(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `92233720368547758079223372036854775807`)
- val := iter.ReadBigInt()
- should.NotNil(val)
- should.Equal(`92233720368547758079223372036854775807`, val.String())
-}
-
-func Test_read_float_as_interface(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `12.3`)
- should.Equal(float64(12.3), iter.Read())
-}
-
-func Test_wrap_float(t *testing.T) {
- should := require.New(t)
- str, err := jsoniter.MarshalToString(jsoniter.WrapFloat64(12.3))
- should.Nil(err)
- should.Equal("12.3", str)
-}
-
-func Test_read_float64_cursor(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, "[1.23456789\n,2,3]")
- should.True(iter.ReadArray())
- should.Equal(1.23456789, iter.Read())
- should.True(iter.ReadArray())
- should.Equal(float64(2), iter.Read())
-}
-
-func Test_read_float_scientific(t *testing.T) {
- should := require.New(t)
- var obj interface{}
- should.NoError(jsoniter.UnmarshalFromString(`1e1`, &obj))
- should.Equal(float64(10), obj)
- should.NoError(json.Unmarshal([]byte(`1e1`), &obj))
- should.Equal(float64(10), obj)
- should.NoError(jsoniter.UnmarshalFromString(`1.0e1`, &obj))
- should.Equal(float64(10), obj)
- should.NoError(json.Unmarshal([]byte(`1.0e1`), &obj))
- should.Equal(float64(10), obj)
-}
-
-func Test_lossy_float_marshal(t *testing.T) {
- should := require.New(t)
- api := jsoniter.Config{MarshalFloatWith6Digits: true}.Froze()
- output, err := api.MarshalToString(float64(0.1234567))
- should.Nil(err)
- should.Equal("0.123457", output)
- output, err = api.MarshalToString(float32(0.1234567))
- should.Nil(err)
- should.Equal("0.123457", output)
-}
-
-func Test_read_number(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `92233720368547758079223372036854775807`)
- val := iter.ReadNumber()
- should.Equal(`92233720368547758079223372036854775807`, string(val))
-}
-
-func Benchmark_jsoniter_float(b *testing.B) {
- b.ReportAllocs()
- input := []byte(`1.1123,`)
- iter := jsoniter.NewIterator(jsoniter.ConfigDefault)
- for n := 0; n < b.N; n++ {
- iter.ResetBytes(input)
- iter.ReadFloat64()
- }
-}
-
-func Benchmark_json_float(b *testing.B) {
- for n := 0; n < b.N; n++ {
- result := float64(0)
- json.Unmarshal([]byte(`1.1`), &result)
- }
-}
diff --git a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_int_test.go b/vendor/github.com/json-iterator/go/misc_tests/jsoniter_int_test.go
deleted file mode 100644
index 69771829e..000000000
--- a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_int_test.go
+++ /dev/null
@@ -1,101 +0,0 @@
-// +build go1.8
-
-package misc_tests
-
-import (
- "bytes"
- "encoding/json"
- "io/ioutil"
- "strconv"
- "testing"
-
- "github.com/stretchr/testify/require"
- "github.com/json-iterator/go"
-)
-
-func Test_read_uint64_invalid(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, ",")
- iter.ReadUint64()
- should.NotNil(iter.Error)
-}
-
-func Test_read_int32_array(t *testing.T) {
- should := require.New(t)
- input := `[123,456,789]`
- val := make([]int32, 0)
- jsoniter.UnmarshalFromString(input, &val)
- should.Equal(3, len(val))
-}
-
-func Test_read_int64_array(t *testing.T) {
- should := require.New(t)
- input := `[123,456,789]`
- val := make([]int64, 0)
- jsoniter.UnmarshalFromString(input, &val)
- should.Equal(3, len(val))
-}
-
-func Test_wrap_int(t *testing.T) {
- should := require.New(t)
- str, err := jsoniter.MarshalToString(jsoniter.WrapInt64(100))
- should.Nil(err)
- should.Equal("100", str)
-}
-
-func Test_write_val_int(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteVal(1001)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal("1001", buf.String())
-}
-
-func Test_write_val_int_ptr(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- val := 1001
- stream.WriteVal(&val)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal("1001", buf.String())
-}
-
-func Test_float_as_int(t *testing.T) {
- should := require.New(t)
- var i int
- should.NotNil(jsoniter.Unmarshal([]byte(`1.1`), &i))
-}
-
-func Benchmark_jsoniter_encode_int(b *testing.B) {
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, ioutil.Discard, 64)
- for n := 0; n < b.N; n++ {
- stream.Reset(nil)
- stream.WriteUint64(0xffffffff)
- }
-}
-
-func Benchmark_itoa(b *testing.B) {
- for n := 0; n < b.N; n++ {
- strconv.FormatInt(0xffffffff, 10)
- }
-}
-
-func Benchmark_jsoniter_int(b *testing.B) {
- iter := jsoniter.NewIterator(jsoniter.ConfigDefault)
- input := []byte(`100`)
- for n := 0; n < b.N; n++ {
- iter.ResetBytes(input)
- iter.ReadInt64()
- }
-}
-
-func Benchmark_json_int(b *testing.B) {
- for n := 0; n < b.N; n++ {
- result := int64(0)
- json.Unmarshal([]byte(`-100`), &result)
- }
-}
diff --git a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_interface_test.go b/vendor/github.com/json-iterator/go/misc_tests/jsoniter_interface_test.go
deleted file mode 100644
index 7e40fce1b..000000000
--- a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_interface_test.go
+++ /dev/null
@@ -1,178 +0,0 @@
-package misc_tests
-
-import (
- "encoding/json"
- "testing"
- "github.com/stretchr/testify/require"
- "github.com/json-iterator/go"
- "io"
-)
-
-func Test_nil_non_empty_interface(t *testing.T) {
- type TestObject struct {
- Field []io.Closer
- }
- should := require.New(t)
- obj := TestObject{}
- b := []byte(`{"Field":["AAA"]}`)
- should.NotNil(json.Unmarshal(b, &obj))
- should.NotNil(jsoniter.Unmarshal(b, &obj))
-}
-
-func Test_nil_out_null_interface(t *testing.T) {
- type TestData struct {
- Field interface{} `json:"field"`
- }
- should := require.New(t)
-
- var boolVar bool
- obj := TestData{
- Field: &boolVar,
- }
-
- data1 := []byte(`{"field": true}`)
-
- err := jsoniter.Unmarshal(data1, &obj)
- should.NoError(err)
- should.Equal(true, *(obj.Field.(*bool)))
-
- data2 := []byte(`{"field": null}`)
-
- err = jsoniter.Unmarshal(data2, &obj)
- should.NoError(err)
- should.Nil(obj.Field)
-
- // Checking stdlib behavior matches.
- obj2 := TestData{
- Field: &boolVar,
- }
-
- err = json.Unmarshal(data1, &obj2)
- should.NoError(err)
- should.Equal(true, *(obj2.Field.(*bool)))
-
- err = json.Unmarshal(data2, &obj2)
- should.NoError(err)
- should.Equal(nil, obj2.Field)
-}
-
-func Test_overwrite_interface_ptr_value_with_nil(t *testing.T) {
- type Wrapper struct {
- Payload interface{} `json:"payload,omitempty"`
- }
- type Payload struct {
- Value int `json:"val,omitempty"`
- }
-
- should := require.New(t)
-
- payload := &Payload{}
- wrapper := &Wrapper{
- Payload: &payload,
- }
-
- err := json.Unmarshal([]byte(`{"payload": {"val": 42}}`), &wrapper)
- should.NoError(err)
- should.Equal(&payload, wrapper.Payload)
- should.Equal(42, (*(wrapper.Payload.(**Payload))).Value)
-
- err = json.Unmarshal([]byte(`{"payload": null}`), &wrapper)
- should.NoError(err)
- should.Equal(&payload, wrapper.Payload)
- should.Equal((*Payload)(nil), payload)
-
- payload = &Payload{}
- wrapper = &Wrapper{
- Payload: &payload,
- }
-
- err = jsoniter.Unmarshal([]byte(`{"payload": {"val": 42}}`), &wrapper)
- should.Equal(nil, err)
- should.Equal(&payload, wrapper.Payload)
- should.Equal(42, (*(wrapper.Payload.(**Payload))).Value)
-
- err = jsoniter.Unmarshal([]byte(`{"payload": null}`), &wrapper)
- should.NoError(err)
- should.Equal(&payload, wrapper.Payload)
- should.Equal((*Payload)(nil), payload)
-}
-
-func Test_overwrite_interface_value_with_nil(t *testing.T) {
- type Wrapper struct {
- Payload interface{} `json:"payload,omitempty"`
- }
- type Payload struct {
- Value int `json:"val,omitempty"`
- }
-
- should := require.New(t)
-
- payload := &Payload{}
- wrapper := &Wrapper{
- Payload: payload,
- }
-
- err := json.Unmarshal([]byte(`{"payload": {"val": 42}}`), &wrapper)
- should.NoError(err)
- should.Equal(42, (*(wrapper.Payload.(*Payload))).Value)
-
- err = json.Unmarshal([]byte(`{"payload": null}`), &wrapper)
- should.NoError(err)
- should.Equal(nil, wrapper.Payload)
- should.Equal(42, payload.Value)
-
- payload = &Payload{}
- wrapper = &Wrapper{
- Payload: payload,
- }
-
- err = jsoniter.Unmarshal([]byte(`{"payload": {"val": 42}}`), &wrapper)
- should.Equal(nil, err)
- should.Equal(42, (*(wrapper.Payload.(*Payload))).Value)
-
- err = jsoniter.Unmarshal([]byte(`{"payload": null}`), &wrapper)
- should.Equal(nil, err)
- should.Equal(nil, wrapper.Payload)
- should.Equal(42, payload.Value)
-}
-
-func Test_unmarshal_into_nil(t *testing.T) {
- type Payload struct {
- Value int `json:"val,omitempty"`
- }
- type Wrapper struct {
- Payload interface{} `json:"payload,omitempty"`
- }
-
- should := require.New(t)
-
- var payload *Payload
- wrapper := &Wrapper{
- Payload: payload,
- }
-
- err := json.Unmarshal([]byte(`{"payload": {"val": 42}}`), &wrapper)
- should.NoError(err)
- should.NotNil(wrapper.Payload)
- should.Nil(payload)
-
- err = json.Unmarshal([]byte(`{"payload": null}`), &wrapper)
- should.NoError(err)
- should.Nil(wrapper.Payload)
- should.Nil(payload)
-
- payload = nil
- wrapper = &Wrapper{
- Payload: payload,
- }
-
- err = jsoniter.Unmarshal([]byte(`{"payload": {"val": 42}}`), &wrapper)
- should.NoError(err)
- should.NotNil(wrapper.Payload)
- should.Nil(payload)
-
- err = jsoniter.Unmarshal([]byte(`{"payload": null}`), &wrapper)
- should.NoError(err)
- should.Nil(wrapper.Payload)
- should.Nil(payload)
-}
diff --git a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_iterator_test.go b/vendor/github.com/json-iterator/go/misc_tests/jsoniter_iterator_test.go
deleted file mode 100644
index e2143943d..000000000
--- a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_iterator_test.go
+++ /dev/null
@@ -1,67 +0,0 @@
-package misc_tests
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
- "strconv"
- "testing"
-
- "github.com/stretchr/testify/require"
- "github.com/json-iterator/go"
-)
-
-func Test_bad_case(t *testing.T) {
- // field := *(*string)(unsafe.Pointer(&str))
- // caused this issue
- iter := jsoniter.Parse(jsoniter.ConfigDefault, bytes.NewBufferString(`{"Info":{"InfoHash":"4lzhP/fwlVLRgalC31YbfBSiqwo=","InfoHashstr":"E25CE13FF7F09552D181A942DF561B7C14A2AB0A","AnnounceList":["http://tracker.nwps.ws:6969/announce","http://tracker.nwps.ws:6969/announce","http://tracker.winglai.com/announce","http://fr33dom.h33t.com:3310/announce","http://exodus.desync.com:6969/announce","http://torrent.gresille.org/announce","http://tracker.trackerfix.com/announce","udp://tracker.btzoo.eu:80/announce","http://tracker.windsormetalbattery.com/announce","udp://10.rarbg.me:80/announce","udp://ipv4.tracker.harry.lu:80/announce","udp://tracker.ilibr.org:6969/announce","udp://tracker.zond.org:80/announce","http://torrent-tracker.ru/announce.php","http://bigfoot1942.sektori.org:6969/announce","http://tracker.best-torrents.net:6969/announce","http://announce.torrentsmd.com:6969/announce","udp://tracker.token.ro:80/announce","udp://tracker.coppersurfer.tk:80","http://tracker.thepiratebay.org/announce","udp://9.rarbg.com:2710/announce","udp://open.demonii.com:1337/announce","udp://tracker.ccc.de:80/announce","udp://tracker.istole.it:80/announce","udp://tracker.publicbt.com:80/announce","udp://tracker.openbittorrent.com:80/announce","udp://tracker.istole.it:80/announce","http://tracker.istole.it/announce","udp://tracker.publicbt.com:80/announce","http://tracker.publicbt.com/announce","udp://open.demonii.com:1337/announce"],"Length":2434793890,"PieceSize":524288,"PieceNum":4645},"InfoHashstr":"E25CE13FF7F09552D181A942DF561B7C14A2AB0A","SectionNum":32,"PieceNum":4645,"PieceSize":16384,"Finished":false,"SparseSize":104857600,"Bit":[{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="},{"Size":4645,"EndIndex":580,"EndMask":248,"Good":0,"Flush":false,"Bit":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="}]}`), 4096)
- count := 0
- for field := iter.ReadObject(); field != ""; field = iter.ReadObject() {
- if field == "Bit" {
- for iter.ReadArray() {
- for field := iter.ReadObject(); field != ""; field = iter.ReadObject() {
- if field == "Bit" {
- iter.ReadStringAsSlice()
- } else {
- if field != "Size" && field != "EndIndex" && field != "EndMask" && field != "Good" && field != "Flush" {
- t.Fatal(field)
- }
- iter.Skip()
- }
- }
- count++
- }
- } else {
- iter.Skip()
- }
- }
- if count != 32 {
- t.Fatal(count)
- }
-}
-
-func Test_iterator_use_number(t *testing.T) {
- // Test UseNumber with iterator Read()
- inputs := []string{`2147483647`, `-2147483648`}
- for _, input := range inputs {
- t.Run(fmt.Sprintf("%v", input), func(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.Config{UseNumber: true}.Froze(), input)
- expected := json.Number(input)
- should.Equal(expected, iter.Read())
- })
- }
-}
-
-func Test_iterator_without_number(t *testing.T) {
- inputs := []string{`2147483647`, `-2147483648`}
- for _, input := range inputs {
- t.Run(fmt.Sprintf("%v", input), func(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, input)
- expected, err := strconv.ParseInt(input, 10, 32)
- should.Nil(err)
- should.Equal(float64(expected), iter.Read())
- })
- }
-}
diff --git a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_map_test.go b/vendor/github.com/json-iterator/go/misc_tests/jsoniter_map_test.go
deleted file mode 100644
index bdc92e70d..000000000
--- a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_map_test.go
+++ /dev/null
@@ -1,33 +0,0 @@
-package misc_tests
-
-import (
- "encoding/json"
- "math/big"
- "testing"
-
- "github.com/stretchr/testify/require"
- "strings"
- "github.com/json-iterator/go"
-)
-
-func Test_decode_TextMarshaler_key_map(t *testing.T) {
- should := require.New(t)
- var val map[*big.Float]string
- should.Nil(jsoniter.UnmarshalFromString(`{"1":"2"}`, &val))
- str, err := jsoniter.MarshalToString(val)
- should.Nil(err)
- should.Equal(`{"1":"2"}`, str)
-}
-
-func Test_read_map_with_reader(t *testing.T) {
- should := require.New(t)
- input := `{"branch":"beta","change_log":"add the rows{10}","channel":"fros","create_time":"2017-06-13 16:39:08","firmware_list":"","md5":"80dee2bf7305bcf179582088e29fd7b9","note":{"CoreServices":{"md5":"d26975c0a8c7369f70ed699f2855cc2e","package_name":"CoreServices","version_code":"76","version_name":"1.0.76"},"FrDaemon":{"md5":"6b1f0626673200bc2157422cd2103f5d","package_name":"FrDaemon","version_code":"390","version_name":"1.0.390"},"FrGallery":{"md5":"90d767f0f31bcd3c1d27281ec979ba65","package_name":"FrGallery","version_code":"349","version_name":"1.0.349"},"FrLocal":{"md5":"f15a215b2c070a80a01f07bde4f219eb","package_name":"FrLocal","version_code":"791","version_name":"1.0.791"}},"pack_region_urls":{"CN":"https://s3.cn-north-1.amazonaws.com.cn/xxx-os/ttt_xxx_android_1.5.3.344.393.zip","default":"http://192.168.8.78/ttt_xxx_android_1.5.3.344.393.zip","local":"http://192.168.8.78/ttt_xxx_android_1.5.3.344.393.zip"},"pack_version":"1.5.3.344.393","pack_version_code":393,"region":"all","release_flag":0,"revision":62,"size":38966875,"status":3}`
- reader := strings.NewReader(input)
- decoder := jsoniter.ConfigCompatibleWithStandardLibrary.NewDecoder(reader)
- m1 := map[string]interface{}{}
- should.Nil(decoder.Decode(&m1))
- m2 := map[string]interface{}{}
- should.Nil(json.Unmarshal([]byte(input), &m2))
- should.Equal(m2, m1)
- should.Equal("1.0.76", m1["note"].(map[string]interface{})["CoreServices"].(map[string]interface{})["version_name"])
-}
diff --git a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_nested_test.go b/vendor/github.com/json-iterator/go/misc_tests/jsoniter_nested_test.go
deleted file mode 100644
index e8ed6ec82..000000000
--- a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_nested_test.go
+++ /dev/null
@@ -1,89 +0,0 @@
-package misc_tests
-
-import (
- "encoding/json"
- "reflect"
- "testing"
- "github.com/json-iterator/go"
-)
-
-type Level1 struct {
- Hello []Level2
-}
-
-type Level2 struct {
- World string
-}
-
-func Test_nested(t *testing.T) {
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `{"hello": [{"world": "value1"}, {"world": "value2"}]}`)
- l1 := Level1{}
- for l1Field := iter.ReadObject(); l1Field != ""; l1Field = iter.ReadObject() {
- switch l1Field {
- case "hello":
- l2Array := []Level2{}
- for iter.ReadArray() {
- l2 := Level2{}
- for l2Field := iter.ReadObject(); l2Field != ""; l2Field = iter.ReadObject() {
- switch l2Field {
- case "world":
- l2.World = iter.ReadString()
- default:
- iter.ReportError("bind l2", "unexpected field: "+l2Field)
- }
- }
- l2Array = append(l2Array, l2)
- }
- l1.Hello = l2Array
- default:
- iter.ReportError("bind l1", "unexpected field: "+l1Field)
- }
- }
- if !reflect.DeepEqual(l1, Level1{
- Hello: []Level2{
- {World: "value1"},
- {World: "value2"},
- },
- }) {
- t.Fatal(l1)
- }
-}
-
-func Benchmark_jsoniter_nested(b *testing.B) {
- for n := 0; n < b.N; n++ {
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `{"hello": [{"world": "value1"}, {"world": "value2"}]}`)
- l1 := Level1{}
- for l1Field := iter.ReadObject(); l1Field != ""; l1Field = iter.ReadObject() {
- switch l1Field {
- case "hello":
- l1.Hello = readLevel1Hello(iter)
- default:
- iter.Skip()
- }
- }
- }
-}
-
-func readLevel1Hello(iter *jsoniter.Iterator) []Level2 {
- l2Array := make([]Level2, 0, 2)
- for iter.ReadArray() {
- l2 := Level2{}
- for l2Field := iter.ReadObject(); l2Field != ""; l2Field = iter.ReadObject() {
- switch l2Field {
- case "world":
- l2.World = iter.ReadString()
- default:
- iter.Skip()
- }
- }
- l2Array = append(l2Array, l2)
- }
- return l2Array
-}
-
-func Benchmark_json_nested(b *testing.B) {
- for n := 0; n < b.N; n++ {
- l1 := Level1{}
- json.Unmarshal([]byte(`{"hello": [{"world": "value1"}, {"world": "value2"}]}`), &l1)
- }
-}
diff --git a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_null_test.go b/vendor/github.com/json-iterator/go/misc_tests/jsoniter_null_test.go
deleted file mode 100644
index 36387d518..000000000
--- a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_null_test.go
+++ /dev/null
@@ -1,81 +0,0 @@
-package misc_tests
-
-import (
- "bytes"
- "io"
- "testing"
-
- "github.com/stretchr/testify/require"
- "github.com/json-iterator/go"
-)
-
-func Test_read_null(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `null`)
- should.True(iter.ReadNil())
- iter = jsoniter.ParseString(jsoniter.ConfigDefault, `null`)
- should.Nil(iter.Read())
- iter = jsoniter.ParseString(jsoniter.ConfigDefault, `navy`)
- iter.Read()
- should.True(iter.Error != nil && iter.Error != io.EOF)
- iter = jsoniter.ParseString(jsoniter.ConfigDefault, `navy`)
- iter.ReadNil()
- should.True(iter.Error != nil && iter.Error != io.EOF)
-}
-
-func Test_write_null(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteNil()
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal("null", buf.String())
-}
-
-func Test_decode_null_object_field(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[null,"a"]`)
- iter.ReadArray()
- if iter.ReadObject() != "" {
- t.FailNow()
- }
- iter.ReadArray()
- if iter.ReadString() != "a" {
- t.FailNow()
- }
- type TestObject struct {
- Field string
- }
- objs := []TestObject{}
- should.Nil(jsoniter.UnmarshalFromString("[null]", &objs))
- should.Len(objs, 1)
-}
-
-func Test_decode_null_array_element(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[null,"a"]`)
- should.True(iter.ReadArray())
- should.True(iter.ReadNil())
- should.True(iter.ReadArray())
- should.Equal("a", iter.ReadString())
-}
-
-func Test_decode_null_string(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[null,"a"]`)
- should.True(iter.ReadArray())
- should.Equal("", iter.ReadString())
- should.True(iter.ReadArray())
- should.Equal("a", iter.ReadString())
-}
-
-func Test_decode_null_skip(t *testing.T) {
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[null,"a"]`)
- iter.ReadArray()
- iter.Skip()
- iter.ReadArray()
- if iter.ReadString() != "a" {
- t.FailNow()
- }
-}
diff --git a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_object_test.go b/vendor/github.com/json-iterator/go/misc_tests/jsoniter_object_test.go
deleted file mode 100644
index 9260d46c2..000000000
--- a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_object_test.go
+++ /dev/null
@@ -1,132 +0,0 @@
-package misc_tests
-
-import (
- "bytes"
- "testing"
-
- "github.com/stretchr/testify/require"
- "github.com/json-iterator/go"
- "time"
- "strings"
-)
-
-func Test_empty_object(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `{}`)
- field := iter.ReadObject()
- should.Equal("", field)
- iter = jsoniter.ParseString(jsoniter.ConfigDefault, `{}`)
- iter.ReadObjectCB(func(iter *jsoniter.Iterator, field string) bool {
- should.FailNow("should not call")
- return true
- })
-}
-
-func Test_one_field(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `{"a": "stream"}`)
- field := iter.ReadObject()
- should.Equal("a", field)
- value := iter.ReadString()
- should.Equal("stream", value)
- field = iter.ReadObject()
- should.Equal("", field)
- iter = jsoniter.ParseString(jsoniter.ConfigDefault, `{"a": "stream"}`)
- should.True(iter.ReadObjectCB(func(iter *jsoniter.Iterator, field string) bool {
- should.Equal("a", field)
- iter.Skip()
- return true
- }))
-
-}
-
-func Test_two_field(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `{ "a": "stream" , "c": "d" }`)
- field := iter.ReadObject()
- should.Equal("a", field)
- value := iter.ReadString()
- should.Equal("stream", value)
- field = iter.ReadObject()
- should.Equal("c", field)
- value = iter.ReadString()
- should.Equal("d", value)
- field = iter.ReadObject()
- should.Equal("", field)
- iter = jsoniter.ParseString(jsoniter.ConfigDefault, `{"field1": "1", "field2": 2}`)
- for field := iter.ReadObject(); field != ""; field = iter.ReadObject() {
- switch field {
- case "field1":
- iter.ReadString()
- case "field2":
- iter.ReadInt64()
- default:
- iter.ReportError("bind object", "unexpected field")
- }
- }
-}
-
-func Test_write_object(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.Config{IndentionStep: 2}.Froze(), buf, 4096)
- stream.WriteObjectStart()
- stream.WriteObjectField("hello")
- stream.WriteInt(1)
- stream.WriteMore()
- stream.WriteObjectField("world")
- stream.WriteInt(2)
- stream.WriteObjectEnd()
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal("{\n \"hello\": 1,\n \"world\": 2\n}", buf.String())
-}
-
-func Test_reader_and_load_more(t *testing.T) {
- should := require.New(t)
- type TestObject struct {
- CreatedAt time.Time
- }
- reader := strings.NewReader(`
-{
- "agency": null,
- "candidateId": 0,
- "candidate": "Blah Blah",
- "bookingId": 0,
- "shiftId": 1,
- "shiftTypeId": 0,
- "shift": "Standard",
- "bonus": 0,
- "bonusNI": 0,
- "days": [],
- "totalHours": 27,
- "expenses": [],
- "weekEndingDateSystem": "2016-10-09",
- "weekEndingDateClient": "2016-10-09",
- "submittedAt": null,
- "submittedById": null,
- "approvedAt": "2016-10-10T18:38:04Z",
- "approvedById": 0,
- "authorisedAt": "2016-10-10T18:38:04Z",
- "authorisedById": 0,
- "invoicedAt": "2016-10-10T20:00:00Z",
- "revokedAt": null,
- "revokedById": null,
- "revokeReason": null,
- "rejectedAt": null,
- "rejectedById": null,
- "rejectReasonCode": null,
- "rejectReason": null,
- "createdAt": "2016-10-03T00:00:00Z",
- "updatedAt": "2016-11-09T10:26:13Z",
- "updatedById": null,
- "overrides": [],
- "bookingApproverId": null,
- "bookingApprover": null,
- "status": "approved"
-}
- `)
- decoder := jsoniter.ConfigCompatibleWithStandardLibrary.NewDecoder(reader)
- obj := TestObject{}
- should.Nil(decoder.Decode(&obj))
-} \ No newline at end of file
diff --git a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_raw_message_test.go b/vendor/github.com/json-iterator/go/misc_tests/jsoniter_raw_message_test.go
deleted file mode 100644
index 144ae581b..000000000
--- a/vendor/github.com/json-iterator/go/misc_tests/jsoniter_raw_message_test.go
+++ /dev/null
@@ -1,68 +0,0 @@
-package misc_tests
-
-import (
- "encoding/json"
- "github.com/stretchr/testify/require"
- "strings"
- "testing"
- "github.com/json-iterator/go"
-)
-
-func Test_jsoniter_RawMessage(t *testing.T) {
- should := require.New(t)
- var data jsoniter.RawMessage
- should.Nil(jsoniter.Unmarshal([]byte(`[1,2,3]`), &data))
- should.Equal(`[1,2,3]`, string(data))
- str, err := jsoniter.MarshalToString(data)
- should.Nil(err)
- should.Equal(`[1,2,3]`, str)
-}
-
-func Test_encode_map_of_jsoniter_raw_message(t *testing.T) {
- should := require.New(t)
- type RawMap map[string]*jsoniter.RawMessage
- value := jsoniter.RawMessage("[]")
- rawMap := RawMap{"hello": &value}
- output, err := jsoniter.MarshalToString(rawMap)
- should.Nil(err)
- should.Equal(`{"hello":[]}`, output)
-}
-
-func Test_marshal_invalid_json_raw_message(t *testing.T) {
- type A struct {
- Raw json.RawMessage `json:"raw"`
- }
- message := []byte(`{}`)
-
- a := A{}
- should := require.New(t)
- should.Nil(jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(message, &a))
- aout, aouterr := jsoniter.ConfigCompatibleWithStandardLibrary.Marshal(&a)
- should.Equal(`{"raw":null}`, string(aout))
- should.Nil(aouterr)
-}
-
-func Test_raw_message_memory_not_copied_issue(t *testing.T) {
- jsonStream := `{"name":"xxxxx","bundle_id":"com.zonst.majiang","app_platform":"ios","app_category":"100103", "budget_day":1000,"bidding_min":1,"bidding_max":2,"bidding_type":"CPM", "freq":{"open":true,"type":"day","num":100},"speed":1, "targeting":{"vendor":{"open":true,"list":["zonst"]}, "geo_code":{"open":true,"list":["156110100"]},"app_category":{"open":true,"list":["100101"]}, "day_parting":{"open":true,"list":["100409","100410"]},"device_type":{"open":true,"list":["ipad"]}, "os_version":{"open":true,"list":[10]},"carrier":{"open":true,"list":["mobile"]}, "network":{"open":true,"list":["4G"]}},"url":{"tracking_imp_url":"http://www.baidu.com", "tracking_clk_url":"http://www.baidu.com","jump_url":"http://www.baidu.com","deep_link_url":"http://www.baidu.com"}}`
- type IteratorObject struct {
- Name *string `json:"name"`
- BundleId *string `json:"bundle_id"`
- AppCategory *string `json:"app_category"`
- AppPlatform *string `json:"app_platform"`
- BudgetDay *float32 `json:"budget_day"`
- BiddingMax *float32 `json:"bidding_max"`
- BiddingMin *float32 `json:"bidding_min"`
- BiddingType *string `json:"bidding_type"`
- Freq *jsoniter.RawMessage `json:"freq"`
- Targeting *jsoniter.RawMessage `json:"targeting"`
- Url *jsoniter.RawMessage `json:"url"`
- Speed *int `json:"speed" db:"speed"`
- }
-
- obj := &IteratorObject{}
- decoder := jsoniter.NewDecoder(strings.NewReader(jsonStream))
- err := decoder.Decode(obj)
- should := require.New(t)
- should.Nil(err)
- should.Equal(`{"open":true,"type":"day","num":100}`, string(*obj.Freq))
-}
diff --git a/vendor/github.com/json-iterator/go/reflect.go b/vendor/github.com/json-iterator/go/reflect.go
index 0f0956340..5c7d3a8a0 100644
--- a/vendor/github.com/json-iterator/go/reflect.go
+++ b/vendor/github.com/json-iterator/go/reflect.go
@@ -2,9 +2,9 @@ package jsoniter
import (
"fmt"
+ "github.com/modern-go/reflect2"
"reflect"
"unsafe"
- "github.com/v2pro/plz/reflect2"
)
// ValDecoder is an internal type registered to cache as needed.
diff --git a/vendor/github.com/json-iterator/go/reflect_array.go b/vendor/github.com/json-iterator/go/reflect_array.go
index 0f4f02e71..13a0b7b08 100644
--- a/vendor/github.com/json-iterator/go/reflect_array.go
+++ b/vendor/github.com/json-iterator/go/reflect_array.go
@@ -2,9 +2,9 @@ package jsoniter
import (
"fmt"
+ "github.com/modern-go/reflect2"
"io"
"unsafe"
- "github.com/v2pro/plz/reflect2"
)
func decoderOfArray(ctx *ctx, typ reflect2.Type) ValDecoder {
diff --git a/vendor/github.com/json-iterator/go/reflect_dynamic.go b/vendor/github.com/json-iterator/go/reflect_dynamic.go
index 86b8425af..8b6bc8b43 100644
--- a/vendor/github.com/json-iterator/go/reflect_dynamic.go
+++ b/vendor/github.com/json-iterator/go/reflect_dynamic.go
@@ -1,9 +1,9 @@
package jsoniter
import (
- "github.com/v2pro/plz/reflect2"
- "unsafe"
+ "github.com/modern-go/reflect2"
"reflect"
+ "unsafe"
)
type dynamicEncoder struct {
diff --git a/vendor/github.com/json-iterator/go/reflect_extension.go b/vendor/github.com/json-iterator/go/reflect_extension.go
index c878ca1af..917bbe84e 100644
--- a/vendor/github.com/json-iterator/go/reflect_extension.go
+++ b/vendor/github.com/json-iterator/go/reflect_extension.go
@@ -2,12 +2,12 @@ package jsoniter
import (
"fmt"
+ "github.com/modern-go/reflect2"
"reflect"
"sort"
"strings"
"unicode"
"unsafe"
- "github.com/v2pro/plz/reflect2"
)
var typeDecoders = map[string]ValDecoder{}
@@ -18,8 +18,8 @@ var extensions = []Extension{}
// StructDescriptor describe how should we encode/decode the struct
type StructDescriptor struct {
- Type reflect2.Type
- Fields []*Binding
+ Type reflect2.Type
+ Fields []*Binding
}
// GetField get one field from the descriptor by its name.
@@ -47,6 +47,8 @@ type Binding struct {
// Can also rename fields by UpdateStructDescriptor.
type Extension interface {
UpdateStructDescriptor(structDescriptor *StructDescriptor)
+ CreateMapKeyDecoder(typ reflect2.Type) ValDecoder
+ CreateMapKeyEncoder(typ reflect2.Type) ValEncoder
CreateDecoder(typ reflect2.Type) ValDecoder
CreateEncoder(typ reflect2.Type) ValEncoder
DecorateDecoder(typ reflect2.Type, decoder ValDecoder) ValDecoder
@@ -61,6 +63,16 @@ type DummyExtension struct {
func (extension *DummyExtension) UpdateStructDescriptor(structDescriptor *StructDescriptor) {
}
+// CreateMapKeyDecoder No-op
+func (extension *DummyExtension) CreateMapKeyDecoder(typ reflect2.Type) ValDecoder {
+ return nil
+}
+
+// CreateMapKeyEncoder No-op
+func (extension *DummyExtension) CreateMapKeyEncoder(typ reflect2.Type) ValEncoder {
+ return nil
+}
+
// CreateDecoder No-op
func (extension *DummyExtension) CreateDecoder(typ reflect2.Type) ValDecoder {
return nil
@@ -97,6 +109,16 @@ func (extension EncoderExtension) CreateEncoder(typ reflect2.Type) ValEncoder {
return extension[typ]
}
+// CreateMapKeyDecoder No-op
+func (extension EncoderExtension) CreateMapKeyDecoder(typ reflect2.Type) ValDecoder {
+ return nil
+}
+
+// CreateMapKeyEncoder No-op
+func (extension EncoderExtension) CreateMapKeyEncoder(typ reflect2.Type) ValEncoder {
+ return nil
+}
+
// DecorateDecoder No-op
func (extension EncoderExtension) DecorateDecoder(typ reflect2.Type, decoder ValDecoder) ValDecoder {
return decoder
@@ -113,6 +135,16 @@ type DecoderExtension map[reflect2.Type]ValDecoder
func (extension DecoderExtension) UpdateStructDescriptor(structDescriptor *StructDescriptor) {
}
+// CreateMapKeyDecoder No-op
+func (extension DecoderExtension) CreateMapKeyDecoder(typ reflect2.Type) ValDecoder {
+ return nil
+}
+
+// CreateMapKeyEncoder No-op
+func (extension DecoderExtension) CreateMapKeyEncoder(typ reflect2.Type) ValEncoder {
+ return nil
+}
+
// CreateDecoder get decoder from map
func (extension DecoderExtension) CreateDecoder(typ reflect2.Type) ValDecoder {
return extension[typ]
@@ -355,8 +387,8 @@ func describeStruct(ctx *ctx, typ reflect2.Type) *StructDescriptor {
}
func createStructDescriptor(ctx *ctx, typ reflect2.Type, bindings []*Binding, embeddedBindings []*Binding) *StructDescriptor {
structDescriptor := &StructDescriptor{
- Type: typ,
- Fields: bindings,
+ Type: typ,
+ Fields: bindings,
}
for _, extension := range extensions {
extension.UpdateStructDescriptor(structDescriptor)
diff --git a/vendor/github.com/json-iterator/go/reflect_json_number.go b/vendor/github.com/json-iterator/go/reflect_json_number.go
index 1e22d10ba..98d45c1ec 100644
--- a/vendor/github.com/json-iterator/go/reflect_json_number.go
+++ b/vendor/github.com/json-iterator/go/reflect_json_number.go
@@ -2,9 +2,9 @@ package jsoniter
import (
"encoding/json"
+ "github.com/modern-go/reflect2"
"strconv"
"unsafe"
- "github.com/v2pro/plz/reflect2"
)
type Number string
@@ -109,4 +109,4 @@ func (codec *jsoniterNumberCodec) Encode(ptr unsafe.Pointer, stream *Stream) {
func (codec *jsoniterNumberCodec) IsEmpty(ptr unsafe.Pointer) bool {
return len(*((*Number)(ptr))) == 0
-} \ No newline at end of file
+}
diff --git a/vendor/github.com/json-iterator/go/reflect_json_raw_message.go b/vendor/github.com/json-iterator/go/reflect_json_raw_message.go
index f809dfe2e..f2619936c 100644
--- a/vendor/github.com/json-iterator/go/reflect_json_raw_message.go
+++ b/vendor/github.com/json-iterator/go/reflect_json_raw_message.go
@@ -1,9 +1,9 @@
package jsoniter
import (
- "unsafe"
"encoding/json"
- "github.com/v2pro/plz/reflect2"
+ "github.com/modern-go/reflect2"
+ "unsafe"
)
var jsonRawMessageType = reflect2.TypeOfPtr((*json.RawMessage)(nil)).Elem()
@@ -57,4 +57,4 @@ func (codec *jsoniterRawMessageCodec) Encode(ptr unsafe.Pointer, stream *Stream)
func (codec *jsoniterRawMessageCodec) IsEmpty(ptr unsafe.Pointer) bool {
return len(*((*RawMessage)(ptr))) == 0
-} \ No newline at end of file
+}
diff --git a/vendor/github.com/json-iterator/go/reflect_map.go b/vendor/github.com/json-iterator/go/reflect_map.go
index a33e726d4..8812f0850 100644
--- a/vendor/github.com/json-iterator/go/reflect_map.go
+++ b/vendor/github.com/json-iterator/go/reflect_map.go
@@ -1,11 +1,12 @@
package jsoniter
import (
+ "fmt"
+ "github.com/modern-go/reflect2"
+ "io"
"reflect"
"sort"
"unsafe"
- "github.com/v2pro/plz/reflect2"
- "fmt"
)
func decoderOfMap(ctx *ctx, typ reflect2.Type) ValDecoder {
@@ -38,6 +39,12 @@ func encoderOfMap(ctx *ctx, typ reflect2.Type) ValEncoder {
}
func decoderOfMapKey(ctx *ctx, typ reflect2.Type) ValDecoder {
+ for _, extension := range ctx.extensions {
+ decoder := extension.CreateMapKeyDecoder(typ)
+ if decoder != nil {
+ return decoder
+ }
+ }
switch typ.Kind() {
case reflect.String:
return decoderOfType(ctx, reflect2.DefaultTypeOfKind(reflect.String))
@@ -70,6 +77,12 @@ func decoderOfMapKey(ctx *ctx, typ reflect2.Type) ValDecoder {
}
func encoderOfMapKey(ctx *ctx, typ reflect2.Type) ValEncoder {
+ for _, extension := range ctx.extensions {
+ encoder := extension.CreateMapKeyEncoder(typ)
+ if encoder != nil {
+ return encoder
+ }
+ }
switch typ.Kind() {
case reflect.String:
return encoderOfType(ctx, reflect2.DefaultTypeOfKind(reflect.String))
@@ -95,6 +108,9 @@ func encoderOfMapKey(ctx *ctx, typ reflect2.Type) ValEncoder {
stringEncoder: ctx.EncoderOf(reflect2.TypeOf("")),
}
}
+ if typ.Kind() == reflect.Interface {
+ return &dynamicMapKeyEncoder{ctx, typ}
+ }
return &lazyErrorEncoder{err: fmt.Errorf("unsupported map key type: %v", typ)}
}
}
@@ -191,6 +207,21 @@ func (encoder *numericMapKeyEncoder) IsEmpty(ptr unsafe.Pointer) bool {
return false
}
+type dynamicMapKeyEncoder struct {
+ ctx *ctx
+ valType reflect2.Type
+}
+
+func (encoder *dynamicMapKeyEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
+ obj := encoder.valType.UnsafeIndirect(ptr)
+ encoderOfMapKey(encoder.ctx, reflect2.TypeOf(obj)).Encode(reflect2.PtrOf(obj), stream)
+}
+
+func (encoder *dynamicMapKeyEncoder) IsEmpty(ptr unsafe.Pointer) bool {
+ obj := encoder.valType.UnsafeIndirect(ptr)
+ return encoderOfMapKey(encoder.ctx, reflect2.TypeOf(obj)).IsEmpty(reflect2.PtrOf(obj))
+}
+
type mapEncoder struct {
mapType *reflect2.UnsafeMapType
keyEncoder ValEncoder
@@ -241,6 +272,9 @@ func (encoder *sortKeysMapEncoder) Encode(ptr unsafe.Pointer, stream *Stream) {
subStream.buf = make([]byte, 0, 64)
key, elem := mapIter.UnsafeNext()
encoder.keyEncoder.Encode(key, subStream)
+ if subStream.Error != nil && subStream.Error != io.EOF && stream.Error == nil {
+ stream.Error = subStream.Error
+ }
encodedKey := subStream.Buffer()
subIter.ResetBytes(encodedKey)
decodedKey := subIter.ReadString()
diff --git a/vendor/github.com/json-iterator/go/reflect_marshaler.go b/vendor/github.com/json-iterator/go/reflect_marshaler.go
index b2e0026b4..58ac959ad 100644
--- a/vendor/github.com/json-iterator/go/reflect_marshaler.go
+++ b/vendor/github.com/json-iterator/go/reflect_marshaler.go
@@ -1,10 +1,10 @@
package jsoniter
import (
- "github.com/v2pro/plz/reflect2"
- "unsafe"
"encoding"
"encoding/json"
+ "github.com/modern-go/reflect2"
+ "unsafe"
)
var marshalerType = reflect2.TypeOfPtr((*json.Marshaler)(nil)).Elem()
diff --git a/vendor/github.com/json-iterator/go/reflect_native.go b/vendor/github.com/json-iterator/go/reflect_native.go
index f53636bb7..7f1e2464d 100644
--- a/vendor/github.com/json-iterator/go/reflect_native.go
+++ b/vendor/github.com/json-iterator/go/reflect_native.go
@@ -2,10 +2,10 @@ package jsoniter
import (
"encoding/base64"
+ "github.com/modern-go/reflect2"
"reflect"
- "unsafe"
- "github.com/v2pro/plz/reflect2"
"strconv"
+ "unsafe"
)
const ptrSize = 32 << uintptr(^uintptr(0)>>63)
@@ -405,7 +405,7 @@ func (codec *boolCodec) IsEmpty(ptr unsafe.Pointer) bool {
}
type base64Codec struct {
- sliceType *reflect2.UnsafeSliceType
+ sliceType *reflect2.UnsafeSliceType
sliceDecoder ValDecoder
}
@@ -418,7 +418,7 @@ func (codec *base64Codec) Decode(ptr unsafe.Pointer, iter *Iterator) {
case StringValue:
encoding := base64.StdEncoding
src := iter.SkipAndReturnBytes()
- src = src[1: len(src)-1]
+ src = src[1 : len(src)-1]
decodedLen := encoding.DecodedLen(len(src))
dst := make([]byte, decodedLen)
len, err := encoding.Decode(dst, src)
diff --git a/vendor/github.com/json-iterator/go/reflect_optional.go b/vendor/github.com/json-iterator/go/reflect_optional.go
index 5eae3875f..43ec71d6d 100644
--- a/vendor/github.com/json-iterator/go/reflect_optional.go
+++ b/vendor/github.com/json-iterator/go/reflect_optional.go
@@ -1,9 +1,9 @@
package jsoniter
import (
+ "github.com/modern-go/reflect2"
"reflect"
"unsafe"
- "github.com/v2pro/plz/reflect2"
)
func decoderOfOptional(ctx *ctx, typ reflect2.Type) ValDecoder {
diff --git a/vendor/github.com/json-iterator/go/reflect_slice.go b/vendor/github.com/json-iterator/go/reflect_slice.go
index adb8d921b..9441d79df 100644
--- a/vendor/github.com/json-iterator/go/reflect_slice.go
+++ b/vendor/github.com/json-iterator/go/reflect_slice.go
@@ -2,9 +2,9 @@ package jsoniter
import (
"fmt"
+ "github.com/modern-go/reflect2"
"io"
"unsafe"
- "github.com/v2pro/plz/reflect2"
)
func decoderOfSlice(ctx *ctx, typ reflect2.Type) ValDecoder {
diff --git a/vendor/github.com/json-iterator/go/reflect_struct_decoder.go b/vendor/github.com/json-iterator/go/reflect_struct_decoder.go
index 91d04f313..e718722af 100644
--- a/vendor/github.com/json-iterator/go/reflect_struct_decoder.go
+++ b/vendor/github.com/json-iterator/go/reflect_struct_decoder.go
@@ -2,10 +2,10 @@ package jsoniter
import (
"fmt"
+ "github.com/modern-go/reflect2"
"io"
"strings"
"unsafe"
- "github.com/v2pro/plz/reflect2"
)
func decoderOfStruct(ctx *ctx, typ reflect2.Type) ValDecoder {
@@ -1031,4 +1031,4 @@ func (decoder *stringModeNumberDecoder) Decode(ptr unsafe.Pointer, iter *Iterato
iter.ReportError("stringModeNumberDecoder", `expect ", but found `+string([]byte{c}))
return
}
-} \ No newline at end of file
+}
diff --git a/vendor/github.com/json-iterator/go/reflect_struct_encoder.go b/vendor/github.com/json-iterator/go/reflect_struct_encoder.go
index 0252251db..d0759cf64 100644
--- a/vendor/github.com/json-iterator/go/reflect_struct_encoder.go
+++ b/vendor/github.com/json-iterator/go/reflect_struct_encoder.go
@@ -2,10 +2,10 @@ package jsoniter
import (
"fmt"
+ "github.com/modern-go/reflect2"
"io"
"reflect"
"unsafe"
- "github.com/v2pro/plz/reflect2"
)
func encoderOfStruct(ctx *ctx, typ reflect2.Type) ValEncoder {
diff --git a/vendor/github.com/json-iterator/go/skip_tests/array_test.go b/vendor/github.com/json-iterator/go/skip_tests/array_test.go
deleted file mode 100644
index 12e42a13a..000000000
--- a/vendor/github.com/json-iterator/go/skip_tests/array_test.go
+++ /dev/null
@@ -1,15 +0,0 @@
-package skip_tests
-
-func init() {
- testCases = append(testCases, testCase{
- ptr: (*[]interface{})(nil),
- inputs: []string{
- `[]`, // valid
- `[1]`, // valid
- `[ 1, "hello"]`, // valid
- `[abc]`, // invalid
- `[`, // invalid
- `[[]`, // invalid
- },
- })
-}
diff --git a/vendor/github.com/json-iterator/go/skip_tests/float64_test.go b/vendor/github.com/json-iterator/go/skip_tests/float64_test.go
deleted file mode 100644
index bc90f24f5..000000000
--- a/vendor/github.com/json-iterator/go/skip_tests/float64_test.go
+++ /dev/null
@@ -1,20 +0,0 @@
-package skip_tests
-
-func init() {
- testCases = append(testCases, testCase{
- ptr: (*float64)(nil),
- inputs: []string{
- "+1", // invalid
- "-a", // invalid
- "-\x00", // invalid, zero byte
- "0.1", // valid
- "0..1", // invalid, more dot
- "1e+1", // valid
- "1+1", // invalid
- "1E1", // valid, e or E
- "1ee1", // invalid
- "100a", // invalid
- "10.", // invalid
- },
- })
-}
diff --git a/vendor/github.com/json-iterator/go/skip_tests/jsoniter_skip_test.go b/vendor/github.com/json-iterator/go/skip_tests/jsoniter_skip_test.go
deleted file mode 100644
index 35f97af28..000000000
--- a/vendor/github.com/json-iterator/go/skip_tests/jsoniter_skip_test.go
+++ /dev/null
@@ -1,185 +0,0 @@
-package skip_tests
-
-import (
- "bytes"
- "encoding/json"
- "testing"
-
- "github.com/stretchr/testify/require"
- "github.com/json-iterator/go"
-)
-
-func Test_skip_number_in_array(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[-0.12, "stream"]`)
- iter.ReadArray()
- iter.Skip()
- iter.ReadArray()
- should.Nil(iter.Error)
- should.Equal("stream", iter.ReadString())
-}
-
-func Test_skip_string_in_array(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `["hello", "stream"]`)
- iter.ReadArray()
- iter.Skip()
- iter.ReadArray()
- should.Nil(iter.Error)
- should.Equal("stream", iter.ReadString())
-}
-
-func Test_skip_null(t *testing.T) {
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[null , "stream"]`)
- iter.ReadArray()
- iter.Skip()
- iter.ReadArray()
- if iter.ReadString() != "stream" {
- t.FailNow()
- }
-}
-
-func Test_skip_true(t *testing.T) {
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[true , "stream"]`)
- iter.ReadArray()
- iter.Skip()
- iter.ReadArray()
- if iter.ReadString() != "stream" {
- t.FailNow()
- }
-}
-
-func Test_skip_false(t *testing.T) {
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[false , "stream"]`)
- iter.ReadArray()
- iter.Skip()
- iter.ReadArray()
- if iter.ReadString() != "stream" {
- t.FailNow()
- }
-}
-
-func Test_skip_array(t *testing.T) {
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[[1, [2, [3], 4]], "stream"]`)
- iter.ReadArray()
- iter.Skip()
- iter.ReadArray()
- if iter.ReadString() != "stream" {
- t.FailNow()
- }
-}
-
-func Test_skip_empty_array(t *testing.T) {
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[ [ ], "stream"]`)
- iter.ReadArray()
- iter.Skip()
- iter.ReadArray()
- if iter.ReadString() != "stream" {
- t.FailNow()
- }
-}
-
-func Test_skip_nested(t *testing.T) {
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[ {"a" : [{"stream": "c"}], "d": 102 }, "stream"]`)
- iter.ReadArray()
- iter.Skip()
- iter.ReadArray()
- if iter.ReadString() != "stream" {
- t.FailNow()
- }
-}
-
-func Test_skip_and_return_bytes(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[ {"a" : [{"stream": "c"}], "d": 102 }, "stream"]`)
- iter.ReadArray()
- skipped := iter.SkipAndReturnBytes()
- should.Equal(`{"a" : [{"stream": "c"}], "d": 102 }`, string(skipped))
-}
-
-func Test_skip_and_return_bytes_with_reader(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.Parse(jsoniter.ConfigDefault, bytes.NewBufferString(`[ {"a" : [{"stream": "c"}], "d": 102 }, "stream"]`), 4)
- iter.ReadArray()
- skipped := iter.SkipAndReturnBytes()
- should.Equal(`{"a" : [{"stream": "c"}], "d": 102 }`, string(skipped))
-}
-
-func Test_skip_empty(t *testing.T) {
- should := require.New(t)
- should.NotNil(jsoniter.Get([]byte("")).LastError())
-}
-
-type TestResp struct {
- Code uint64
-}
-
-func Benchmark_jsoniter_skip(b *testing.B) {
- input := []byte(`
-{
- "_shards":{
- "total" : 5,
- "successful" : 5,
- "failed" : 0
- },
- "hits":{
- "total" : 1,
- "hits" : [
- {
- "_index" : "twitter",
- "_type" : "tweet",
- "_id" : "1",
- "_source" : {
- "user" : "kimchy",
- "postDate" : "2009-11-15T14:12:12",
- "message" : "trying out Elasticsearch"
- }
- }
- ]
- },
- "code": 200
-}`)
- for n := 0; n < b.N; n++ {
- result := TestResp{}
- iter := jsoniter.ParseBytes(jsoniter.ConfigDefault, input)
- for field := iter.ReadObject(); field != ""; field = iter.ReadObject() {
- switch field {
- case "code":
- result.Code = iter.ReadUint64()
- default:
- iter.Skip()
- }
- }
- }
-}
-
-func Benchmark_json_skip(b *testing.B) {
- input := []byte(`
-{
- "_shards":{
- "total" : 5,
- "successful" : 5,
- "failed" : 0
- },
- "hits":{
- "total" : 1,
- "hits" : [
- {
- "_index" : "twitter",
- "_type" : "tweet",
- "_id" : "1",
- "_source" : {
- "user" : "kimchy",
- "postDate" : "2009-11-15T14:12:12",
- "message" : "trying out Elasticsearch"
- }
- }
- ]
- },
- "code": 200
-}`)
- for n := 0; n < b.N; n++ {
- result := TestResp{}
- json.Unmarshal(input, &result)
- }
-}
diff --git a/vendor/github.com/json-iterator/go/skip_tests/skip_test.go b/vendor/github.com/json-iterator/go/skip_tests/skip_test.go
deleted file mode 100644
index 3115d8247..000000000
--- a/vendor/github.com/json-iterator/go/skip_tests/skip_test.go
+++ /dev/null
@@ -1,45 +0,0 @@
-package skip_tests
-
-import (
- "encoding/json"
- "errors"
- "github.com/json-iterator/go"
- "github.com/stretchr/testify/require"
- "io"
- "testing"
- "reflect"
-)
-
-type testCase struct {
- ptr interface{}
- inputs []string
-}
-
-var testCases []testCase
-
-func Test_skip(t *testing.T) {
- for _, testCase := range testCases {
- valType := reflect.TypeOf(testCase.ptr).Elem()
- for _, input := range testCase.inputs {
- t.Run(input, func(t *testing.T) {
- should := require.New(t)
- ptrVal := reflect.New(valType)
- stdErr := json.Unmarshal([]byte(input), ptrVal.Interface())
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, input)
- iter.Skip()
- iter.ReadNil() // trigger looking forward
- err := iter.Error
- if err == io.EOF {
- err = nil
- } else {
- err = errors.New("remaining bytes")
- }
- if stdErr == nil {
- should.Nil(err)
- } else {
- should.NotNil(err)
- }
- })
- }
- }
-}
diff --git a/vendor/github.com/json-iterator/go/skip_tests/string_test.go b/vendor/github.com/json-iterator/go/skip_tests/string_test.go
deleted file mode 100644
index d0e08a22e..000000000
--- a/vendor/github.com/json-iterator/go/skip_tests/string_test.go
+++ /dev/null
@@ -1,17 +0,0 @@
-package skip_tests
-
-func init() {
- testCases = append(testCases, testCase{
- ptr: (*string)(nil),
- inputs: []string{
- `""`, // valid
- `"hello"`, // valid
- `"`, // invalid
- `"\"`, // invalid
- `"\x00"`, // invalid
- "\"\x00\"", // invalid
- "\"\t\"", // invalid
- `"\t"`, // valid
- },
- })
-} \ No newline at end of file
diff --git a/vendor/github.com/json-iterator/go/skip_tests/struct_test.go b/vendor/github.com/json-iterator/go/skip_tests/struct_test.go
deleted file mode 100644
index 02af35e4d..000000000
--- a/vendor/github.com/json-iterator/go/skip_tests/struct_test.go
+++ /dev/null
@@ -1,19 +0,0 @@
-package skip_tests
-
-func init() {
- testCases = append(testCases, testCase{
- ptr: (*struct{})(nil),
- inputs: []string{
- `{}`, // valid
- `{"hello":"world"}`, // valid
- `{hello:"world"}`, // invalid
- `{"hello:"world"}`, // invalid
- `{"hello","world"}`, // invalid
- `{"hello":{}`, // invalid
- `{"hello":{}}`, // valid
- `{"hello":{}}}`, // invalid
- `{"hello": { "hello": 1}}`, // valid
- `{abc}`, // invalid
- },
- })
-} \ No newline at end of file
diff --git a/vendor/github.com/json-iterator/go/stream.go b/vendor/github.com/json-iterator/go/stream.go
index d6e529808..17662fded 100644
--- a/vendor/github.com/json-iterator/go/stream.go
+++ b/vendor/github.com/json-iterator/go/stream.go
@@ -55,6 +55,11 @@ func (stream *Stream) Buffer() []byte {
return stream.buf
}
+// SetBuffer allows to append to the internal buffer directly
+func (stream *Stream) SetBuffer(buf []byte) {
+ stream.buf = buf
+}
+
// Write writes the contents of p into the buffer.
// It returns the number of bytes written.
// If nn < len(p), it also returns an error explaining
diff --git a/vendor/github.com/json-iterator/go/stream_int.go b/vendor/github.com/json-iterator/go/stream_int.go
index 0f7424860..d1059ee4c 100644
--- a/vendor/github.com/json-iterator/go/stream_int.go
+++ b/vendor/github.com/json-iterator/go/stream_int.go
@@ -17,16 +17,16 @@ func init() {
func writeFirstBuf(space []byte, v uint32) []byte {
start := v >> 24
if start == 0 {
- space = append(space, byte(v >> 16), byte(v >> 8))
+ space = append(space, byte(v>>16), byte(v>>8))
} else if start == 1 {
- space = append(space, byte(v >> 8))
+ space = append(space, byte(v>>8))
}
space = append(space, byte(v))
return space
}
func writeBuf(buf []byte, v uint32) []byte {
- return append(buf, byte(v >> 16), byte(v >> 8), byte(v))
+ return append(buf, byte(v>>16), byte(v>>8), byte(v))
}
// WriteUint8 write uint8 to stream
@@ -91,7 +91,7 @@ func (stream *Stream) WriteUint32(val uint32) {
stream.buf = writeFirstBuf(stream.buf, digits[q2])
} else {
r3 := q2 - q3*1000
- stream.buf = append(stream.buf, byte(q3 + '0'))
+ stream.buf = append(stream.buf, byte(q3+'0'))
stream.buf = writeBuf(stream.buf, digits[r3])
}
stream.buf = writeBuf(stream.buf, digits[r2])
diff --git a/vendor/github.com/json-iterator/go/type_tests/array_test.go b/vendor/github.com/json-iterator/go/type_tests/array_test.go
deleted file mode 100644
index 1a57fea7d..000000000
--- a/vendor/github.com/json-iterator/go/type_tests/array_test.go
+++ /dev/null
@@ -1,63 +0,0 @@
-package test
-
-func init() {
- testCases = append(testCases,
- (*[4]bool)(nil),
- (*[4]byte)(nil),
- (*[4]float64)(nil),
- (*[4]int32)(nil),
- (*[4]map[int32]string)(nil),
- (*[4]map[string]string)(nil),
- (*[4]*bool)(nil),
- (*[4]*float64)(nil),
- (*[4]*int32)(nil),
- (*[4]*map[int32]string)(nil),
- (*[4]*map[string]string)(nil),
- (*[4]*[4]bool)(nil),
- (*[4]*[4]byte)(nil),
- (*[4]*[4]float64)(nil),
- (*[4]*[4]int32)(nil),
- (*[4]*[4]*string)(nil),
- (*[4]*[4]string)(nil),
- (*[4]*[4]uint8)(nil),
- (*[4]*string)(nil),
- (*[4]*struct {
- String string
- Int int32
- Float float64
- Struct struct {
- X string
- }
- Slice [4]string
- Map map[string]string
- })(nil),
- (*[4]*uint8)(nil),
- (*[4][4]bool)(nil),
- (*[4][4]byte)(nil),
- (*[4][4]float64)(nil),
- (*[4][4]int32)(nil),
- (*[4][4]*string)(nil),
- (*[4][4]string)(nil),
- (*[4][4]uint8)(nil),
- (*[4]string)(nil),
- (*[4]struct{})(nil),
- (*[4]structEmpty)(nil),
- (*[4]struct {
- F *string
- })(nil),
- (*[4]struct {
- String string
- Int int32
- Float float64
- Struct struct {
- X string
- }
- Slice [4]string
- Map map[string]string
- })(nil),
- (*[4]uint8)(nil),
- )
-}
-
-type structEmpty struct{}
-type arrayAlis [4]stringAlias \ No newline at end of file
diff --git a/vendor/github.com/json-iterator/go/type_tests/builtin_test.go b/vendor/github.com/json-iterator/go/type_tests/builtin_test.go
deleted file mode 100644
index 03dd34597..000000000
--- a/vendor/github.com/json-iterator/go/type_tests/builtin_test.go
+++ /dev/null
@@ -1,69 +0,0 @@
-package test
-
-func init() {
- testCases = append(testCases,
- (*bool)(nil),
- (*boolAlias)(nil),
- (*byte)(nil),
- (*byteAlias)(nil),
- (*float32)(nil),
- (*float32Alias)(nil),
- (*float64)(nil),
- (*float64Alias)(nil),
- (*int8)(nil),
- (*int8Alias)(nil),
- (*int16)(nil),
- (*int16Alias)(nil),
- (*int32)(nil),
- (*int32Alias)(nil),
- (*int64)(nil),
- (*int64Alias)(nil),
- (*string)(nil),
- (*stringAlias)(nil),
- (*uint8)(nil),
- (*uint8Alias)(nil),
- (*uint16)(nil),
- (*uint16Alias)(nil),
- (*uint32)(nil),
- (*uint32Alias)(nil),
- (*uintptr)(nil),
- (*uintptrAlias)(nil),
- (*struct {
- A int8Alias `json:"a"`
- B int16Alias `json:"stream"`
- C int32Alias `json:"c"`
- D int64Alias `json:"d"`
- E uintAlias `json:"e"`
- F uint16Alias `json:"f"`
- G uint32Alias `json:"g"`
- H uint64Alias `json:"h"`
- I float32Alias `json:"i"`
- J float64Alias `json:"j"`
- K stringAlias `json:"k"`
- L intAlias `json:"l"`
- M uintAlias `json:"m"`
- N boolAlias `json:"n"`
- O uintptrAlias `json:"o"`
- })(nil),
- )
-}
-
-type boolAlias bool
-type byteAlias byte
-type float32Alias float32
-type float64Alias float64
-type ptrFloat64Alias *float64
-type int8Alias int8
-type int16Alias int16
-type int32Alias int32
-type ptrInt32Alias *int32
-type int64Alias int64
-type stringAlias string
-type ptrStringAlias *string
-type uint8Alias uint8
-type uint16Alias uint16
-type uint32Alias uint32
-type uintptrAlias uintptr
-type uintAlias uint
-type uint64Alias uint64
-type intAlias int
diff --git a/vendor/github.com/json-iterator/go/type_tests/map_key_test.go b/vendor/github.com/json-iterator/go/type_tests/map_key_test.go
deleted file mode 100644
index 6284fb53d..000000000
--- a/vendor/github.com/json-iterator/go/type_tests/map_key_test.go
+++ /dev/null
@@ -1,44 +0,0 @@
-package test
-
-import (
- "strings"
- "encoding"
-)
-
-func init() {
- testCases = append(testCases,
- (*map[stringKeyType]string)(nil),
- (*map[structKeyType]string)(nil),
- )
-}
-
-type stringKeyType string
-
-func (k stringKeyType) MarshalText() ([]byte, error) {
- return []byte("MANUAL__" + k), nil
-}
-
-func (k *stringKeyType) UnmarshalText(text []byte) error {
- *k = stringKeyType(strings.TrimPrefix(string(text), "MANUAL__"))
- return nil
-}
-
-var _ encoding.TextMarshaler = stringKeyType("")
-var _ encoding.TextUnmarshaler = new(stringKeyType)
-
-
-type structKeyType struct {
- X string
-}
-
-func (k structKeyType) MarshalText() ([]byte, error) {
- return []byte("MANUAL__" + k.X), nil
-}
-
-func (k *structKeyType) UnmarshalText(text []byte) error {
- k.X = strings.TrimPrefix(string(text), "MANUAL__")
- return nil
-}
-
-var _ encoding.TextMarshaler = structKeyType{}
-var _ encoding.TextUnmarshaler = &structKeyType{} \ No newline at end of file
diff --git a/vendor/github.com/json-iterator/go/type_tests/map_test.go b/vendor/github.com/json-iterator/go/type_tests/map_test.go
deleted file mode 100644
index 614f7bcd5..000000000
--- a/vendor/github.com/json-iterator/go/type_tests/map_test.go
+++ /dev/null
@@ -1,60 +0,0 @@
-package test
-
-func init() {
- testCases = append(testCases,
- (*map[int8]string)(nil),
- (*map[int16]string)(nil),
- (*map[int32]string)(nil),
- (*map[int64]string)(nil),
- (*map[string][4]string)(nil),
- (*map[string]bool)(nil),
- (*map[string]byte)(nil),
- (*map[string]float64)(nil),
- (*map[string]int32)(nil),
- (*map[string]map[string]string)(nil),
- (*map[string]*[4]string)(nil),
- (*map[string]*bool)(nil),
- (*map[string]*float64)(nil),
- (*map[string]*int32)(nil),
- (*map[string]*map[string]string)(nil),
- (*map[string]*[]string)(nil),
- (*map[string]*string)(nil),
- (*map[string]*structVarious)(nil),
- (*map[string]*uint8)(nil),
- (*map[string][]string)(nil),
- (*map[string]string)(nil),
- (*map[string]stringAlias)(nil),
- (*map[string]struct{})(nil),
- (*map[string]structEmpty)(nil),
- (*map[string]struct {
- F *string
- })(nil),
- (*map[string]struct {
- String string
- Int int32
- Float float64
- Struct struct {
- X string
- }
- Slice []string
- Map map[string]string
- })(nil),
- (*map[string]uint8)(nil),
- (*map[stringAlias]string)(nil),
- (*map[stringAlias]stringAlias)(nil),
- (*map[uint8]string)(nil),
- (*map[uint16]string)(nil),
- (*map[uint32]string)(nil),
- )
-}
-
-type structVarious struct {
- String string
- Int int32
- Float float64
- Struct struct {
- X string
- }
- Slice []string
- Map map[string]string
-}
diff --git a/vendor/github.com/json-iterator/go/type_tests/marshaler_string_test.go b/vendor/github.com/json-iterator/go/type_tests/marshaler_string_test.go
deleted file mode 100644
index 15e8f4ee5..000000000
--- a/vendor/github.com/json-iterator/go/type_tests/marshaler_string_test.go
+++ /dev/null
@@ -1,52 +0,0 @@
-package test
-
-import (
- "bytes"
- "encoding/base64"
- "strings"
- "encoding/json"
-)
-
-type StringMarshaler string
-
-func (m StringMarshaler) encode(str string) string {
- buf := bytes.Buffer{}
- b64 := base64.NewEncoder(base64.StdEncoding, &buf)
- if _, err := b64.Write([]byte(str)); err != nil {
- panic(err)
- }
- if err := b64.Close(); err != nil {
- panic(err)
- }
- return buf.String()
-}
-
-func (m StringMarshaler) decode(str string) string {
- if len(str) == 0 {
- return ""
- }
- b64 := base64.NewDecoder(base64.StdEncoding, strings.NewReader(str))
- bs := make([]byte, len(str))
- if n, err := b64.Read(bs); err != nil {
- panic(err)
- } else {
- bs = bs[:n]
- }
- return string(bs)
-}
-
-func (m StringMarshaler) MarshalJSON() ([]byte, error) {
- return []byte(`"MANUAL__` + m.encode(string(m)) + `"`), nil
-}
-
-func (m *StringMarshaler) UnmarshalJSON(text []byte) error {
- *m = StringMarshaler(m.decode(strings.TrimPrefix(strings.Trim(string(text), `"`), "MANUAL__")))
- return nil
-}
-
-var _ json.Marshaler = *new(StringMarshaler)
-var _ json.Unmarshaler = new(StringMarshaler)
-
-func init() {
- testCases = append(testCases, (*StringMarshaler)(nil))
-} \ No newline at end of file
diff --git a/vendor/github.com/json-iterator/go/type_tests/marshaler_struct_test.go b/vendor/github.com/json-iterator/go/type_tests/marshaler_struct_test.go
deleted file mode 100644
index 0e7dd9a3c..000000000
--- a/vendor/github.com/json-iterator/go/type_tests/marshaler_struct_test.go
+++ /dev/null
@@ -1,69 +0,0 @@
-package test
-
-import (
- "strings"
- "encoding/base64"
- "bytes"
- "encoding/json"
-)
-
-type structMarshaler struct {
- X string
-}
-
-func (m structMarshaler) encode(str string) string {
- buf := bytes.Buffer{}
- b64 := base64.NewEncoder(base64.StdEncoding, &buf)
- if _, err := b64.Write([]byte(str)); err != nil {
- panic(err)
- }
- if err := b64.Close(); err != nil {
- panic(err)
- }
- return buf.String()
-}
-
-func (m structMarshaler) decode(str string) string {
- if len(str) == 0 {
- return ""
- }
- b64 := base64.NewDecoder(base64.StdEncoding, strings.NewReader(str))
- bs := make([]byte, len(str))
- if n, err := b64.Read(bs); err != nil {
- panic(err)
- } else {
- bs = bs[:n]
- }
- return string(bs)
-}
-
-func (m structMarshaler) MarshalJSON() ([]byte, error) {
- return []byte(`"MANUAL__` + m.encode(m.X) + `"`), nil
-}
-
-func (m *structMarshaler) UnmarshalJSON(text []byte) error {
- m.X = m.decode(strings.TrimPrefix(strings.Trim(string(text), `"`), "MANUAL__"))
- return nil
-}
-
-var _ json.Marshaler = structMarshaler{}
-var _ json.Unmarshaler = &structMarshaler{}
-
-type structMarshalerAlias structMarshaler
-
-func init() {
- testCases = append(testCases,
- (*structMarshaler)(nil),
- (*structMarshalerAlias)(nil),
- (*struct {
- S string
- M structMarshaler
- I int8
- })(nil),
- (*struct {
- S string
- M structMarshalerAlias
- I int8
- })(nil),
- )
-}
diff --git a/vendor/github.com/json-iterator/go/type_tests/slice_test.go b/vendor/github.com/json-iterator/go/type_tests/slice_test.go
deleted file mode 100644
index d63726eee..000000000
--- a/vendor/github.com/json-iterator/go/type_tests/slice_test.go
+++ /dev/null
@@ -1,127 +0,0 @@
-package test
-
-func init() {
- testCases = append(testCases,
- (*[][4]bool)(nil),
- (*[][4]byte)(nil),
- (*[][4]float64)(nil),
- (*[][4]int32)(nil),
- (*[][4]*string)(nil),
- (*[][4]string)(nil),
- (*[][4]uint8)(nil),
- (*[]bool)(nil),
- (*[]byte)(nil),
- (*[]float64)(nil),
- (*[]int32)(nil),
- (*[]int64)(nil),
- (*[]map[int32]string)(nil),
- (*[]map[string]string)(nil),
- (*[4]*[4]bool)(nil),
- (*[4]*[4]byte)(nil),
- (*[4]*[4]float64)(nil),
- (*[4]*[4]int32)(nil),
- (*[4]*[4]*string)(nil),
- (*[4]*[4]string)(nil),
- (*[4]*[4]uint8)(nil),
- (*[]*bool)(nil),
- (*[]*float64)(nil),
- (*[]*int32)(nil),
- (*[]*map[int32]string)(nil),
- (*[]*map[string]string)(nil),
- (*[]*[]bool)(nil),
- (*[]*[]byte)(nil),
- (*[]*[]float64)(nil),
- (*[]*[]int32)(nil),
- (*[]*[]*string)(nil),
- (*[]*[]string)(nil),
- (*[]*[]uint8)(nil),
- (*[]*string)(nil),
- (*[]*struct {
- String string
- Int int32
- Float float64
- Struct struct {
- X string
- }
- Slice []string
- Map map[string]string
- })(nil),
- (*[]*uint8)(nil),
- (*[][]bool)(nil),
- (*[][]byte)(nil),
- (*[][]float64)(nil),
- (*[][]int32)(nil),
- (*[][]*string)(nil),
- (*[][]string)(nil),
- (*[][]uint8)(nil),
- (*[]string)(nil),
- (*[]struct{})(nil),
- (*[]structEmpty)(nil),
- (*[]struct {
- F *string
- })(nil),
- (*[]struct {
- String string
- Int int32
- Float float64
- Struct struct {
- X string
- }
- Slice []string
- Map map[string]string
- })(nil),
- (*[]uint8)(nil),
- (*[]jsonMarshaler)(nil),
- (*[]jsonMarshalerMap)(nil),
- (*[]textMarshaler)(nil),
- (*[]textMarshalerMap)(nil),
- )
-}
-
-type jsonMarshaler struct {
- Id string `json:"id,omitempty" db:"id"`
-}
-
-func (p *jsonMarshaler) MarshalJSON() ([]byte, error) {
- return []byte(`{}`), nil
-}
-
-func (p *jsonMarshaler) UnmarshalJSON(input []byte) error {
- p.Id = "hello"
- return nil
-}
-
-
-type jsonMarshalerMap map[int]int
-
-func (p *jsonMarshalerMap) MarshalJSON() ([]byte, error) {
- return []byte(`{}`), nil
-}
-
-func (p *jsonMarshalerMap) UnmarshalJSON(input []byte) error {
- return nil
-}
-
-type textMarshaler struct {
- Id string `json:"id,omitempty" db:"id"`
-}
-
-func (p *textMarshaler) MarshalText() ([]byte, error) {
- return []byte(`{}`), nil
-}
-
-func (p *textMarshaler) UnmarshalText(input []byte) error {
- p.Id = "hello"
- return nil
-}
-
-type textMarshalerMap map[int]int
-
-
-func (p *textMarshalerMap) MarshalText() ([]byte, error) {
- return []byte(`{}`), nil
-}
-
-func (p *textMarshalerMap) UnmarshalText(input []byte) error {
- return nil
-} \ No newline at end of file
diff --git a/vendor/github.com/json-iterator/go/type_tests/struct_embedded_test.go b/vendor/github.com/json-iterator/go/type_tests/struct_embedded_test.go
deleted file mode 100644
index 46995ed63..000000000
--- a/vendor/github.com/json-iterator/go/type_tests/struct_embedded_test.go
+++ /dev/null
@@ -1,233 +0,0 @@
-package test
-
-func init() {
- testCases = append(testCases,
- (*struct {
- EmbeddedFloat64
- })(nil),
- (*struct {
- EmbeddedInt32
- })(nil),
- (*struct {
- F1 float64
- StringMarshaler
- F2 int32
- })(nil),
- (*struct {
- EmbeddedMapStringString
- })(nil),
- (*struct {
- *EmbeddedFloat64
- })(nil),
- (*struct {
- *EmbeddedInt32
- })(nil),
- (*struct {
- *EmbeddedMapStringString
- })(nil),
- (*struct {
- *EmbeddedSliceString
- })(nil),
- (*struct {
- *EmbeddedString
- })(nil),
- (*struct {
- *EmbeddedStruct
- })(nil),
- (*struct {
- EmbeddedSliceString
- })(nil),
- (*struct {
- EmbeddedString
- })(nil),
- (*struct {
- EmbeddedString `json:"othername"`
- })(nil),
- (*struct {
- EmbeddedStruct
- })(nil),
- (*struct {
- F1 float64
- StringTextMarshaler
- F2 int32
- })(nil),
- (*OverlapDifferentLevels)(nil),
- (*IgnoreDeeperLevel)(nil),
- (*SameLevel1BothTagged)(nil),
- (*SameLevel1NoTags)(nil),
- (*SameLevel1Tagged)(nil),
- (*SameLevel2BothTagged)(nil),
- (*SameLevel2NoTags)(nil),
- (*SameLevel2Tagged)(nil),
- (*EmbeddedPtr)(nil),
- )
-}
-
-type EmbeddedFloat64 float64
-type EmbeddedInt32 int32
-type EmbeddedMapStringString map[string]string
-type EmbeddedSliceString []string
-type EmbeddedString string
-type EmbeddedStruct struct {
- String string
- Int int32
- Float float64
- Struct struct {
- X string
- }
- Slice []string
- Map map[string]string
-}
-
-type OverlapDifferentLevelsE1 struct {
- F1 int32
-}
-
-type OverlapDifferentLevelsE2 struct {
- F2 string
-}
-
-type OverlapDifferentLevels struct {
- OverlapDifferentLevelsE1
- OverlapDifferentLevelsE2
- F1 string
-}
-
-type IgnoreDeeperLevelDoubleEmbedded struct {
- F1 int32 `json:"F1"`
-}
-
-type IgnoreDeeperLevelE1 struct {
- IgnoreDeeperLevelDoubleEmbedded
- F1 int32
-}
-
-type IgnoreDeeperLevelE2 struct {
- F1 int32 `json:"F1"`
- IgnoreDeeperLevelDoubleEmbedded
-}
-
-type IgnoreDeeperLevel struct {
- IgnoreDeeperLevelE1
- IgnoreDeeperLevelE2
-}
-
-type SameLevel1BothTaggedE1 struct {
- F1 int32 `json:"F1"`
-}
-
-type SameLevel1BothTaggedE2 struct {
- F1 int32 `json:"F1"`
-}
-
-type SameLevel1BothTagged struct {
- SameLevel1BothTaggedE1
- SameLevel1BothTaggedE2
-}
-
-type SameLevel1NoTagsE1 struct {
- F1 int32
-}
-
-type SameLevel1NoTagsE2 struct {
- F1 int32
-}
-
-type SameLevel1NoTags struct {
- SameLevel1NoTagsE1
- SameLevel1NoTagsE2
-}
-
-type SameLevel1TaggedE1 struct {
- F1 int32
-}
-
-type SameLevel1TaggedE2 struct {
- F1 int32 `json:"F1"`
-}
-
-type SameLevel1Tagged struct {
- SameLevel1TaggedE1
- SameLevel1TaggedE2
-}
-
-type SameLevel2BothTaggedDE1 struct {
- F1 int32 `json:"F1"`
-}
-
-type SameLevel2BothTaggedE1 struct {
- SameLevel2BothTaggedDE1
-}
-
-// DoubleEmbedded2 TEST ONLY
-type SameLevel2BothTaggedDE2 struct {
- F1 int32 `json:"F1"`
-}
-
-// Embedded2 TEST ONLY
-type SameLevel2BothTaggedE2 struct {
- SameLevel2BothTaggedDE2
-}
-
-type SameLevel2BothTagged struct {
- SameLevel2BothTaggedE1
- SameLevel2BothTaggedE2
-}
-
-type SameLevel2NoTagsDE1 struct {
- F1 int32
-}
-
-type SameLevel2NoTagsE1 struct {
- SameLevel2NoTagsDE1
-}
-
-type SameLevel2NoTagsDE2 struct {
- F1 int32
-}
-
-type SameLevel2NoTagsE2 struct {
- SameLevel2NoTagsDE2
-}
-
-type SameLevel2NoTags struct {
- SameLevel2NoTagsE1
- SameLevel2NoTagsE2
-}
-
-// DoubleEmbedded1 TEST ONLY
-type SameLevel2TaggedDE1 struct {
- F1 int32
-}
-
-// Embedded1 TEST ONLY
-type SameLevel2TaggedE1 struct {
- SameLevel2TaggedDE1
-}
-
-// DoubleEmbedded2 TEST ONLY
-type SameLevel2TaggedDE2 struct {
- F1 int32 `json:"F1"`
-}
-
-// Embedded2 TEST ONLY
-type SameLevel2TaggedE2 struct {
- SameLevel2TaggedDE2
-}
-
-type SameLevel2Tagged struct {
- SameLevel2TaggedE1
- SameLevel2TaggedE2
-}
-
-type EmbeddedPtrO1 struct {
- O1F string
-}
-
-type EmbeddedPtrOption struct {
- O1 *EmbeddedPtrO1
-}
-
-type EmbeddedPtr struct {
- EmbeddedPtrOption `json:","`
-} \ No newline at end of file
diff --git a/vendor/github.com/json-iterator/go/type_tests/struct_field_case_test.go b/vendor/github.com/json-iterator/go/type_tests/struct_field_case_test.go
deleted file mode 100644
index 567f290ba..000000000
--- a/vendor/github.com/json-iterator/go/type_tests/struct_field_case_test.go
+++ /dev/null
@@ -1,30 +0,0 @@
-package test
-
-func init() {
- testCases = append(testCases,
- (*struct {
- Upper bool `json:"M"`
- Lower bool `json:"m"`
- })(nil),
- )
- asymmetricTestCases = append(asymmetricTestCases, [][2]interface{}{
- {
- (*struct {
- Field string
- })(nil),
- (*struct {
- FIELD string
- })(nil),
- },
- {
- (*struct {
- F1 string
- F2 string
- F3 string
- })(nil),
- (*struct {
- F1 string
- })(nil),
- },
- }...)
-}
diff --git a/vendor/github.com/json-iterator/go/type_tests/struct_tags_test.go b/vendor/github.com/json-iterator/go/type_tests/struct_tags_test.go
deleted file mode 100644
index dca3a5c43..000000000
--- a/vendor/github.com/json-iterator/go/type_tests/struct_tags_test.go
+++ /dev/null
@@ -1,282 +0,0 @@
-package test
-
-func init() {
- testCases = append(testCases,
- (*EmbeddedFieldName)(nil),
- (*StringFieldName)(nil),
- (*StructFieldName)(nil),
- (*struct {
- F1 bool `json:"F1"`
- F2 bool `json:"F2,omitempty"`
- })(nil),
- (*EmbeddedOmitEmpty)(nil),
- (*struct {
- F1 float32 `json:"F1"`
- F2 float32 `json:"F2,omitempty"`
- })(nil),
- (*struct {
- F1 int32 `json:"F1"`
- F2 int32 `json:"F2,omitempty"`
- })(nil),
- (*struct {
- F1 map[string]string `json:"F1"`
- F2 map[string]string `json:"F2,omitempty"`
- })(nil),
- (*struct {
- F1 *bool `json:"F1"`
- F2 *bool `json:"F2,omitempty"`
- })(nil),
- (*struct {
- F1 *float32 `json:"F1"`
- F2 *float32 `json:"F2,omitempty"`
- })(nil),
- (*struct {
- F1 *int32 `json:"F1"`
- F2 *int32 `json:"F2,omitempty"`
- })(nil),
- (*struct {
- F1 *map[string]string `json:"F1"`
- F2 *map[string]string `json:"F2,omitempty"`
- })(nil),
- (*struct {
- F1 *[]string `json:"F1"`
- F2 *[]string `json:"F2,omitempty"`
- })(nil),
- (*struct {
- F1 string `json:"F1"`
- F2 string `json:"F2,omitempty"`
- })(nil),
- (*struct {
- F1 *string `json:"F1"`
- F2 *string `json:"F2,omitempty"`
- })(nil),
- (*struct {
- F *jm `json:"f,omitempty"`
- })(nil),
- (*struct {
- F *tm `json:"f,omitempty"`
- })(nil),
- (*struct {
- F *sjm `json:"f,omitempty"`
- })(nil),
- (*struct {
- F *tm `json:"f,omitempty"`
- })(nil),
- (*struct {
- F1 *uint32 `json:"F1"`
- F2 *uint32 `json:"F2,omitempty"`
- })(nil),
- (*struct {
- F1 []string `json:"F1"`
- F2 []string `json:"F2,omitempty"`
- })(nil),
- (*struct {
- F1 string `json:"F1"`
- F2 string `json:"F2,omitempty"`
- })(nil),
- (*struct {
- F jm `json:"f,omitempty"`
- })(nil),
- (*struct {
- F tm `json:"f,omitempty"`
- })(nil),
- (*struct {
- F struct{} `json:"f,omitempty"` // omitempty is meaningless here
- })(nil),
- (*struct {
- F sjm `json:"f,omitempty"`
- })(nil),
- (*struct {
- F stm `json:"f,omitempty"`
- })(nil),
- (*struct {
- F1 uint32 `json:"F1"`
- F2 uint32 `json:"F2,omitempty"`
- })(nil),
- (*struct {
- F1 bool `json:"F1"`
- F2 bool `json:"F2,string"`
- })(nil),
- (*struct {
- F1 byte `json:"F1"`
- F2 byte `json:"F2,string"`
- })(nil),
- (*struct {
- F1 float32 `json:"F1"`
- F2 float32 `json:"F2,string"`
- })(nil),
- (*struct {
- F1 float64 `json:"F1"`
- F2 float64 `json:"F2,string"`
- })(nil),
- (*struct {
- F1 int8 `json:"F1"`
- F2 int8 `json:"F2,string"`
- })(nil),
- (*struct {
- F1 int16 `json:"F1"`
- F2 int16 `json:"F2,string"`
- })(nil),
- (*struct {
- F1 int32 `json:"F1"`
- F2 int32 `json:"F2,string"`
- })(nil),
- (*struct {
- F1 string `json:"F1"`
- F2 string `json:"F2,string"`
- })(nil),
- (*struct {
- F1 uint8 `json:"F1"`
- F2 uint8 `json:"F2,string"`
- })(nil),
- (*struct {
- F1 uint16 `json:"F1"`
- F2 uint16 `json:"F2,string"`
- })(nil),
- (*struct {
- F1 uint32 `json:"F1"`
- F2 uint32 `json:"F2,string"`
- })(nil),
- (*struct {
- A string `json:"a,omitempty"`
- B string `json:"b,omitempty"`
- Annotations map[string]string `json:"annotations,omitempty"`
- })(nil),
- (*struct {
- Field bool `json:",omitempty,string"`
- })(nil),
- )
-}
-
-// S1 TEST ONLY
-type EmbeddedFieldNameS1 struct {
- S1F string
-}
-
-// S2 TEST ONLY
-type EmbeddedFieldNameS2 struct {
- S2F string
-}
-
-// S3 TEST ONLY
-type EmbeddedFieldNameS3 struct {
- S3F string
-}
-
-// S4 TEST ONLY
-type EmbeddedFieldNameS4 struct {
- S4F string
-}
-
-// S5 TEST ONLY
-type EmbeddedFieldNameS5 struct {
- S5F string
-}
-
-// S6 TEST ONLY
-type EmbeddedFieldNameS6 struct {
- S6F string
-}
-
-type EmbeddedFieldName struct {
- EmbeddedFieldNameS1 `json:"F1"`
- EmbeddedFieldNameS2 `json:"f2"`
- EmbeddedFieldNameS3 `json:"-"`
- EmbeddedFieldNameS4 `json:"-,"`
- EmbeddedFieldNameS5 `json:","`
- EmbeddedFieldNameS6 `json:""`
-}
-
-type StringFieldNameE struct {
- E1 string
-}
-
-type StringFieldName struct {
- F1 string `json:"F1"`
- F2 string `json:"f2"`
- F3 string `json:"-"`
- F4 string `json:"-,"`
- F5 string `json:","`
- F6 string `json:""`
- StringFieldNameE `json:"e"`
-}
-
-type StructFieldNameS1 struct {
- S1F string
-}
-
-type StructFieldNameS2 struct {
- S2F string
-}
-
-type StructFieldNameS3 struct {
- S3F string
-}
-
-type StructFieldNameS4 struct {
- S4F string
-}
-
-type StructFieldNameS5 struct {
- S5F string
-}
-
-type StructFieldNameS6 struct {
- S6F string
-}
-
-type StructFieldName struct {
- F1 StructFieldNameS1 `json:"F1"`
- F2 StructFieldNameS2 `json:"f2"`
- F3 StructFieldNameS3 `json:"-"`
- F4 StructFieldNameS4 `json:"-,"`
- F5 StructFieldNameS5 `json:","`
- F6 StructFieldNameS6 `json:""`
-}
-type EmbeddedOmitEmptyE struct {
- F string `json:"F,omitempty"`
-}
-
-type EmbeddedOmitEmpty struct {
- EmbeddedOmitEmptyE
-}
-
-type jm string
-
-func (t *jm) UnmarshalJSON(b []byte) error {
- return nil
-}
-
-func (t jm) MarshalJSON() ([]byte, error) {
- return []byte(`""`), nil
-}
-
-type tm string
-
-func (t *tm) UnmarshalText(b []byte) error {
- return nil
-}
-
-func (t tm) MarshalText() ([]byte, error) {
- return []byte(`""`), nil
-}
-
-type sjm struct{}
-
-func (t *sjm) UnmarshalJSON(b []byte) error {
- return nil
-}
-
-func (t sjm) MarshalJSON() ([]byte, error) {
- return []byte(`""`), nil
-}
-
-type stm struct{}
-
-func (t *stm) UnmarshalText(b []byte) error {
- return nil
-}
-
-func (t stm) MarshalText() ([]byte, error) {
- return []byte(`""`), nil
-}
diff --git a/vendor/github.com/json-iterator/go/type_tests/struct_test.go b/vendor/github.com/json-iterator/go/type_tests/struct_test.go
deleted file mode 100644
index 0cf32522a..000000000
--- a/vendor/github.com/json-iterator/go/type_tests/struct_test.go
+++ /dev/null
@@ -1,404 +0,0 @@
-package test
-
-import "time"
-
-func init() {
- structFields1To11()
- testCases = append(testCases,
- (*struct1Alias)(nil),
- (*struct {
- F [4]*string
- })(nil),
- (*struct {
- F [4]string
- })(nil),
- (*struct {
- F1 [4]stringAlias
- F2 arrayAlis
- })(nil),
- (*struct {
- F1 [4]string
- F2 [4]string
- F3 [4]string
- })(nil),
- (*struct {
- F [4]struct {
- F1 string
- F2 string
- F3 string
- }
- })(nil),
- (*struct{})(nil),
- (*structEmpty)(nil),
- (*struct {
- Byte1 byte
- Byte2 byte
- Bool1 bool
- Bool2 bool
- Int8 int8
- Int16 int16
- Int32 int32
- Int64 int64
- Uint8 uint8
- Uint16 uint16
- Uint32 uint32
- Uint64 uint64
- Float32 float32
- Float64 float64
- String1 string
- String2 string
- })(nil),
- (*struct {
- F float64
- })(nil),
- (*struct {
- F float64Alias
- })(nil),
- (*struct {
- F1 float64
- F2 float64
- F3 float64
- })(nil),
- (*struct {
- F1 float64Alias
- F2 float64Alias
- F3 float64Alias
- })(nil),
- (*struct {
- F int32
- })(nil),
- (*struct {
- F int32Alias
- })(nil),
- (*struct {
- F1 int32
- F2 int32
- F3 int32
- })(nil),
- (*struct {
- F1 int32Alias
- F2 int32Alias
- F3 int32Alias
- })(nil),
- (*struct {
- F int64
- })(nil),
- (*struct {
- F map[int32]*string
- })(nil),
- (*struct {
- F map[int32]string
- })(nil),
- (*struct {
- F map[int32]struct {
- F1 string
- F2 string
- F3 string
- }
- })(nil),
- (*struct {
- F map[string]*string
- })(nil),
- (*struct {
- F map[string]string
- })(nil),
- (*struct {
- F map[string]struct {
- F1 string
- F2 string
- F3 string
- }
- })(nil),
- (*struct {
- F *float64
- })(nil),
- (*struct {
- F1 *float64Alias
- F2 ptrFloat64Alias
- F3 *ptrFloat64Alias
- })(nil),
- (*struct {
- F *int32
- })(nil),
- (*struct {
- F1 *int32Alias
- F2 ptrInt32Alias
- F3 *ptrInt32Alias
- })(nil),
- (*struct {
- F **struct{}
- })(nil),
- (*struct {
- F **struct {
- F1 string
- F2 string
- F3 string
- }
- })(nil),
- (*struct {
- F *string
- })(nil),
- (*struct {
- F1 *stringAlias
- F2 ptrStringAlias
- F3 *ptrStringAlias
- })(nil),
- (*struct {
- F *struct{}
- })(nil),
- (*struct {
- F *struct {
- F1 string
- F2 string
- F3 string
- }
- })(nil),
- (*struct {
- F1 *float64
- F2 *float64
- F3 *float64
- })(nil),
- (*struct {
- F1 *int32
- F2 *int32
- F3 *int32
- })(nil),
- (*struct {
- F1 *string
- F2 *string
- F3 *string
- })(nil),
- (*struct {
- F []*string
- })(nil),
- (*struct {
- F []string
- })(nil),
- (*struct {
- F1 []stringAlias
- F2 stringAlias
- })(nil),
- (*struct {
- F1 []string
- F2 []string
- F3 []string
- })(nil),
- (*struct {
- F []struct {
- F1 string
- F2 string
- F3 string
- }
- })(nil),
- (*struct {
- F string
- })(nil),
- (*struct {
- F stringAlias
- })(nil),
- (*struct {
- F1 string
- F2 string
- F3 string
- })(nil),
- (*struct {
- F1 stringAlias
- F2 stringAlias
- F3 stringAlias
- })(nil),
- (*struct {
- F1 struct{}
- F2 struct{}
- F3 struct{}
- })(nil),
- (*struct {
- F struct{}
- })(nil),
- (*struct {
- F structEmpty
- })(nil),
- (*struct {
- F struct {
- F1 float32
- F2 float32
- F3 float32
- }
- })(nil),
- (*struct {
- F struct {
- F float32
- }
- })(nil),
- (*struct {
- F struct2
- })(nil),
- (*struct {
- F struct {
- F1 int32
- F2 int32
- F3 int32
- }
- })(nil),
- (*struct {
- F struct {
- F1 string
- F2 string
- F3 string
- }
- })(nil),
- (*struct {
- F struct3
- })(nil),
- (*struct {
- TF1 struct {
- F2 int
- F1 *withTime
- }
- })(nil),
- (*DeeplyNested)(nil),
- )
-}
-
-func structFields1To11() {
- testCases = append(testCases,
- (*struct {
- Field1 string
- })(nil),
- (*struct {
- Field1 string
- Field2 string
- })(nil),
- (*struct {
- Field1 string
- Field2 string
- Field3 string
- })(nil),
- (*struct {
- Field1 string
- Field2 string
- Field3 string
- Field4 string
- })(nil),
- (*struct {
- Field1 string
- Field2 string
- Field3 string
- Field4 string
- Field5 string
- })(nil),
- (*struct {
- Field1 string
- Field2 string
- Field3 string
- Field4 string
- Field5 string
- Field6 string
- })(nil),
- (*struct {
- Field1 string
- Field2 string
- Field3 string
- Field4 string
- Field5 string
- Field6 string
- Field7 string
- })(nil),
- (*struct {
- Field1 string
- Field2 string
- Field3 string
- Field4 string
- Field5 string
- Field6 string
- Field7 string
- Field8 string
- })(nil),
- (*struct {
- Field1 string
- Field2 string
- Field3 string
- Field4 string
- Field5 string
- Field6 string
- Field7 string
- Field8 string
- Field9 string
- })(nil),
- (*struct {
- Field1 string
- Field2 string
- Field3 string
- Field4 string
- Field5 string
- Field6 string
- Field7 string
- Field8 string
- Field9 string
- Field10 string
- })(nil),
- (*struct {
- Field1 string
- Field2 string
- Field3 string
- Field4 string
- Field5 string
- Field6 string
- Field7 string
- Field8 string
- Field9 string
- Field10 string
- Field11 string
- })(nil),
- )
-}
-
-type struct1 struct {
- Byte1 byte
- Byte2 byte
- Bool1 bool
- Bool2 bool
- Int8 int8
- Int16 int16
- Int32 int32
- Uint8 uint8
- Uint16 uint16
- Uint32 uint32
- Float32 float32
- Float64 float64
- String1 string
- String2 string
-}
-type struct1Alias struct1
-
-type struct2 struct {
- F float64
-}
-type struct3 struct {
- F1 stringAlias
- F2 stringAlias
- F3 stringAlias
-}
-
-type withTime struct {
- time.Time
-}
-
-func (t *withTime) UnmarshalJSON(b []byte) error {
- return nil
-}
-func (t withTime) MarshalJSON() ([]byte, error) {
- return []byte(`"fake"`), nil
-}
-
-type YetYetAnotherObject struct {
- Field string
-}
-type YetAnotherObject struct {
- Field *YetYetAnotherObject
-}
-type AnotherObject struct {
- Field *YetAnotherObject
-}
-type DeeplyNested struct {
- Me *AnotherObject
-}
diff --git a/vendor/github.com/json-iterator/go/type_tests/text_marshaler_string_test.go b/vendor/github.com/json-iterator/go/type_tests/text_marshaler_string_test.go
deleted file mode 100644
index 747921f02..000000000
--- a/vendor/github.com/json-iterator/go/type_tests/text_marshaler_string_test.go
+++ /dev/null
@@ -1,57 +0,0 @@
-package test
-
-import (
- "strings"
- "encoding"
- "bytes"
- "encoding/base64"
-)
-
-func init() {
- testCases = append(testCases,
- (*StringTextMarshaler)(nil),
- )
-}
-
-// StringTextMarshaler TEST ONLY
-type StringTextMarshaler string
-
-func (m StringTextMarshaler) encode(str string) string {
- buf := bytes.Buffer{}
- b64 := base64.NewEncoder(base64.StdEncoding, &buf)
- if _, err := b64.Write([]byte(str)); err != nil {
- panic(err)
- }
- if err := b64.Close(); err != nil {
- panic(err)
- }
- return buf.String()
-}
-
-func (m StringTextMarshaler) decode(str string) string {
- if len(str) == 0 {
- return ""
- }
- b64 := base64.NewDecoder(base64.StdEncoding, strings.NewReader(str))
- bs := make([]byte, len(str))
- if n, err := b64.Read(bs); err != nil {
- panic(err)
- } else {
- bs = bs[:n]
- }
- return string(bs)
-}
-
-// MarshalText TEST ONLY
-func (m StringTextMarshaler) MarshalText() ([]byte, error) {
- return []byte(`MANUAL__` + m.encode(string(m))), nil
-}
-
-// UnmarshalText TEST ONLY
-func (m *StringTextMarshaler) UnmarshalText(text []byte) error {
- *m = StringTextMarshaler(m.decode(strings.TrimPrefix(string(text), "MANUAL__")))
- return nil
-}
-
-var _ encoding.TextMarshaler = *new(StringTextMarshaler)
-var _ encoding.TextUnmarshaler = new(StringTextMarshaler)
diff --git a/vendor/github.com/json-iterator/go/type_tests/text_marshaler_struct_test.go b/vendor/github.com/json-iterator/go/type_tests/text_marshaler_struct_test.go
deleted file mode 100644
index 2d3b65d3c..000000000
--- a/vendor/github.com/json-iterator/go/type_tests/text_marshaler_struct_test.go
+++ /dev/null
@@ -1,69 +0,0 @@
-package test
-
-import (
- "bytes"
- "encoding/base64"
- "strings"
- "encoding"
-)
-
-func init() {
- testCases = append(testCases,
- (*structTextMarshaler)(nil),
- (*structTextMarshalerAlias)(nil),
- (*struct {
- S string
- M structTextMarshaler
- I int8
- })(nil),
- (*struct {
- S string
- M structTextMarshalerAlias
- I int8
- })(nil),
- )
-}
-
-type structTextMarshaler struct {
- X string
-}
-
-func (m structTextMarshaler) encode(str string) string {
- buf := bytes.Buffer{}
- b64 := base64.NewEncoder(base64.StdEncoding, &buf)
- if _, err := b64.Write([]byte(str)); err != nil {
- panic(err)
- }
- if err := b64.Close(); err != nil {
- panic(err)
- }
- return buf.String()
-}
-
-func (m structTextMarshaler) decode(str string) string {
- if len(str) == 0 {
- return ""
- }
- b64 := base64.NewDecoder(base64.StdEncoding, strings.NewReader(str))
- bs := make([]byte, len(str))
- if n, err := b64.Read(bs); err != nil {
- panic(err)
- } else {
- bs = bs[:n]
- }
- return string(bs)
-}
-
-func (m structTextMarshaler) MarshalText() ([]byte, error) {
- return []byte(`MANUAL__` + m.encode(m.X)), nil
-}
-
-func (m *structTextMarshaler) UnmarshalText(text []byte) error {
- m.X = m.decode(strings.TrimPrefix(string(text), "MANUAL__"))
- return nil
-}
-
-var _ encoding.TextMarshaler = structTextMarshaler{}
-var _ encoding.TextUnmarshaler = &structTextMarshaler{}
-
-type structTextMarshalerAlias structTextMarshaler \ No newline at end of file
diff --git a/vendor/github.com/json-iterator/go/type_tests/type_test.go b/vendor/github.com/json-iterator/go/type_tests/type_test.go
deleted file mode 100644
index c4fb435fb..000000000
--- a/vendor/github.com/json-iterator/go/type_tests/type_test.go
+++ /dev/null
@@ -1,162 +0,0 @@
-package test
-
-import (
- "testing"
- "reflect"
- "fmt"
- "github.com/google/gofuzz"
- "strings"
- "github.com/json-iterator/go"
- "encoding/json"
- "bytes"
- "github.com/davecgh/go-spew/spew"
-)
-
-var testCases []interface{}
-var asymmetricTestCases [][2]interface{}
-
-type selectedSymmetricCase struct {
- testCase interface{}
-}
-
-func Test_symmetric(t *testing.T) {
- for _, testCase := range testCases {
- selectedSymmetricCase, found := testCase.(selectedSymmetricCase)
- if found {
- testCases = []interface{}{selectedSymmetricCase.testCase}
- break
- }
- }
- for _, testCase := range testCases {
- valType := reflect.TypeOf(testCase).Elem()
- t.Run(valType.String(), func(t *testing.T) {
- fz := fuzz.New().MaxDepth(10).NilChance(0.3)
- for i := 0; i < 100; i++ {
- beforePtrVal := reflect.New(valType)
- beforePtr := beforePtrVal.Interface()
- fz.Fuzz(beforePtr)
- before := beforePtrVal.Elem().Interface()
-
- jbStd, err := json.Marshal(before)
- if err != nil {
- t.Fatalf("failed to marshal with stdlib: %v", err)
- }
- if len(strings.TrimSpace(string(jbStd))) == 0 {
- t.Fatal("stdlib marshal produced empty result and no error")
- }
- jbIter, err := jsoniter.ConfigCompatibleWithStandardLibrary.Marshal(before)
- if err != nil {
- t.Fatalf("failed to marshal with jsoniter: %v", err)
- }
- if len(strings.TrimSpace(string(jbIter))) == 0 {
- t.Fatal("jsoniter marshal produced empty result and no error")
- }
- if string(jbStd) != string(jbIter) {
- t.Fatalf("marshal expected:\n %s\ngot:\n %s\nobj:\n %s",
- indent(jbStd, " "), indent(jbIter, " "), dump(before))
- }
-
- afterStdPtrVal := reflect.New(valType)
- afterStdPtr := afterStdPtrVal.Interface()
- err = json.Unmarshal(jbIter, afterStdPtr)
- if err != nil {
- t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n %s",
- err, indent(jbIter, " "))
- }
- afterIterPtrVal := reflect.New(valType)
- afterIterPtr := afterIterPtrVal.Interface()
- err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, afterIterPtr)
- if err != nil {
- t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n %s",
- err, indent(jbIter, " "))
- }
- afterStd := afterStdPtrVal.Elem().Interface()
- afterIter := afterIterPtrVal.Elem().Interface()
- if fingerprint(afterStd) != fingerprint(afterIter) {
- t.Fatalf("unmarshal expected:\n %s\ngot:\n %s\nvia:\n %s",
- dump(afterStd), dump(afterIter), indent(jbIter, " "))
- }
- }
- })
- }
-}
-
-func Test_asymmetric(t *testing.T) {
- for _, testCase := range asymmetricTestCases {
- fromType := reflect.TypeOf(testCase[0]).Elem()
- toType := reflect.TypeOf(testCase[1]).Elem()
- fz := fuzz.New().MaxDepth(10).NilChance(0.3)
- for i := 0; i < 100; i++ {
- beforePtrVal := reflect.New(fromType)
- beforePtr := beforePtrVal.Interface()
- fz.Fuzz(beforePtr)
- before := beforePtrVal.Elem().Interface()
-
- jbStd, err := json.Marshal(before)
- if err != nil {
- t.Fatalf("failed to marshal with stdlib: %v", err)
- }
- if len(strings.TrimSpace(string(jbStd))) == 0 {
- t.Fatal("stdlib marshal produced empty result and no error")
- }
- jbIter, err := jsoniter.ConfigCompatibleWithStandardLibrary.Marshal(before)
- if err != nil {
- t.Fatalf("failed to marshal with jsoniter: %v", err)
- }
- if len(strings.TrimSpace(string(jbIter))) == 0 {
- t.Fatal("jsoniter marshal produced empty result and no error")
- }
- if string(jbStd) != string(jbIter) {
- t.Fatalf("marshal expected:\n %s\ngot:\n %s\nobj:\n %s",
- indent(jbStd, " "), indent(jbIter, " "), dump(before))
- }
-
- afterStdPtrVal := reflect.New(toType)
- afterStdPtr := afterStdPtrVal.Interface()
- err = json.Unmarshal(jbIter, afterStdPtr)
- if err != nil {
- t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n %s",
- err, indent(jbIter, " "))
- }
- afterIterPtrVal := reflect.New(toType)
- afterIterPtr := afterIterPtrVal.Interface()
- err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, afterIterPtr)
- if err != nil {
- t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n %s",
- err, indent(jbIter, " "))
- }
- afterStd := afterStdPtrVal.Elem().Interface()
- afterIter := afterIterPtrVal.Elem().Interface()
- if fingerprint(afterStd) != fingerprint(afterIter) {
- t.Fatalf("unmarshal expected:\n %s\ngot:\n %s\nvia:\n %s",
- dump(afterStd), dump(afterIter), indent(jbIter, " "))
- }
- }
- }
-}
-
-const indentStr = "> "
-
-func fingerprint(obj interface{}) string {
- c := spew.ConfigState{
- SortKeys: true,
- SpewKeys: true,
- }
- return c.Sprintf("%v", obj)
-}
-
-func dump(obj interface{}) string {
- cfg := spew.ConfigState{
- Indent: indentStr,
- }
- return cfg.Sdump(obj)
-}
-
-func indent(src []byte, prefix string) string {
- var buf bytes.Buffer
- err := json.Indent(&buf, src, prefix, indentStr)
- if err != nil {
- return fmt.Sprintf("!!! %v", err)
- }
- return buf.String()
-}
diff --git a/vendor/github.com/json-iterator/go/value_tests/array_test.go b/vendor/github.com/json-iterator/go/value_tests/array_test.go
deleted file mode 100644
index d1667fb33..000000000
--- a/vendor/github.com/json-iterator/go/value_tests/array_test.go
+++ /dev/null
@@ -1,20 +0,0 @@
-package test
-
-func init() {
- two := float64(2)
- marshalCases = append(marshalCases,
- [1]*float64{nil},
- [1]*float64{&two},
- [2]*float64{},
- )
- unmarshalCases = append(unmarshalCases, unmarshalCase{
- ptr: (*[0]int)(nil),
- input: `[1]`,
- }, unmarshalCase{
- ptr: (*[1]int)(nil),
- input: `[2]`,
- }, unmarshalCase{
- ptr: (*[1]int)(nil),
- input: `[]`,
- })
-}
diff --git a/vendor/github.com/json-iterator/go/value_tests/bool_test.go b/vendor/github.com/json-iterator/go/value_tests/bool_test.go
deleted file mode 100644
index 40d8ca931..000000000
--- a/vendor/github.com/json-iterator/go/value_tests/bool_test.go
+++ /dev/null
@@ -1,10 +0,0 @@
-package test
-
-func init() {
- unmarshalCases = append(unmarshalCases, unmarshalCase{
- ptr: (*struct {
- Field bool `json:"field"`
- })(nil),
- input: `{"field": null}`,
- })
-}
diff --git a/vendor/github.com/json-iterator/go/value_tests/eface_test.go b/vendor/github.com/json-iterator/go/value_tests/eface_test.go
deleted file mode 100644
index 8940da4b3..000000000
--- a/vendor/github.com/json-iterator/go/value_tests/eface_test.go
+++ /dev/null
@@ -1,78 +0,0 @@
-package test
-
-func init() {
- var pEFace = func(val interface{}) *interface{} {
- return &val
- }
- var pInt = func(val int) *int {
- return &val
- }
- unmarshalCases = append(unmarshalCases, unmarshalCase{
- ptr: (**interface{})(nil),
- input: `"hello"`,
- }, unmarshalCase{
- ptr: (**interface{})(nil),
- input: `1e1`,
- }, unmarshalCase{
- ptr: (**interface{})(nil),
- input: `1.0e1`,
- }, unmarshalCase{
- ptr: (*[]interface{})(nil),
- input: `[1.0e1]`,
- }, unmarshalCase{
- ptr: (*struct {
- Field interface{}
- })(nil),
- input: `{"field":"hello"}`,
- }, unmarshalCase{
- obj: func() interface{} {
- type TestData struct {
- Name string `json:"name"`
- }
- o := &TestData{}
- return &o
- },
- input: `{"name":"value"}`,
- }, unmarshalCase{
- obj: func() interface{} {
- b := true
- return &struct {
- Field interface{} `json:"field"`
- }{&b}
- },
- input: `{"field": null}`,
- }, unmarshalCase{
- obj: func() interface{} {
- var pb *bool
- return &struct {
- Field interface{} `json:"field"`
- }{&pb}
- },
- input: `{"field": null}`,
- }, unmarshalCase{
- obj: func() interface{} {
- b := true
- pb := &b
- return &struct {
- Field interface{} `json:"field"`
- }{&pb}
- },
- input: `{"field": null}`,
- })
- marshalCases = append(marshalCases,
- pEFace("hello"),
- struct {
- Field interface{}
- }{"hello"},
- struct {
- Field interface{}
- }{struct{
- field chan int
- }{}},
- struct {
- Field interface{}
- }{struct{
- Field *int
- }{pInt(100)}},
- )
-}
diff --git a/vendor/github.com/json-iterator/go/value_tests/float_test.go b/vendor/github.com/json-iterator/go/value_tests/float_test.go
deleted file mode 100644
index 25466216b..000000000
--- a/vendor/github.com/json-iterator/go/value_tests/float_test.go
+++ /dev/null
@@ -1,130 +0,0 @@
-package test
-
-import (
- "fmt"
- "testing"
- "github.com/stretchr/testify/require"
- "strconv"
- "bytes"
- "github.com/json-iterator/go"
- "encoding/json"
-)
-
-func Test_read_float(t *testing.T) {
- inputs := []string{
- `1.1`, `1000`, `9223372036854775807`, `12.3`, `-12.3`, `720368.54775807`, `720368.547758075`,
- `1e1`, `1e+1`, `1e-1`, `1E1`, `1E+1`, `1E-1`, `-1e1`, `-1e+1`, `-1e-1`,
- }
- for _, input := range inputs {
- // non-streaming
- t.Run(fmt.Sprintf("%v", input), func(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, input+",")
- expected, err := strconv.ParseFloat(input, 32)
- should.Nil(err)
- should.Equal(float32(expected), iter.ReadFloat32())
- })
- t.Run(fmt.Sprintf("%v", input), func(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, input+",")
- expected, err := strconv.ParseFloat(input, 64)
- should.Nil(err)
- should.Equal(expected, iter.ReadFloat64())
- })
- // streaming
- t.Run(fmt.Sprintf("%v", input), func(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.Parse(jsoniter.ConfigDefault, bytes.NewBufferString(input+","), 2)
- expected, err := strconv.ParseFloat(input, 32)
- should.Nil(err)
- should.Equal(float32(expected), iter.ReadFloat32())
- })
- t.Run(fmt.Sprintf("%v", input), func(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.Parse(jsoniter.ConfigDefault, bytes.NewBufferString(input+","), 2)
- val := float64(0)
- err := json.Unmarshal([]byte(input), &val)
- should.Nil(err)
- should.Equal(val, iter.ReadFloat64())
- })
- }
-}
-
-
-func Test_write_float32(t *testing.T) {
- vals := []float32{0, 1, -1, 99, 0xff, 0xfff, 0xffff, 0xfffff, 0xffffff, 0x4ffffff, 0xfffffff,
- -0x4ffffff, -0xfffffff, 1.2345, 1.23456, 1.234567, 1.001}
- for _, val := range vals {
- t.Run(fmt.Sprintf("%v", val), func(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteFloat32Lossy(val)
- stream.Flush()
- should.Nil(stream.Error)
- output, err := json.Marshal(val)
- should.Nil(err)
- should.Equal(string(output), buf.String())
- })
- t.Run(fmt.Sprintf("%v", val), func(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteVal(val)
- stream.Flush()
- should.Nil(stream.Error)
- output, err := json.Marshal(val)
- should.Nil(err)
- should.Equal(string(output), buf.String())
- })
- }
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 10)
- stream.WriteRaw("abcdefg")
- stream.WriteFloat32Lossy(1.123456)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal("abcdefg1.123456", buf.String())
-
- stream = jsoniter.NewStream(jsoniter.ConfigDefault, nil, 0)
- stream.WriteFloat32(float32(0.0000001))
- should.Equal("1e-07", string(stream.Buffer()))
-}
-
-func Test_write_float64(t *testing.T) {
- vals := []float64{0, 1, -1, 99, 0xff, 0xfff, 0xffff, 0xfffff, 0xffffff, 0x4ffffff, 0xfffffff,
- -0x4ffffff, -0xfffffff, 1.2345, 1.23456, 1.234567, 1.001}
- for _, val := range vals {
- t.Run(fmt.Sprintf("%v", val), func(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteFloat64Lossy(val)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal(strconv.FormatFloat(val, 'f', -1, 64), buf.String())
- })
- t.Run(fmt.Sprintf("%v", val), func(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteVal(val)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal(strconv.FormatFloat(val, 'f', -1, 64), buf.String())
- })
- }
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 10)
- stream.WriteRaw("abcdefg")
- stream.WriteFloat64Lossy(1.123456)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal("abcdefg1.123456", buf.String())
-
- stream = jsoniter.NewStream(jsoniter.ConfigDefault, nil, 0)
- stream.WriteFloat64(float64(0.0000001))
- should.Equal("1e-07", string(stream.Buffer()))
-} \ No newline at end of file
diff --git a/vendor/github.com/json-iterator/go/value_tests/iface_test.go b/vendor/github.com/json-iterator/go/value_tests/iface_test.go
deleted file mode 100644
index 7eff2a879..000000000
--- a/vendor/github.com/json-iterator/go/value_tests/iface_test.go
+++ /dev/null
@@ -1,45 +0,0 @@
-package test
-
-import "io"
-
-func init() {
- var pCloser1 = func(str string) *io.Closer {
- closer := io.Closer(strCloser1(str))
- return &closer
- }
- var pCloser2 = func(str string) *io.Closer {
- strCloser := strCloser2(str)
- closer := io.Closer(&strCloser)
- return &closer
- }
- marshalCases = append(marshalCases,
- pCloser1("hello"),
- pCloser2("hello"),
- )
- unmarshalCases = append(unmarshalCases, unmarshalCase{
- ptr: (*[]io.Closer)(nil),
- input: "[null]",
- }, unmarshalCase{
- obj: func() interface{} {
- strCloser := strCloser2("")
- return &struct {
- Field io.Closer
- }{
- &strCloser,
- }
- },
- input: `{"Field": "hello"}`,
- })
-}
-
-type strCloser1 string
-
-func (closer strCloser1) Close() error {
- return nil
-}
-
-type strCloser2 string
-
-func (closer *strCloser2) Close() error {
- return nil
-}
diff --git a/vendor/github.com/json-iterator/go/value_tests/int_test.go b/vendor/github.com/json-iterator/go/value_tests/int_test.go
deleted file mode 100644
index b3b3f9a0c..000000000
--- a/vendor/github.com/json-iterator/go/value_tests/int_test.go
+++ /dev/null
@@ -1,420 +0,0 @@
-package test
-
-import (
- "github.com/stretchr/testify/require"
- "strconv"
- "fmt"
- "testing"
- "bytes"
- "github.com/json-iterator/go"
-)
-
-func init() {
- unmarshalCases = append(unmarshalCases, unmarshalCase{
- ptr: (*struct {
- F1 int8
- F2 int16
- F3 int32
- F4 int64
- F5 int
- F6 uint8
- F7 uint16
- F8 uint32
- F9 uint64
- F10 uint
- F11 float32
- F12 float64
- F13 uintptr
- })(nil),
- input: `{
- "f1":null,
- "f2":null,
- "f3":null,
- "f4":null,
- "f5":null,
- "f6":null,
- "f7":null,
- "f8":null,
- "f9":null,
- "f10":null,
- "f11":null,
- "f12":null,
- "f13":null
- }`,
- })
-}
-
-func Test_int8(t *testing.T) {
- inputs := []string{`127`, `-128`}
- for _, input := range inputs {
- t.Run(fmt.Sprintf("%v", input), func(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, input)
- expected, err := strconv.ParseInt(input, 10, 8)
- should.Nil(err)
- should.Equal(int8(expected), iter.ReadInt8())
- })
- }
-}
-
-func Test_read_int16(t *testing.T) {
- inputs := []string{`32767`, `-32768`}
- for _, input := range inputs {
- t.Run(fmt.Sprintf("%v", input), func(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, input)
- expected, err := strconv.ParseInt(input, 10, 16)
- should.Nil(err)
- should.Equal(int16(expected), iter.ReadInt16())
- })
- }
-}
-
-func Test_read_int32(t *testing.T) {
- inputs := []string{`1`, `12`, `123`, `1234`, `12345`, `123456`, `2147483647`, `-2147483648`}
- for _, input := range inputs {
- t.Run(fmt.Sprintf("%v", input), func(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, input)
- expected, err := strconv.ParseInt(input, 10, 32)
- should.Nil(err)
- should.Equal(int32(expected), iter.ReadInt32())
- })
- t.Run(fmt.Sprintf("%v", input), func(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.Parse(jsoniter.ConfigDefault, bytes.NewBufferString(input), 2)
- expected, err := strconv.ParseInt(input, 10, 32)
- should.Nil(err)
- should.Equal(int32(expected), iter.ReadInt32())
- })
- }
-}
-
-func Test_read_int_overflow(t *testing.T) {
- should := require.New(t)
- inputArr := []string{"123451", "-123451"}
- for _, s := range inputArr {
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, s)
- iter.ReadInt8()
- should.NotNil(iter.Error)
-
- iterU := jsoniter.ParseString(jsoniter.ConfigDefault, s)
- iterU.ReadUint8()
- should.NotNil(iterU.Error)
-
- }
-
- inputArr = []string{"12345678912", "-12345678912"}
- for _, s := range inputArr {
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, s)
- iter.ReadInt16()
- should.NotNil(iter.Error)
-
- iterUint := jsoniter.ParseString(jsoniter.ConfigDefault, s)
- iterUint.ReadUint16()
- should.NotNil(iterUint.Error)
- }
-
- inputArr = []string{"3111111111", "-3111111111", "1234232323232323235678912", "-1234567892323232323212"}
- for _, s := range inputArr {
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, s)
- iter.ReadInt32()
- should.NotNil(iter.Error)
-
- iterUint := jsoniter.ParseString(jsoniter.ConfigDefault, s)
- iterUint.ReadUint32()
- should.NotNil(iterUint.Error)
- }
-
- inputArr = []string{"9223372036854775811", "-9523372036854775807", "1234232323232323235678912", "-1234567892323232323212"}
- for _, s := range inputArr {
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, s)
- iter.ReadInt64()
- should.NotNil(iter.Error)
-
- iterUint := jsoniter.ParseString(jsoniter.ConfigDefault, s)
- iterUint.ReadUint64()
- should.NotNil(iterUint.Error)
- }
-}
-
-func Test_read_int64(t *testing.T) {
- inputs := []string{`1`, `12`, `123`, `1234`, `12345`, `123456`, `9223372036854775807`, `-9223372036854775808`}
- for _, input := range inputs {
- t.Run(fmt.Sprintf("%v", input), func(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, input)
- expected, err := strconv.ParseInt(input, 10, 64)
- should.Nil(err)
- should.Equal(expected, iter.ReadInt64())
- })
- t.Run(fmt.Sprintf("%v", input), func(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.Parse(jsoniter.ConfigDefault, bytes.NewBufferString(input), 2)
- expected, err := strconv.ParseInt(input, 10, 64)
- should.Nil(err)
- should.Equal(expected, iter.ReadInt64())
- })
- }
-}
-
-
-func Test_write_uint8(t *testing.T) {
- vals := []uint8{0, 1, 11, 111, 255}
- for _, val := range vals {
- t.Run(fmt.Sprintf("%v", val), func(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteUint8(val)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal(strconv.FormatUint(uint64(val), 10), buf.String())
- })
- t.Run(fmt.Sprintf("%v", val), func(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteVal(val)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal(strconv.FormatUint(uint64(val), 10), buf.String())
- })
- }
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 3)
- stream.WriteRaw("a")
- stream.WriteUint8(100) // should clear buffer
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal("a100", buf.String())
-}
-
-func Test_write_int8(t *testing.T) {
- vals := []int8{0, 1, -1, 99, 0x7f, -0x80}
- for _, val := range vals {
- t.Run(fmt.Sprintf("%v", val), func(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteInt8(val)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal(strconv.FormatInt(int64(val), 10), buf.String())
- })
- t.Run(fmt.Sprintf("%v", val), func(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteVal(val)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal(strconv.FormatInt(int64(val), 10), buf.String())
- })
- }
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4)
- stream.WriteRaw("a")
- stream.WriteInt8(-100) // should clear buffer
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal("a-100", buf.String())
-}
-
-func Test_write_uint16(t *testing.T) {
- vals := []uint16{0, 1, 11, 111, 255, 0xfff, 0xffff}
- for _, val := range vals {
- t.Run(fmt.Sprintf("%v", val), func(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteUint16(val)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal(strconv.FormatUint(uint64(val), 10), buf.String())
- })
- t.Run(fmt.Sprintf("%v", val), func(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteVal(val)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal(strconv.FormatUint(uint64(val), 10), buf.String())
- })
- }
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 5)
- stream.WriteRaw("a")
- stream.WriteUint16(10000) // should clear buffer
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal("a10000", buf.String())
-}
-
-func Test_write_int16(t *testing.T) {
- vals := []int16{0, 1, 11, 111, 255, 0xfff, 0x7fff, -0x8000}
- for _, val := range vals {
- t.Run(fmt.Sprintf("%v", val), func(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteInt16(val)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal(strconv.FormatInt(int64(val), 10), buf.String())
- })
- t.Run(fmt.Sprintf("%v", val), func(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteVal(val)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal(strconv.FormatInt(int64(val), 10), buf.String())
- })
- }
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 6)
- stream.WriteRaw("a")
- stream.WriteInt16(-10000) // should clear buffer
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal("a-10000", buf.String())
-}
-
-func Test_write_uint32(t *testing.T) {
- vals := []uint32{0, 1, 11, 111, 255, 999999, 0xfff, 0xffff, 0xfffff, 0xffffff, 0xfffffff, 0xffffffff}
- for _, val := range vals {
- t.Run(fmt.Sprintf("%v", val), func(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteUint32(val)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal(strconv.FormatUint(uint64(val), 10), buf.String())
- })
- t.Run(fmt.Sprintf("%v", val), func(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteVal(val)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal(strconv.FormatUint(uint64(val), 10), buf.String())
- })
- }
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 10)
- stream.WriteRaw("a")
- stream.WriteUint32(0xffffffff) // should clear buffer
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal("a4294967295", buf.String())
-}
-
-func Test_write_int32(t *testing.T) {
- vals := []int32{0, 1, 11, 111, 255, 999999, 0xfff, 0xffff, 0xfffff, 0xffffff, 0xfffffff, 0x7fffffff, -0x80000000}
- for _, val := range vals {
- t.Run(fmt.Sprintf("%v", val), func(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteInt32(val)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal(strconv.FormatInt(int64(val), 10), buf.String())
- })
- t.Run(fmt.Sprintf("%v", val), func(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteVal(val)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal(strconv.FormatInt(int64(val), 10), buf.String())
- })
- }
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 11)
- stream.WriteRaw("a")
- stream.WriteInt32(-0x7fffffff) // should clear buffer
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal("a-2147483647", buf.String())
-}
-
-func Test_write_uint64(t *testing.T) {
- vals := []uint64{0, 1, 11, 111, 255, 999999, 0xfff, 0xffff, 0xfffff, 0xffffff, 0xfffffff, 0xffffffff,
- 0xfffffffff, 0xffffffffff, 0xfffffffffff, 0xffffffffffff, 0xfffffffffffff, 0xffffffffffffff,
- 0xfffffffffffffff, 0xffffffffffffffff}
- for _, val := range vals {
- t.Run(fmt.Sprintf("%v", val), func(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteUint64(val)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal(strconv.FormatUint(uint64(val), 10), buf.String())
- })
- t.Run(fmt.Sprintf("%v", val), func(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteVal(val)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal(strconv.FormatUint(uint64(val), 10), buf.String())
- })
- }
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 10)
- stream.WriteRaw("a")
- stream.WriteUint64(0xffffffff) // should clear buffer
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal("a4294967295", buf.String())
-}
-
-func Test_write_int64(t *testing.T) {
- vals := []int64{0, 1, 11, 111, 255, 999999, 0xfff, 0xffff, 0xfffff, 0xffffff, 0xfffffff, 0xffffffff,
- 0xfffffffff, 0xffffffffff, 0xfffffffffff, 0xffffffffffff, 0xfffffffffffff, 0xffffffffffffff,
- 0xfffffffffffffff, 0x7fffffffffffffff, -0x8000000000000000}
- for _, val := range vals {
- t.Run(fmt.Sprintf("%v", val), func(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteInt64(val)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal(strconv.FormatInt(val, 10), buf.String())
- })
- t.Run(fmt.Sprintf("%v", val), func(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
- stream.WriteVal(val)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal(strconv.FormatInt(val, 10), buf.String())
- })
- }
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 10)
- stream.WriteRaw("a")
- stream.WriteInt64(0xffffffff) // should clear buffer
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal("a4294967295", buf.String())
-} \ No newline at end of file
diff --git a/vendor/github.com/json-iterator/go/value_tests/invalid_test.go b/vendor/github.com/json-iterator/go/value_tests/invalid_test.go
deleted file mode 100644
index f460124c8..000000000
--- a/vendor/github.com/json-iterator/go/value_tests/invalid_test.go
+++ /dev/null
@@ -1,226 +0,0 @@
-package test
-
-import (
- "bytes"
- "encoding/json"
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
- "io"
- "testing"
- "github.com/json-iterator/go"
-)
-
-func Test_missing_object_end(t *testing.T) {
- should := require.New(t)
- type TestObject struct {
- Metric string `json:"metric"`
- Tags map[string]interface{} `json:"tags"`
- }
- obj := TestObject{}
- should.NotNil(jsoniter.UnmarshalFromString(`{"metric": "sys.777","tags": {"a":"123"}`, &obj))
-}
-
-func Test_missing_array_end(t *testing.T) {
- should := require.New(t)
- should.NotNil(jsoniter.UnmarshalFromString(`[1,2,3`, &[]int{}))
-}
-
-func Test_invalid_any(t *testing.T) {
- should := require.New(t)
- any := jsoniter.Get([]byte("[]"))
- should.Equal(jsoniter.InvalidValue, any.Get(0.3).ValueType())
- // is nil correct ?
- should.Equal(nil, any.Get(0.3).GetInterface())
-
- any = any.Get(0.3)
- should.Equal(false, any.ToBool())
- should.Equal(int(0), any.ToInt())
- should.Equal(int32(0), any.ToInt32())
- should.Equal(int64(0), any.ToInt64())
- should.Equal(uint(0), any.ToUint())
- should.Equal(uint32(0), any.ToUint32())
- should.Equal(uint64(0), any.ToUint64())
- should.Equal(float32(0), any.ToFloat32())
- should.Equal(float64(0), any.ToFloat64())
- should.Equal("", any.ToString())
-
- should.Equal(jsoniter.InvalidValue, any.Get(0.1).Get(1).ValueType())
-}
-
-func Test_invalid_struct_input(t *testing.T) {
- should := require.New(t)
- type TestObject struct{}
- input := []byte{54, 141, 30}
- obj := TestObject{}
- should.NotNil(jsoniter.Unmarshal(input, &obj))
-}
-
-func Test_invalid_slice_input(t *testing.T) {
- should := require.New(t)
- type TestObject struct{}
- input := []byte{93}
- obj := []string{}
- should.NotNil(jsoniter.Unmarshal(input, &obj))
-}
-
-func Test_invalid_array_input(t *testing.T) {
- should := require.New(t)
- type TestObject struct{}
- input := []byte{93}
- obj := [0]string{}
- should.NotNil(jsoniter.Unmarshal(input, &obj))
-}
-
-func Test_invalid_float(t *testing.T) {
- inputs := []string{
- `1.e1`, // dot without following digit
- `1.`, // dot can not be the last char
- ``, // empty number
- `01`, // extra leading zero
- `-`, // negative without digit
- `--`, // double negative
- `--2`, // double negative
- }
- for _, input := range inputs {
- t.Run(input, func(t *testing.T) {
- should := require.New(t)
- iter := jsoniter.ParseString(jsoniter.ConfigDefault, input+",")
- iter.Skip()
- should.NotEqual(io.EOF, iter.Error)
- should.NotNil(iter.Error)
- v := float64(0)
- should.NotNil(json.Unmarshal([]byte(input), &v))
- iter = jsoniter.ParseString(jsoniter.ConfigDefault, input+",")
- iter.ReadFloat64()
- should.NotEqual(io.EOF, iter.Error)
- should.NotNil(iter.Error)
- iter = jsoniter.ParseString(jsoniter.ConfigDefault, input+",")
- iter.ReadFloat32()
- should.NotEqual(io.EOF, iter.Error)
- should.NotNil(iter.Error)
- })
- }
-}
-
-func Test_chan(t *testing.T) {
- t.Skip("do not support chan")
-
- type TestObject struct {
- MyChan chan bool
- MyField int
- }
-
- should := require.New(t)
- obj := TestObject{}
- str, err := json.Marshal(obj)
- should.Nil(err)
- should.Equal(``, str)
-}
-
-func Test_invalid_number(t *testing.T) {
- type Message struct {
- Number int `json:"number"`
- }
- obj := Message{}
- decoder := jsoniter.ConfigCompatibleWithStandardLibrary.NewDecoder(bytes.NewBufferString(`{"number":"5"}`))
- err := decoder.Decode(&obj)
- invalidStr := err.Error()
- result, err := jsoniter.ConfigCompatibleWithStandardLibrary.Marshal(invalidStr)
- should := require.New(t)
- should.Nil(err)
- result2, err := json.Marshal(invalidStr)
- should.Nil(err)
- should.Equal(string(result2), string(result))
-}
-
-func Test_valid(t *testing.T) {
- should := require.New(t)
- should.True(jsoniter.Valid([]byte(`{}`)))
- should.False(jsoniter.Valid([]byte(`{`)))
-}
-
-func Test_nil_pointer(t *testing.T) {
- should := require.New(t)
- data := []byte(`{"A":0}`)
- type T struct {
- X int
- }
- var obj *T
- err := jsoniter.Unmarshal(data, obj)
- should.NotNil(err)
-}
-
-func Test_func_pointer_type(t *testing.T) {
- type TestObject2 struct {
- F func()
- }
- type TestObject1 struct {
- Obj *TestObject2
- }
- t.Run("encode null is valid", func(t *testing.T) {
- should := require.New(t)
- output, err := json.Marshal(TestObject1{})
- should.Nil(err)
- should.Equal(`{"Obj":null}`, string(output))
- output, err = jsoniter.Marshal(TestObject1{})
- should.Nil(err)
- should.Equal(`{"Obj":null}`, string(output))
- })
- t.Run("encode not null is invalid", func(t *testing.T) {
- should := require.New(t)
- _, err := json.Marshal(TestObject1{Obj: &TestObject2{}})
- should.NotNil(err)
- _, err = jsoniter.Marshal(TestObject1{Obj: &TestObject2{}})
- should.NotNil(err)
- })
- t.Run("decode null is valid", func(t *testing.T) {
- should := require.New(t)
- var obj TestObject1
- should.Nil(json.Unmarshal([]byte(`{"Obj":{"F": null}}`), &obj))
- should.Nil(jsoniter.Unmarshal([]byte(`{"Obj":{"F": null}}`), &obj))
- })
- t.Run("decode not null is invalid", func(t *testing.T) {
- should := require.New(t)
- var obj TestObject1
- should.NotNil(json.Unmarshal([]byte(`{"Obj":{"F": "hello"}}`), &obj))
- should.NotNil(jsoniter.Unmarshal([]byte(`{"Obj":{"F": "hello"}}`), &obj))
- })
-}
-
-func TestEOF(t *testing.T) {
- var s string
- err := jsoniter.ConfigCompatibleWithStandardLibrary.NewDecoder(&bytes.Buffer{}).Decode(&s)
- assert.Equal(t, io.EOF, err)
-}
-
-func TestDecodeErrorType(t *testing.T) {
- should := require.New(t)
- var err error
- should.Nil(jsoniter.Unmarshal([]byte("null"), &err))
- should.NotNil(jsoniter.Unmarshal([]byte("123"), &err))
-}
-
-func Test_decode_slash(t *testing.T) {
- should := require.New(t)
- var obj interface{}
- should.NotNil(json.Unmarshal([]byte("\\"), &obj))
- should.NotNil(jsoniter.UnmarshalFromString("\\", &obj))
-}
-
-func Test_NilInput(t *testing.T) {
- var jb []byte // nil
- var out string
- err := jsoniter.Unmarshal(jb, &out)
- if err == nil {
- t.Errorf("Expected error")
- }
-}
-
-func Test_EmptyInput(t *testing.T) {
- jb := []byte("")
- var out string
- err := jsoniter.Unmarshal(jb, &out)
- if err == nil {
- t.Errorf("Expected error")
- }
-} \ No newline at end of file
diff --git a/vendor/github.com/json-iterator/go/value_tests/map_test.go b/vendor/github.com/json-iterator/go/value_tests/map_test.go
deleted file mode 100644
index 0a5ed81d3..000000000
--- a/vendor/github.com/json-iterator/go/value_tests/map_test.go
+++ /dev/null
@@ -1,51 +0,0 @@
-package test
-
-import (
- "math/big"
- "encoding/json"
-)
-
-func init() {
- var pRawMessage = func(val json.RawMessage) *json.RawMessage {
- return &val
- }
- nilMap := map[string]string(nil)
- marshalCases = append(marshalCases,
- map[string]interface{}{"abc": 1},
- map[string]MyInterface{"hello": MyString("world")},
- map[*big.Float]string{big.NewFloat(1.2): "2"},
- map[string]interface{}{
- "3": 3,
- "1": 1,
- "2": 2,
- },
- map[uint64]interface{}{
- uint64(1): "a",
- uint64(2): "a",
- uint64(4): "a",
- },
- nilMap,
- &nilMap,
- map[string]*json.RawMessage{"hello":pRawMessage(json.RawMessage("[]"))},
- )
- unmarshalCases = append(unmarshalCases, unmarshalCase{
- ptr: (*map[string]string)(nil),
- input: `{"k\"ey": "val"}`,
- }, unmarshalCase{
- ptr: (*map[string]string)(nil),
- input: `null`,
- }, unmarshalCase{
- ptr: (*map[string]*json.RawMessage)(nil),
- input: "{\"test\":[{\"key\":\"value\"}]}",
- })
-}
-
-type MyInterface interface {
- Hello() string
-}
-
-type MyString string
-
-func (ms MyString) Hello() string {
- return string(ms)
-}
diff --git a/vendor/github.com/json-iterator/go/value_tests/marshaler_test.go b/vendor/github.com/json-iterator/go/value_tests/marshaler_test.go
deleted file mode 100644
index 90e244e65..000000000
--- a/vendor/github.com/json-iterator/go/value_tests/marshaler_test.go
+++ /dev/null
@@ -1,85 +0,0 @@
-package test
-
-import (
- "encoding/json"
- "encoding"
-)
-
-func init() {
- jm := json.Marshaler(jmOfStruct{})
- tm1 := encoding.TextMarshaler(tmOfStruct{})
- tm2 := encoding.TextMarshaler(&tmOfStructInt{})
- marshalCases = append(marshalCases,
- jmOfStruct{},
- &jm,
- tmOfStruct{},
- &tm1,
- tmOfStructInt{},
- &tm2,
- map[tmOfStruct]int{
- tmOfStruct{}: 100,
- },
- map[*tmOfStruct]int{
- &tmOfStruct{}: 100,
- },
- map[encoding.TextMarshaler]int{
- tm1: 100,
- },
- )
- unmarshalCases = append(unmarshalCases, unmarshalCase{
- ptr: (*tmOfMap)(nil),
- input: `"{1:2}"`,
- }, unmarshalCase{
- ptr: (*tmOfMapPtr)(nil),
- input: `"{1:2}"`,
- })
-}
-
-type jmOfStruct struct {
- F2 chan []byte
-}
-
-func (q jmOfStruct) MarshalJSON() ([]byte, error) {
- return []byte(`""`), nil
-}
-
-func (q *jmOfStruct) UnmarshalJSON(value []byte) error {
- return nil
-}
-
-
-type tmOfStruct struct {
- F2 chan []byte
-}
-
-func (q tmOfStruct) MarshalText() ([]byte, error) {
- return []byte(`""`), nil
-}
-
-func (q *tmOfStruct) UnmarshalText(value []byte) error {
- return nil
-}
-
-type tmOfStructInt struct {
- Field2 int
-}
-
-func (q *tmOfStructInt) MarshalText() ([]byte, error) {
- return []byte(`"abc"`), nil
-}
-
-func (q *tmOfStructInt) UnmarshalText(value []byte) error {
- return nil
-}
-
-type tmOfMap map[int]int
-
-func (q tmOfMap) UnmarshalText(value []byte) error {
- return nil
-}
-
-type tmOfMapPtr map[int]int
-
-func (q *tmOfMapPtr) UnmarshalText(value []byte) error {
- return nil
-}
diff --git a/vendor/github.com/json-iterator/go/value_tests/number_test.go b/vendor/github.com/json-iterator/go/value_tests/number_test.go
deleted file mode 100644
index 98ab4b5a4..000000000
--- a/vendor/github.com/json-iterator/go/value_tests/number_test.go
+++ /dev/null
@@ -1,17 +0,0 @@
-package test
-
-import "encoding/json"
-
-func init() {
- unmarshalCases = append(unmarshalCases, unmarshalCase{
- ptr: (*json.Number)(nil),
- input: `"500"`,
- }, unmarshalCase{
- ptr: (*json.Number)(nil),
- input: `1`,
- }, unmarshalCase{
- ptr: (*json.Number)(nil),
- input: `null`,
- })
- marshalCases = append(marshalCases, json.Number(""))
-}
diff --git a/vendor/github.com/json-iterator/go/value_tests/ptr_test.go b/vendor/github.com/json-iterator/go/value_tests/ptr_test.go
deleted file mode 100644
index 222b2d43a..000000000
--- a/vendor/github.com/json-iterator/go/value_tests/ptr_test.go
+++ /dev/null
@@ -1,39 +0,0 @@
-package test
-
-func init() {
- var pInt = func(val int) *int {
- return &val
- }
- marshalCases = append(marshalCases,
- (*int)(nil),
- pInt(100),
- )
- unmarshalCases = append(unmarshalCases, unmarshalCase{
- obj: func() interface{} {
- var i int
- return &i
- },
- input: "null",
- }, unmarshalCase{
- obj: func() interface{} {
- var i *int
- return &i
- },
- input: "10",
- }, unmarshalCase{
- obj: func() interface{} {
- var i int
- pi := &i
- return &pi
- },
- input: "null",
- }, unmarshalCase{
- obj: func() interface{} {
- var i int
- pi := &i
- ppi := &pi
- return &ppi
- },
- input: "null",
- })
-}
diff --git a/vendor/github.com/json-iterator/go/value_tests/raw_message_test.go b/vendor/github.com/json-iterator/go/value_tests/raw_message_test.go
deleted file mode 100644
index 1f1a67119..000000000
--- a/vendor/github.com/json-iterator/go/value_tests/raw_message_test.go
+++ /dev/null
@@ -1,13 +0,0 @@
-package test
-
-import "encoding/json"
-
-func init() {
- marshalCases = append(marshalCases,
- json.RawMessage("{}"),
- )
- unmarshalCases = append(unmarshalCases, unmarshalCase{
- ptr: (*json.RawMessage)(nil),
- input: `[1,2,3]`,
- })
-}
diff --git a/vendor/github.com/json-iterator/go/value_tests/slice_test.go b/vendor/github.com/json-iterator/go/value_tests/slice_test.go
deleted file mode 100644
index f14823fcb..000000000
--- a/vendor/github.com/json-iterator/go/value_tests/slice_test.go
+++ /dev/null
@@ -1,17 +0,0 @@
-package test
-
-func init() {
- nilSlice := []string(nil)
- marshalCases = append(marshalCases,
- []interface{}{"hello"},
- nilSlice,
- &nilSlice,
- )
- unmarshalCases = append(unmarshalCases, unmarshalCase{
- ptr: (*[]string)(nil),
- input: "null",
- }, unmarshalCase{
- ptr: (*[]string)(nil),
- input: "[]",
- })
-}
diff --git a/vendor/github.com/json-iterator/go/value_tests/string_test.go b/vendor/github.com/json-iterator/go/value_tests/string_test.go
deleted file mode 100644
index 9bf5e365c..000000000
--- a/vendor/github.com/json-iterator/go/value_tests/string_test.go
+++ /dev/null
@@ -1,88 +0,0 @@
-package test
-
-import (
- "testing"
- "github.com/json-iterator/go"
- "encoding/json"
- "unicode/utf8"
-)
-
-func init() {
- marshalCases = append(marshalCases,
- `>`,
- `"数字山谷"`,
- "he\u2029\u2028he",
- )
- for i := 0; i < utf8.RuneSelf; i++ {
- marshalCases = append(marshalCases, string([]byte{byte(i)}))
- }
-}
-
-func Test_read_string(t *testing.T) {
- badInputs := []string{
- ``,
- `"`,
- `"\"`,
- `"\\\"`,
- "\"\n\"",
- `"\U0001f64f"`,
- `"\uD83D\u00"`,
- }
- for i := 0; i < 32; i++ {
- // control characters are invalid
- badInputs = append(badInputs, string([]byte{'"', byte(i), '"'}))
- }
-
- for _, input := range badInputs {
- testReadString(t, input, "", true, "json.Unmarshal", json.Unmarshal)
- testReadString(t, input, "", true, "jsoniter.Unmarshal", jsoniter.Unmarshal)
- testReadString(t, input, "", true, "jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
- }
-
- goodInputs := []struct {
- input string
- expectValue string
- }{
- {`""`, ""},
- {`"a"`, "a"},
- {`null`, ""},
- {`"Iñtërnâtiônàlizætiøn,💝🐹🌇⛔"`, "Iñtërnâtiônàlizætiøn,💝🐹🌇⛔"},
- {`"\uD83D"`, string([]byte{239, 191, 189})},
- {`"\uD83D\\"`, string([]byte{239, 191, 189, '\\'})},
- {`"\uD83D\ub000"`, string([]byte{239, 191, 189, 235, 128, 128})},
- {`"\uD83D\ude04"`, "😄"},
- {`"\uDEADBEEF"`, string([]byte{239, 191, 189, 66, 69, 69, 70})},
- {`"hel\"lo"`, `hel"lo`},
- {`"hel\\\/lo"`, `hel\/lo`},
- {`"hel\\blo"`, `hel\blo`},
- {`"hel\\\blo"`, "hel\\\blo"},
- {`"hel\\nlo"`, `hel\nlo`},
- {`"hel\\\nlo"`, "hel\\\nlo"},
- {`"hel\\tlo"`, `hel\tlo`},
- {`"hel\\flo"`, `hel\flo`},
- {`"hel\\\flo"`, "hel\\\flo"},
- {`"hel\\\rlo"`, "hel\\\rlo"},
- {`"hel\\\tlo"`, "hel\\\tlo"},
- {`"\u4e2d\u6587"`, "中文"},
- {`"\ud83d\udc4a"`, "\xf0\x9f\x91\x8a"},
- }
-
- for _, tc := range goodInputs {
- testReadString(t, tc.input, tc.expectValue, false, "json.Unmarshal", json.Unmarshal)
- testReadString(t, tc.input, tc.expectValue, false, "jsoniter.Unmarshal", jsoniter.Unmarshal)
- testReadString(t, tc.input, tc.expectValue, false, "jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
- }
-}
-
-func testReadString(t *testing.T, input string, expectValue string, expectError bool, marshalerName string, marshaler func([]byte, interface{}) error) {
- var value string
- err := marshaler([]byte(input), &value)
- if expectError != (err != nil) {
- t.Errorf("%q: %s: expected error %v, got %v", input, marshalerName, expectError, err)
- return
- }
- if value != expectValue {
- t.Errorf("%q: %s: expected %q, got %q", input, marshalerName, expectValue, value)
- return
- }
-}
diff --git a/vendor/github.com/json-iterator/go/value_tests/struct_test.go b/vendor/github.com/json-iterator/go/value_tests/struct_test.go
deleted file mode 100644
index 88a327724..000000000
--- a/vendor/github.com/json-iterator/go/value_tests/struct_test.go
+++ /dev/null
@@ -1,200 +0,0 @@
-package test
-
-import (
- "time"
- "encoding/json"
- "bytes"
-)
-
-func init() {
- var pString = func(val string) *string {
- return &val
- }
- epoch := time.Unix(0, 0)
- unmarshalCases = append(unmarshalCases, unmarshalCase{
- ptr: (*struct {
- Field interface{}
- })(nil),
- input: `{"Field": "hello"}`,
- }, unmarshalCase{
- ptr: (*struct {
- Field interface{}
- })(nil),
- input: `{"Field": "hello"} `,
- }, unmarshalCase{
- ptr: (*struct {
- Field int `json:"field"`
- })(nil),
- input: `{"field": null}`,
- }, unmarshalCase{
- ptr: (*struct {
- ID int `json:"id"`
- Payload map[string]interface{} `json:"payload"`
- buf *bytes.Buffer
- })(nil),
- input: ` {"id":1, "payload":{"account":"123","password":"456"}}`,
- }, unmarshalCase{
- ptr: (*struct {
- Field1 string
- })(nil),
- input: `{"Field\"1":"hello"}`,
- }, unmarshalCase{
- ptr: (*struct {
- Field1 string
- })(nil),
- input: `{"\u0046ield1":"hello"}`,
- }, unmarshalCase{
- ptr: (*struct {
- Field1 *string
- Field2 *string
- })(nil),
- input: `{"field1": null, "field2": "world"}`,
- }, unmarshalCase{
- ptr: (*struct {
- Field1 string
- Field2 json.RawMessage
- })(nil),
- input: `{"field1": "hello", "field2":[1,2,3]}`,
- }, unmarshalCase{
- ptr: (*struct {
- a int
- b <-chan int
- C int
- d *time.Timer
- })(nil),
- input: `{"a": 444, "b":"bad", "C":256, "d":{"not":"a timer"}}`,
- })
- marshalCases = append(marshalCases,
- struct {
- Field map[string]interface{}
- }{
- map[string]interface{}{"hello": "world"},
- },
- struct {
- Field map[string]interface{}
- Field2 string
- }{
- map[string]interface{}{"hello": "world"}, "",
- },
- struct {
- Field interface{}
- }{
- 1024,
- },
- struct {
- Field MyInterface
- }{
- MyString("hello"),
- },
- struct {
- F *float64
- }{},
- struct {
- *time.Time
- }{&epoch},
- struct {
- *StructVarious
- }{&StructVarious{}},
- struct {
- *StructVarious
- Field int
- }{nil, 10},
- struct {
- Field1 int
- Field2 [1]*float64
- }{},
- struct {
- Field interface{} `json:"field,omitempty"`
- }{},
- struct {
- Field MyInterface `json:"field,omitempty"`
- }{},
- struct {
- Field MyInterface `json:"field,omitempty"`
- }{MyString("hello")},
- struct {
- Field json.Marshaler `json:"field"`
- }{},
- struct {
- Field MyInterface `json:"field"`
- }{},
- struct {
- Field MyInterface `json:"field"`
- }{MyString("hello")},
- struct {
- Field1 string `json:"field-1,omitempty"`
- Field2 func() `json:"-"`
- }{},
- structRecursive{},
- struct {
- *CacheItem
-
- // Omit bad keys
- OmitMaxAge omit `json:"cacheAge,omitempty"`
-
- // Add nice keys
- MaxAge int `json:"max_age"`
- }{
- CacheItem: &CacheItem{
- Key: "value",
- MaxAge: 100,
- },
- MaxAge: 20,
- },
- structOrder{},
- struct {
- Field1 *string
- Field2 *string
- }{Field2: pString("world")},
- struct {
- a int
- b <-chan int
- C int
- d *time.Timer
- }{
- a: 42,
- b: make(<-chan int, 10),
- C: 21,
- d: time.NewTimer(10 * time.Second),
- },
- )
-}
-
-type StructVarious struct {
- Field0 string
- Field1 []string
- Field2 map[string]interface{}
-}
-
-type structRecursive struct {
- Field1 string
- Me *structRecursive
-}
-
-type omit *struct{}
-type CacheItem struct {
- Key string `json:"key"`
- MaxAge int `json:"cacheAge"`
-}
-
-type orderA struct {
- Field2 string
-}
-
-type orderC struct {
- Field5 string
-}
-
-type orderB struct {
- Field4 string
- orderC
- Field6 string
-}
-
-type structOrder struct {
- Field1 string
- orderA
- Field3 string
- orderB
- Field7 string
-}
diff --git a/vendor/github.com/json-iterator/go/value_tests/value_test.go b/vendor/github.com/json-iterator/go/value_tests/value_test.go
deleted file mode 100644
index 71b873e0f..000000000
--- a/vendor/github.com/json-iterator/go/value_tests/value_test.go
+++ /dev/null
@@ -1,80 +0,0 @@
-package test
-
-import (
- "testing"
- "encoding/json"
- "github.com/stretchr/testify/require"
- "github.com/json-iterator/go"
- "fmt"
- "github.com/v2pro/plz/reflect2"
-)
-
-type unmarshalCase struct {
- obj func() interface{}
- ptr interface{}
- input string
- selected bool
-}
-
-var unmarshalCases []unmarshalCase
-
-var marshalCases = []interface{}{
- nil,
-}
-
-type selectedMarshalCase struct {
- marshalCase interface{}
-}
-
-func Test_unmarshal(t *testing.T) {
- for _, testCase := range unmarshalCases {
- if testCase.selected {
- unmarshalCases = []unmarshalCase{testCase}
- break
- }
- }
- for i, testCase := range unmarshalCases {
- t.Run(fmt.Sprintf("[%v]%s", i, testCase.input), func(t *testing.T) {
- should := require.New(t)
- var obj1 interface{}
- var obj2 interface{}
- if testCase.obj != nil {
- obj1 = testCase.obj()
- obj2 = testCase.obj()
- } else {
- valType := reflect2.TypeOfPtr(testCase.ptr).Elem()
- obj1 = valType.New()
- obj2 = valType.New()
- }
- err1 := json.Unmarshal([]byte(testCase.input), obj1)
- should.NoError(err1, "json")
- err2 := jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal([]byte(testCase.input), obj2)
- should.NoError(err2, "jsoniter")
- should.Equal(obj1, obj2)
- })
- }
-}
-
-func Test_marshal(t *testing.T) {
- for _, testCase := range marshalCases {
- selectedMarshalCase, found := testCase.(selectedMarshalCase)
- if found {
- marshalCases = []interface{}{selectedMarshalCase.marshalCase}
- break
- }
- }
- for i, testCase := range marshalCases {
- var name string
- if testCase != nil {
- name = fmt.Sprintf("[%v]%v/%s", i, testCase, reflect2.TypeOf(testCase).String())
- }
- t.Run(name, func(t *testing.T) {
- should := require.New(t)
- output1, err1 := json.Marshal(testCase)
- should.NoError(err1, "json")
- output2, err2 := jsoniter.ConfigCompatibleWithStandardLibrary.Marshal(testCase)
- should.NoError(err2, "jsoniter")
- should.Equal(string(output1), string(output2))
- })
- }
-} \ No newline at end of file