mirror of https://github.com/goccy/go-json.git
Add test case
This commit is contained in:
parent
7ac966b81e
commit
23dbdf7fbd
|
@ -1158,3 +1158,56 @@ func TestEncodePointerString(t *testing.T) {
|
||||||
t.Fatalf("*N = %d; want 42", *back.N)
|
t.Fatalf("*N = %d; want 42", *back.N)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type SamePointerNoCycle struct {
|
||||||
|
Ptr1, Ptr2 *SamePointerNoCycle
|
||||||
|
}
|
||||||
|
|
||||||
|
var samePointerNoCycle = &SamePointerNoCycle{}
|
||||||
|
|
||||||
|
type PointerCycle struct {
|
||||||
|
Ptr *PointerCycle
|
||||||
|
}
|
||||||
|
|
||||||
|
var pointerCycle = &PointerCycle{}
|
||||||
|
|
||||||
|
type PointerCycleIndirect struct {
|
||||||
|
Ptrs []interface{}
|
||||||
|
}
|
||||||
|
|
||||||
|
var pointerCycleIndirect = &PointerCycleIndirect{}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
ptr := &SamePointerNoCycle{}
|
||||||
|
samePointerNoCycle.Ptr1 = ptr
|
||||||
|
samePointerNoCycle.Ptr2 = ptr
|
||||||
|
|
||||||
|
pointerCycle.Ptr = pointerCycle
|
||||||
|
pointerCycleIndirect.Ptrs = []interface{}{pointerCycleIndirect}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSamePointerNoCycle(t *testing.T) {
|
||||||
|
if _, err := json.Marshal(samePointerNoCycle); err != nil {
|
||||||
|
t.Fatalf("unexpected error: %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var unsupportedValues = []interface{}{
|
||||||
|
math.NaN(),
|
||||||
|
math.Inf(-1),
|
||||||
|
math.Inf(1),
|
||||||
|
pointerCycle,
|
||||||
|
pointerCycleIndirect,
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestUnsupportedValues(t *testing.T) {
|
||||||
|
for _, v := range unsupportedValues {
|
||||||
|
if _, err := json.Marshal(v); err != nil {
|
||||||
|
if _, ok := err.(*json.UnsupportedValueError); !ok {
|
||||||
|
t.Errorf("for %v, got %T want UnsupportedValueError", v, err)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
t.Errorf("for %v, expected error", v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue