mirror of https://github.com/goccy/go-json.git
work cover bool
This commit is contained in:
parent
f6d91525b2
commit
a5bf94c75b
|
@ -369,7 +369,12 @@ func (c *StructCode) ToOpcode(ctx *compileContext) Opcodes {
|
||||||
} else if field.isAnonymous {
|
} else if field.isAnonymous {
|
||||||
fieldCodes.First().End = fieldCodes.Last()
|
fieldCodes.First().End = fieldCodes.Last()
|
||||||
//fieldCodes.First().Next.End = fieldCodes.Last()
|
//fieldCodes.First().Next.End = fieldCodes.Last()
|
||||||
fieldCodes.First().Next.NextField = fieldCodes.Last()
|
fieldCode := fieldCodes.First().Next
|
||||||
|
for fieldCode.NextField != nil {
|
||||||
|
fieldCode = fieldCode.NextField
|
||||||
|
}
|
||||||
|
// link curLastField => endField
|
||||||
|
fieldCode.NextField = fieldCodes.Last()
|
||||||
} else {
|
} else {
|
||||||
fieldCodes.First().End = fieldCodes.Last()
|
fieldCodes.First().End = fieldCodes.Last()
|
||||||
}
|
}
|
||||||
|
@ -377,9 +382,17 @@ func (c *StructCode) ToOpcode(ctx *compileContext) Opcodes {
|
||||||
if field.isAnonymous {
|
if field.isAnonymous {
|
||||||
// fieldCodes.First() is StructHead operation.
|
// fieldCodes.First() is StructHead operation.
|
||||||
// StructHead's next operation is truely head operation.
|
// StructHead's next operation is truely head operation.
|
||||||
prevField = fieldCodes.First().Next
|
fieldCode := fieldCodes.First().Next
|
||||||
|
for fieldCode.NextField != nil {
|
||||||
|
fieldCode = fieldCode.NextField
|
||||||
|
}
|
||||||
|
prevField = fieldCode
|
||||||
} else {
|
} else {
|
||||||
prevField = fieldCodes.First()
|
fieldCode := fieldCodes.First()
|
||||||
|
for fieldCode.NextField != nil {
|
||||||
|
fieldCode = fieldCode.NextField
|
||||||
|
}
|
||||||
|
prevField = fieldCode
|
||||||
}
|
}
|
||||||
codes = append(codes, fieldCodes...)
|
codes = append(codes, fieldCodes...)
|
||||||
}
|
}
|
||||||
|
@ -1002,6 +1015,14 @@ func compileFloat642(ctx *compileContext, isPtr bool) (*FloatCode, error) {
|
||||||
return &FloatCode{typ: ctx.typ, bitSize: 64, isPtr: isPtr}, nil
|
return &FloatCode{typ: ctx.typ, bitSize: 64, isPtr: isPtr}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func compileString2(ctx *compileContext, isPtr bool) (*StringCode, error) {
|
||||||
|
return &StringCode{typ: ctx.typ, isPtr: isPtr}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func compileBool2(ctx *compileContext, isPtr bool) (*BoolCode, error) {
|
||||||
|
return &BoolCode{typ: ctx.typ, isPtr: isPtr}, nil
|
||||||
|
}
|
||||||
|
|
||||||
func compileIntString2(ctx *compileContext) (*IntCode, error) {
|
func compileIntString2(ctx *compileContext) (*IntCode, error) {
|
||||||
return &IntCode{typ: ctx.typ, bitSize: intSize, isString: true}, nil
|
return &IntCode{typ: ctx.typ, bitSize: intSize, isString: true}, nil
|
||||||
}
|
}
|
||||||
|
@ -1042,14 +1063,6 @@ func compileUint64String2(ctx *compileContext) (*UintCode, error) {
|
||||||
return &UintCode{typ: ctx.typ, bitSize: 64, isString: true}, nil
|
return &UintCode{typ: ctx.typ, bitSize: 64, isString: true}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func compileString2(ctx *compileContext, isString bool) (*StringCode, error) {
|
|
||||||
return &StringCode{typ: ctx.typ, isString: isString}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func compileBool2(ctx *compileContext, isString bool) (*BoolCode, error) {
|
|
||||||
return &BoolCode{typ: ctx.typ, isString: isString}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func compileSlice2(ctx *compileContext) (*SliceCode, error) {
|
func compileSlice2(ctx *compileContext) (*SliceCode, error) {
|
||||||
elem := ctx.typ.Elem()
|
elem := ctx.typ.Elem()
|
||||||
code, err := compileListElem2(ctx.withType(elem))
|
code, err := compileListElem2(ctx.withType(elem))
|
||||||
|
@ -1423,7 +1436,6 @@ func (c *StructCode) compileStructField(ctx *compileContext, tag *runtime.Struct
|
||||||
fieldCode.isNextOpPtrType = true
|
fieldCode.isNextOpPtrType = true
|
||||||
}
|
}
|
||||||
fieldCode.value = code
|
fieldCode.value = code
|
||||||
fieldCode.isNilCheck = false
|
|
||||||
}
|
}
|
||||||
return fieldCode, nil
|
return fieldCode, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ package json_test
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
stdjson "encoding/json"
|
stdjson "encoding/json"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/goccy/go-json"
|
"github.com/goccy/go-json"
|
||||||
|
@ -2653,19 +2654,21 @@ func TestCoverBool(t *testing.T) {
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
for _, indent := range []bool{true, false} {
|
for _, indent := range []bool{true, false} {
|
||||||
for _, htmlEscape := range []bool{true, false} {
|
for _, htmlEscape := range []bool{true, false} {
|
||||||
var buf bytes.Buffer
|
t.Run(fmt.Sprintf("%s_indent_%t_escape_%t", test.name, indent, htmlEscape), func(t *testing.T) {
|
||||||
enc := json.NewEncoder(&buf)
|
var buf bytes.Buffer
|
||||||
enc.SetEscapeHTML(htmlEscape)
|
enc := json.NewEncoder(&buf)
|
||||||
if indent {
|
enc.SetEscapeHTML(htmlEscape)
|
||||||
enc.SetIndent("", " ")
|
if indent {
|
||||||
}
|
enc.SetIndent("", " ")
|
||||||
if err := enc.Encode(test.data); err != nil {
|
}
|
||||||
t.Fatalf("%s(htmlEscape:%v,indent:%v): %+v: %s", test.name, htmlEscape, indent, test.data, err)
|
if err := enc.Encode(test.data); err != nil {
|
||||||
}
|
t.Fatalf("%s(htmlEscape:%v,indent:%v): %+v: %s", test.name, htmlEscape, indent, test.data, err)
|
||||||
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
}
|
||||||
if buf.String() != stdresult {
|
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
||||||
t.Errorf("%s(htmlEscape:%v,indent:%v): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, indent, stdresult, buf.String())
|
if buf.String() != stdresult {
|
||||||
}
|
t.Errorf("%s(htmlEscape:%v,indent:%v): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, indent, stdresult, buf.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package json_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/goccy/go-json"
|
"github.com/goccy/go-json"
|
||||||
|
@ -1807,19 +1808,21 @@ func TestCoverBytes(t *testing.T) {
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
for _, indent := range []bool{true, false} {
|
for _, indent := range []bool{true, false} {
|
||||||
for _, htmlEscape := range []bool{true, false} {
|
for _, htmlEscape := range []bool{true, false} {
|
||||||
var buf bytes.Buffer
|
t.Run(fmt.Sprintf("%s_indent_%t_escape_%t", test.name, indent, htmlEscape), func(t *testing.T) {
|
||||||
enc := json.NewEncoder(&buf)
|
var buf bytes.Buffer
|
||||||
enc.SetEscapeHTML(htmlEscape)
|
enc := json.NewEncoder(&buf)
|
||||||
if indent {
|
enc.SetEscapeHTML(htmlEscape)
|
||||||
enc.SetIndent("", " ")
|
if indent {
|
||||||
}
|
enc.SetIndent("", " ")
|
||||||
if err := enc.Encode(test.data); err != nil {
|
}
|
||||||
t.Fatalf("%s(htmlEscape:%v,indent:%v): %v: %s", test.name, htmlEscape, indent, test.data, err)
|
if err := enc.Encode(test.data); err != nil {
|
||||||
}
|
t.Fatalf("%s(htmlEscape:%v,indent:%v): %v: %s", test.name, htmlEscape, indent, test.data, err)
|
||||||
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
}
|
||||||
if buf.String() != stdresult {
|
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
||||||
t.Errorf("%s(htmlEscape:%v,indent:%v): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, indent, stdresult, buf.String())
|
if buf.String() != stdresult {
|
||||||
}
|
t.Errorf("%s(htmlEscape:%v,indent:%v): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, indent, stdresult, buf.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package json_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/goccy/go-json"
|
"github.com/goccy/go-json"
|
||||||
|
@ -2334,19 +2335,21 @@ func TestCoverFloat32(t *testing.T) {
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
for _, indent := range []bool{true, false} {
|
for _, indent := range []bool{true, false} {
|
||||||
for _, htmlEscape := range []bool{true, false} {
|
for _, htmlEscape := range []bool{true, false} {
|
||||||
var buf bytes.Buffer
|
t.Run(fmt.Sprintf("%s_indent_%t_escape_%t", test.name, indent, htmlEscape), func(t *testing.T) {
|
||||||
enc := json.NewEncoder(&buf)
|
var buf bytes.Buffer
|
||||||
enc.SetEscapeHTML(htmlEscape)
|
enc := json.NewEncoder(&buf)
|
||||||
if indent {
|
enc.SetEscapeHTML(htmlEscape)
|
||||||
enc.SetIndent("", " ")
|
if indent {
|
||||||
}
|
enc.SetIndent("", " ")
|
||||||
if err := enc.Encode(test.data); err != nil {
|
}
|
||||||
t.Fatalf("%s(htmlEscape:%T): %+v: %s", test.name, htmlEscape, test.data, err)
|
if err := enc.Encode(test.data); err != nil {
|
||||||
}
|
t.Fatalf("%s(htmlEscape:%T): %+v: %s", test.name, htmlEscape, test.data, err)
|
||||||
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
}
|
||||||
if buf.String() != stdresult {
|
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
||||||
t.Errorf("%s(htmlEscape:%T): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, stdresult, buf.String())
|
if buf.String() != stdresult {
|
||||||
}
|
t.Errorf("%s(htmlEscape:%T): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, stdresult, buf.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package json_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/goccy/go-json"
|
"github.com/goccy/go-json"
|
||||||
|
@ -2334,19 +2335,21 @@ func TestCoverFloat64(t *testing.T) {
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
for _, indent := range []bool{true, false} {
|
for _, indent := range []bool{true, false} {
|
||||||
for _, htmlEscape := range []bool{true, false} {
|
for _, htmlEscape := range []bool{true, false} {
|
||||||
var buf bytes.Buffer
|
t.Run(fmt.Sprintf("%s_indent_%t_escape_%t", test.name, indent, htmlEscape), func(t *testing.T) {
|
||||||
enc := json.NewEncoder(&buf)
|
var buf bytes.Buffer
|
||||||
enc.SetEscapeHTML(htmlEscape)
|
enc := json.NewEncoder(&buf)
|
||||||
if indent {
|
enc.SetEscapeHTML(htmlEscape)
|
||||||
enc.SetIndent("", " ")
|
if indent {
|
||||||
}
|
enc.SetIndent("", " ")
|
||||||
if err := enc.Encode(test.data); err != nil {
|
}
|
||||||
t.Fatalf("%s(htmlEscape:%T): %+v: %s", test.name, htmlEscape, test.data, err)
|
if err := enc.Encode(test.data); err != nil {
|
||||||
}
|
t.Fatalf("%s(htmlEscape:%T): %+v: %s", test.name, htmlEscape, test.data, err)
|
||||||
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
}
|
||||||
if buf.String() != stdresult {
|
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
||||||
t.Errorf("%s(htmlEscape:%T): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, stdresult, buf.String())
|
if buf.String() != stdresult {
|
||||||
}
|
t.Errorf("%s(htmlEscape:%T): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, stdresult, buf.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package json_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/goccy/go-json"
|
"github.com/goccy/go-json"
|
||||||
|
@ -1811,19 +1812,21 @@ func TestCoverInt16(t *testing.T) {
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
for _, indent := range []bool{true, false} {
|
for _, indent := range []bool{true, false} {
|
||||||
for _, htmlEscape := range []bool{true, false} {
|
for _, htmlEscape := range []bool{true, false} {
|
||||||
var buf bytes.Buffer
|
t.Run(fmt.Sprintf("%s_indent_%t_escape_%t", test.name, indent, htmlEscape), func(t *testing.T) {
|
||||||
enc := json.NewEncoder(&buf)
|
var buf bytes.Buffer
|
||||||
enc.SetEscapeHTML(htmlEscape)
|
enc := json.NewEncoder(&buf)
|
||||||
if indent {
|
enc.SetEscapeHTML(htmlEscape)
|
||||||
enc.SetIndent("", " ")
|
if indent {
|
||||||
}
|
enc.SetIndent("", " ")
|
||||||
if err := enc.Encode(test.data); err != nil {
|
}
|
||||||
t.Fatalf("%s(htmlEscape:%T): %+v: %s", test.name, htmlEscape, test.data, err)
|
if err := enc.Encode(test.data); err != nil {
|
||||||
}
|
t.Fatalf("%s(htmlEscape:%T): %+v: %s", test.name, htmlEscape, test.data, err)
|
||||||
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
}
|
||||||
if buf.String() != stdresult {
|
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
||||||
t.Errorf("%s(htmlEscape:%T): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, stdresult, buf.String())
|
if buf.String() != stdresult {
|
||||||
}
|
t.Errorf("%s(htmlEscape:%T): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, stdresult, buf.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package json_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/goccy/go-json"
|
"github.com/goccy/go-json"
|
||||||
|
@ -1788,19 +1789,21 @@ func TestCoverInt32(t *testing.T) {
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
for _, indent := range []bool{true, false} {
|
for _, indent := range []bool{true, false} {
|
||||||
for _, htmlEscape := range []bool{true, false} {
|
for _, htmlEscape := range []bool{true, false} {
|
||||||
var buf bytes.Buffer
|
t.Run(fmt.Sprintf("%s_indent_%t_escape_%t", test.name, indent, htmlEscape), func(t *testing.T) {
|
||||||
enc := json.NewEncoder(&buf)
|
var buf bytes.Buffer
|
||||||
enc.SetEscapeHTML(htmlEscape)
|
enc := json.NewEncoder(&buf)
|
||||||
if indent {
|
enc.SetEscapeHTML(htmlEscape)
|
||||||
enc.SetIndent("", " ")
|
if indent {
|
||||||
}
|
enc.SetIndent("", " ")
|
||||||
if err := enc.Encode(test.data); err != nil {
|
}
|
||||||
t.Fatalf("%s(htmlEscape:%T): %+v: %s", test.name, htmlEscape, test.data, err)
|
if err := enc.Encode(test.data); err != nil {
|
||||||
}
|
t.Fatalf("%s(htmlEscape:%T): %+v: %s", test.name, htmlEscape, test.data, err)
|
||||||
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
}
|
||||||
if buf.String() != stdresult {
|
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
||||||
t.Errorf("%s(htmlEscape:%T): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, stdresult, buf.String())
|
if buf.String() != stdresult {
|
||||||
}
|
t.Errorf("%s(htmlEscape:%T): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, stdresult, buf.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package json_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/goccy/go-json"
|
"github.com/goccy/go-json"
|
||||||
|
@ -1788,19 +1789,21 @@ func TestCoverInt64(t *testing.T) {
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
for _, indent := range []bool{true, false} {
|
for _, indent := range []bool{true, false} {
|
||||||
for _, htmlEscape := range []bool{true, false} {
|
for _, htmlEscape := range []bool{true, false} {
|
||||||
var buf bytes.Buffer
|
t.Run(fmt.Sprintf("%s_indent_%t_escape_%t", test.name, indent, htmlEscape), func(t *testing.T) {
|
||||||
enc := json.NewEncoder(&buf)
|
var buf bytes.Buffer
|
||||||
enc.SetEscapeHTML(htmlEscape)
|
enc := json.NewEncoder(&buf)
|
||||||
if indent {
|
enc.SetEscapeHTML(htmlEscape)
|
||||||
enc.SetIndent("", " ")
|
if indent {
|
||||||
}
|
enc.SetIndent("", " ")
|
||||||
if err := enc.Encode(test.data); err != nil {
|
}
|
||||||
t.Fatalf("%s(htmlEscape:%T): %+v: %s", test.name, htmlEscape, test.data, err)
|
if err := enc.Encode(test.data); err != nil {
|
||||||
}
|
t.Fatalf("%s(htmlEscape:%T): %+v: %s", test.name, htmlEscape, test.data, err)
|
||||||
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
}
|
||||||
if buf.String() != stdresult {
|
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
||||||
t.Errorf("%s(htmlEscape:%T): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, stdresult, buf.String())
|
if buf.String() != stdresult {
|
||||||
}
|
t.Errorf("%s(htmlEscape:%T): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, stdresult, buf.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package json_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/goccy/go-json"
|
"github.com/goccy/go-json"
|
||||||
|
@ -1788,19 +1789,21 @@ func TestCoverInt8(t *testing.T) {
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
for _, indent := range []bool{true, false} {
|
for _, indent := range []bool{true, false} {
|
||||||
for _, htmlEscape := range []bool{true, false} {
|
for _, htmlEscape := range []bool{true, false} {
|
||||||
var buf bytes.Buffer
|
t.Run(fmt.Sprintf("%s_indent_%t_escape_%t", test.name, indent, htmlEscape), func(t *testing.T) {
|
||||||
enc := json.NewEncoder(&buf)
|
var buf bytes.Buffer
|
||||||
enc.SetEscapeHTML(htmlEscape)
|
enc := json.NewEncoder(&buf)
|
||||||
if indent {
|
enc.SetEscapeHTML(htmlEscape)
|
||||||
enc.SetIndent("", " ")
|
if indent {
|
||||||
}
|
enc.SetIndent("", " ")
|
||||||
if err := enc.Encode(test.data); err != nil {
|
}
|
||||||
t.Fatalf("%s(htmlEscape:%T): %+v: %s", test.name, htmlEscape, test.data, err)
|
if err := enc.Encode(test.data); err != nil {
|
||||||
}
|
t.Fatalf("%s(htmlEscape:%T): %+v: %s", test.name, htmlEscape, test.data, err)
|
||||||
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
}
|
||||||
if buf.String() != stdresult {
|
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
||||||
t.Errorf("%s(htmlEscape:%T): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, stdresult, buf.String())
|
if buf.String() != stdresult {
|
||||||
}
|
t.Errorf("%s(htmlEscape:%T): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, stdresult, buf.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3690,19 +3690,21 @@ func TestCoverMarshalJSON(t *testing.T) {
|
||||||
t.Run(test.name, func(t *testing.T) {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
for _, indent := range []bool{true, false} {
|
for _, indent := range []bool{true, false} {
|
||||||
for _, htmlEscape := range []bool{true, false} {
|
for _, htmlEscape := range []bool{true, false} {
|
||||||
var buf bytes.Buffer
|
t.Run(fmt.Sprintf("%s_indent_%t_escape_%t", test.name, indent, htmlEscape), func(t *testing.T) {
|
||||||
enc := json.NewEncoder(&buf)
|
var buf bytes.Buffer
|
||||||
enc.SetEscapeHTML(htmlEscape)
|
enc := json.NewEncoder(&buf)
|
||||||
if indent {
|
enc.SetEscapeHTML(htmlEscape)
|
||||||
enc.SetIndent("", " ")
|
if indent {
|
||||||
}
|
enc.SetIndent("", " ")
|
||||||
if err := enc.Encode(test.data); err != nil {
|
}
|
||||||
t.Fatalf("%s(htmlEscape:%v,indent:%v): %+v: %s", test.name, htmlEscape, indent, test.data, err)
|
if err := enc.Encode(test.data); err != nil {
|
||||||
}
|
t.Fatalf("%s(htmlEscape:%v,indent:%v): %+v: %s", test.name, htmlEscape, indent, test.data, err)
|
||||||
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
}
|
||||||
if buf.String() != stdresult {
|
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
||||||
t.Errorf("%s(htmlEscape:%v,indent:%v): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, indent, stdresult, buf.String())
|
if buf.String() != stdresult {
|
||||||
}
|
t.Errorf("%s(htmlEscape:%v,indent:%v): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, indent, stdresult, buf.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -2,6 +2,7 @@ package json_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/goccy/go-json"
|
"github.com/goccy/go-json"
|
||||||
|
@ -3527,19 +3528,21 @@ func TestCoverMarshalText(t *testing.T) {
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
for _, indent := range []bool{true, false} {
|
for _, indent := range []bool{true, false} {
|
||||||
for _, htmlEscape := range []bool{true, false} {
|
for _, htmlEscape := range []bool{true, false} {
|
||||||
var buf bytes.Buffer
|
t.Run(fmt.Sprintf("%s_indent_%t_escape_%t", test.name, indent, htmlEscape), func(t *testing.T) {
|
||||||
enc := json.NewEncoder(&buf)
|
var buf bytes.Buffer
|
||||||
enc.SetEscapeHTML(htmlEscape)
|
enc := json.NewEncoder(&buf)
|
||||||
if indent {
|
enc.SetEscapeHTML(htmlEscape)
|
||||||
enc.SetIndent("", " ")
|
if indent {
|
||||||
}
|
enc.SetIndent("", " ")
|
||||||
if err := enc.Encode(test.data); err != nil {
|
}
|
||||||
t.Fatalf("%s(htmlEscape:%v,indent:%v): %+v: %s", test.name, htmlEscape, indent, test.data, err)
|
if err := enc.Encode(test.data); err != nil {
|
||||||
}
|
t.Fatalf("%s(htmlEscape:%v,indent:%v): %+v: %s", test.name, htmlEscape, indent, test.data, err)
|
||||||
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
}
|
||||||
if buf.String() != stdresult {
|
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
||||||
t.Errorf("%s(htmlEscape:%v,indent:%v): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, indent, stdresult, buf.String())
|
if buf.String() != stdresult {
|
||||||
}
|
t.Errorf("%s(htmlEscape:%v,indent:%v): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, indent, stdresult, buf.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package json_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/goccy/go-json"
|
"github.com/goccy/go-json"
|
||||||
|
@ -2334,19 +2335,21 @@ func TestCoverNumber(t *testing.T) {
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
for _, indent := range []bool{true, false} {
|
for _, indent := range []bool{true, false} {
|
||||||
for _, htmlEscape := range []bool{true, false} {
|
for _, htmlEscape := range []bool{true, false} {
|
||||||
var buf bytes.Buffer
|
t.Run(fmt.Sprintf("%s_indent_%t_escape_%t", test.name, indent, htmlEscape), func(t *testing.T) {
|
||||||
enc := json.NewEncoder(&buf)
|
var buf bytes.Buffer
|
||||||
enc.SetEscapeHTML(htmlEscape)
|
enc := json.NewEncoder(&buf)
|
||||||
if indent {
|
enc.SetEscapeHTML(htmlEscape)
|
||||||
enc.SetIndent("", " ")
|
if indent {
|
||||||
}
|
enc.SetIndent("", " ")
|
||||||
if err := enc.Encode(test.data); err != nil {
|
}
|
||||||
t.Fatalf("%s(htmlEscape:%v,indent:%v): %+v: %s", test.name, htmlEscape, indent, test.data, err)
|
if err := enc.Encode(test.data); err != nil {
|
||||||
}
|
t.Fatalf("%s(htmlEscape:%v,indent:%v): %+v: %s", test.name, htmlEscape, indent, test.data, err)
|
||||||
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
}
|
||||||
if buf.String() != stdresult {
|
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
||||||
t.Errorf("%s(htmlEscape:%v,indent:%v): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, indent, stdresult, buf.String())
|
if buf.String() != stdresult {
|
||||||
}
|
t.Errorf("%s(htmlEscape:%v,indent:%v): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, indent, stdresult, buf.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package json_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/goccy/go-json"
|
"github.com/goccy/go-json"
|
||||||
|
@ -2370,19 +2371,21 @@ func TestCoverString(t *testing.T) {
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
for _, indent := range []bool{true, false} {
|
for _, indent := range []bool{true, false} {
|
||||||
for _, htmlEscape := range []bool{true, false} {
|
for _, htmlEscape := range []bool{true, false} {
|
||||||
var buf bytes.Buffer
|
t.Run(fmt.Sprintf("%s_indent_%t_escape_%t", test.name, indent, htmlEscape), func(t *testing.T) {
|
||||||
enc := json.NewEncoder(&buf)
|
var buf bytes.Buffer
|
||||||
enc.SetEscapeHTML(htmlEscape)
|
enc := json.NewEncoder(&buf)
|
||||||
if indent {
|
enc.SetEscapeHTML(htmlEscape)
|
||||||
enc.SetIndent("", " ")
|
if indent {
|
||||||
}
|
enc.SetIndent("", " ")
|
||||||
if err := enc.Encode(test.data); err != nil {
|
}
|
||||||
t.Fatalf("%s(htmlEscape:%v,indent:%v): %v: %s", test.name, htmlEscape, indent, test.data, err)
|
if err := enc.Encode(test.data); err != nil {
|
||||||
}
|
t.Fatalf("%s(htmlEscape:%v,indent:%v): %v: %s", test.name, htmlEscape, indent, test.data, err)
|
||||||
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
}
|
||||||
if buf.String() != stdresult {
|
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
||||||
t.Errorf("%s(htmlEscape:%v,indent:%v): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, indent, stdresult, buf.String())
|
if buf.String() != stdresult {
|
||||||
}
|
t.Errorf("%s(htmlEscape:%v,indent:%v): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, indent, stdresult, buf.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package json_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/goccy/go-json"
|
"github.com/goccy/go-json"
|
||||||
|
@ -1788,19 +1789,21 @@ func TestCoverUint16(t *testing.T) {
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
for _, indent := range []bool{true, false} {
|
for _, indent := range []bool{true, false} {
|
||||||
for _, htmlEscape := range []bool{true, false} {
|
for _, htmlEscape := range []bool{true, false} {
|
||||||
var buf bytes.Buffer
|
t.Run(fmt.Sprintf("%s_indent_%t_escape_%t", test.name, indent, htmlEscape), func(t *testing.T) {
|
||||||
enc := json.NewEncoder(&buf)
|
var buf bytes.Buffer
|
||||||
enc.SetEscapeHTML(htmlEscape)
|
enc := json.NewEncoder(&buf)
|
||||||
if indent {
|
enc.SetEscapeHTML(htmlEscape)
|
||||||
enc.SetIndent("", " ")
|
if indent {
|
||||||
}
|
enc.SetIndent("", " ")
|
||||||
if err := enc.Encode(test.data); err != nil {
|
}
|
||||||
t.Fatalf("%s(htmlEscape:%v,indent:%v): %+v: %s", test.name, htmlEscape, indent, test.data, err)
|
if err := enc.Encode(test.data); err != nil {
|
||||||
}
|
t.Fatalf("%s(htmlEscape:%v,indent:%v): %+v: %s", test.name, htmlEscape, indent, test.data, err)
|
||||||
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
}
|
||||||
if buf.String() != stdresult {
|
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
||||||
t.Errorf("%s(htmlEscape:%v,indent:%v): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, indent, stdresult, buf.String())
|
if buf.String() != stdresult {
|
||||||
}
|
t.Errorf("%s(htmlEscape:%v,indent:%v): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, indent, stdresult, buf.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package json_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/goccy/go-json"
|
"github.com/goccy/go-json"
|
||||||
|
@ -1788,19 +1789,21 @@ func TestCoverUint32(t *testing.T) {
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
for _, indent := range []bool{true, false} {
|
for _, indent := range []bool{true, false} {
|
||||||
for _, htmlEscape := range []bool{true, false} {
|
for _, htmlEscape := range []bool{true, false} {
|
||||||
var buf bytes.Buffer
|
t.Run(fmt.Sprintf("%s_indent_%t_escape_%t", test.name, indent, htmlEscape), func(t *testing.T) {
|
||||||
enc := json.NewEncoder(&buf)
|
var buf bytes.Buffer
|
||||||
enc.SetEscapeHTML(htmlEscape)
|
enc := json.NewEncoder(&buf)
|
||||||
if indent {
|
enc.SetEscapeHTML(htmlEscape)
|
||||||
enc.SetIndent("", " ")
|
if indent {
|
||||||
}
|
enc.SetIndent("", " ")
|
||||||
if err := enc.Encode(test.data); err != nil {
|
}
|
||||||
t.Fatalf("%s(htmlEscape:%T): %+v: %s", test.name, htmlEscape, test.data, err)
|
if err := enc.Encode(test.data); err != nil {
|
||||||
}
|
t.Fatalf("%s(htmlEscape:%T): %+v: %s", test.name, htmlEscape, test.data, err)
|
||||||
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
}
|
||||||
if buf.String() != stdresult {
|
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
||||||
t.Errorf("%s(htmlEscape:%T): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, stdresult, buf.String())
|
if buf.String() != stdresult {
|
||||||
}
|
t.Errorf("%s(htmlEscape:%T): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, stdresult, buf.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package json_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/goccy/go-json"
|
"github.com/goccy/go-json"
|
||||||
|
@ -1788,19 +1789,21 @@ func TestCoverUint64(t *testing.T) {
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
for _, indent := range []bool{true, false} {
|
for _, indent := range []bool{true, false} {
|
||||||
for _, htmlEscape := range []bool{true, false} {
|
for _, htmlEscape := range []bool{true, false} {
|
||||||
var buf bytes.Buffer
|
t.Run(fmt.Sprintf("%s_indent_%t_escape_%t", test.name, indent, htmlEscape), func(t *testing.T) {
|
||||||
enc := json.NewEncoder(&buf)
|
var buf bytes.Buffer
|
||||||
enc.SetEscapeHTML(htmlEscape)
|
enc := json.NewEncoder(&buf)
|
||||||
if indent {
|
enc.SetEscapeHTML(htmlEscape)
|
||||||
enc.SetIndent("", " ")
|
if indent {
|
||||||
}
|
enc.SetIndent("", " ")
|
||||||
if err := enc.Encode(test.data); err != nil {
|
}
|
||||||
t.Fatalf("%s(htmlEscape:%T): %+v: %s", test.name, htmlEscape, test.data, err)
|
if err := enc.Encode(test.data); err != nil {
|
||||||
}
|
t.Fatalf("%s(htmlEscape:%T): %+v: %s", test.name, htmlEscape, test.data, err)
|
||||||
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
}
|
||||||
if buf.String() != stdresult {
|
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
||||||
t.Errorf("%s(htmlEscape:%T): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, stdresult, buf.String())
|
if buf.String() != stdresult {
|
||||||
}
|
t.Errorf("%s(htmlEscape:%T): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, stdresult, buf.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package json_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/goccy/go-json"
|
"github.com/goccy/go-json"
|
||||||
|
@ -1788,19 +1789,21 @@ func TestCoverUint8(t *testing.T) {
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
for _, indent := range []bool{true, false} {
|
for _, indent := range []bool{true, false} {
|
||||||
for _, htmlEscape := range []bool{true, false} {
|
for _, htmlEscape := range []bool{true, false} {
|
||||||
var buf bytes.Buffer
|
t.Run(fmt.Sprintf("%s_indent_%t_escape_%t", test.name, indent, htmlEscape), func(t *testing.T) {
|
||||||
enc := json.NewEncoder(&buf)
|
var buf bytes.Buffer
|
||||||
enc.SetEscapeHTML(htmlEscape)
|
enc := json.NewEncoder(&buf)
|
||||||
if indent {
|
enc.SetEscapeHTML(htmlEscape)
|
||||||
enc.SetIndent("", " ")
|
if indent {
|
||||||
}
|
enc.SetIndent("", " ")
|
||||||
if err := enc.Encode(test.data); err != nil {
|
}
|
||||||
t.Fatalf("%s(htmlEscape:%T): %+v: %s", test.name, htmlEscape, test.data, err)
|
if err := enc.Encode(test.data); err != nil {
|
||||||
}
|
t.Fatalf("%s(htmlEscape:%T): %+v: %s", test.name, htmlEscape, test.data, err)
|
||||||
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
}
|
||||||
if buf.String() != stdresult {
|
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
||||||
t.Errorf("%s(htmlEscape:%T): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, stdresult, buf.String())
|
if buf.String() != stdresult {
|
||||||
}
|
t.Errorf("%s(htmlEscape:%T): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, stdresult, buf.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package json_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/goccy/go-json"
|
"github.com/goccy/go-json"
|
||||||
|
@ -2334,19 +2335,21 @@ func TestCoverUint(t *testing.T) {
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
for _, indent := range []bool{true, false} {
|
for _, indent := range []bool{true, false} {
|
||||||
for _, htmlEscape := range []bool{true, false} {
|
for _, htmlEscape := range []bool{true, false} {
|
||||||
var buf bytes.Buffer
|
t.Run(fmt.Sprintf("%s_indent_%t_escape_%t", test.name, indent, htmlEscape), func(t *testing.T) {
|
||||||
enc := json.NewEncoder(&buf)
|
var buf bytes.Buffer
|
||||||
enc.SetEscapeHTML(htmlEscape)
|
enc := json.NewEncoder(&buf)
|
||||||
if indent {
|
enc.SetEscapeHTML(htmlEscape)
|
||||||
enc.SetIndent("", " ")
|
if indent {
|
||||||
}
|
enc.SetIndent("", " ")
|
||||||
if err := enc.Encode(test.data); err != nil {
|
}
|
||||||
t.Fatalf("%s(htmlEscape:%T): %+v: %s", test.name, htmlEscape, test.data, err)
|
if err := enc.Encode(test.data); err != nil {
|
||||||
}
|
t.Fatalf("%s(htmlEscape:%T): %+v: %s", test.name, htmlEscape, test.data, err)
|
||||||
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
}
|
||||||
if buf.String() != stdresult {
|
stdresult := encodeByEncodingJSON(test.data, indent, htmlEscape)
|
||||||
t.Errorf("%s(htmlEscape:%T): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, stdresult, buf.String())
|
if buf.String() != stdresult {
|
||||||
}
|
t.Errorf("%s(htmlEscape:%T): doesn't compatible with encoding/json. expected %q but got %q", test.name, htmlEscape, stdresult, buf.String())
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue