Browse Source

consolidate struct tags tests

Tao Wen 7 years ago
parent
commit
6fded6eb5f
79 changed files with 275 additions and 6315 deletions
  1. 0 152
      output_tests/struct_tags/fieldname/embedded/json_test.go
  2. 0 40
      output_tests/struct_tags/fieldname/embedded/types.go
  3. 0 152
      output_tests/struct_tags/fieldname/string/json_test.go
  4. 0 16
      output_tests/struct_tags/fieldname/string/types.go
  5. 0 152
      output_tests/struct_tags/fieldname/struct/json_test.go
  6. 0 40
      output_tests/struct_tags/fieldname/struct/types.go
  7. 0 152
      output_tests/struct_tags/omitempty/bool/json_test.go
  8. 0 6
      output_tests/struct_tags/omitempty/bool/types.go
  9. 0 152
      output_tests/struct_tags/omitempty/embedded/json_test.go
  10. 0 10
      output_tests/struct_tags/omitempty/embedded/types.go
  11. 0 152
      output_tests/struct_tags/omitempty/float32/json_test.go
  12. 0 6
      output_tests/struct_tags/omitempty/float32/types.go
  13. 0 152
      output_tests/struct_tags/omitempty/int32/json_test.go
  14. 0 6
      output_tests/struct_tags/omitempty/int32/types.go
  15. 0 152
      output_tests/struct_tags/omitempty/map_string_string/json_test.go
  16. 0 6
      output_tests/struct_tags/omitempty/map_string_string/types.go
  17. 0 152
      output_tests/struct_tags/omitempty/ptr_bool/json_test.go
  18. 0 6
      output_tests/struct_tags/omitempty/ptr_bool/types.go
  19. 0 152
      output_tests/struct_tags/omitempty/ptr_float32/json_test.go
  20. 0 6
      output_tests/struct_tags/omitempty/ptr_float32/types.go
  21. 0 152
      output_tests/struct_tags/omitempty/ptr_int32/json_test.go
  22. 0 6
      output_tests/struct_tags/omitempty/ptr_int32/types.go
  23. 0 152
      output_tests/struct_tags/omitempty/ptr_map_string_string/json_test.go
  24. 0 6
      output_tests/struct_tags/omitempty/ptr_map_string_string/types.go
  25. 0 152
      output_tests/struct_tags/omitempty/ptr_slice_string/json_test.go
  26. 0 6
      output_tests/struct_tags/omitempty/ptr_slice_string/types.go
  27. 0 152
      output_tests/struct_tags/omitempty/ptr_string/json_test.go
  28. 0 152
      output_tests/struct_tags/omitempty/ptr_string/string/json_test.go
  29. 0 6
      output_tests/struct_tags/omitempty/ptr_string/string/types.go
  30. 0 6
      output_tests/struct_tags/omitempty/ptr_string/types.go
  31. 0 152
      output_tests/struct_tags/omitempty/ptr_string_json_marshal/json_test.go
  32. 0 15
      output_tests/struct_tags/omitempty/ptr_string_json_marshal/types.go
  33. 0 152
      output_tests/struct_tags/omitempty/ptr_string_text_marshal/json_test.go
  34. 0 15
      output_tests/struct_tags/omitempty/ptr_string_text_marshal/types.go
  35. 0 152
      output_tests/struct_tags/omitempty/ptr_struct_json_marshal/json_test.go
  36. 0 15
      output_tests/struct_tags/omitempty/ptr_struct_json_marshal/types.go
  37. 0 152
      output_tests/struct_tags/omitempty/ptr_struct_text_marshal/json_test.go
  38. 0 15
      output_tests/struct_tags/omitempty/ptr_struct_text_marshal/types.go
  39. 0 152
      output_tests/struct_tags/omitempty/ptr_uint32/json_test.go
  40. 0 6
      output_tests/struct_tags/omitempty/ptr_uint32/types.go
  41. 0 152
      output_tests/struct_tags/omitempty/slice_string/json_test.go
  42. 0 6
      output_tests/struct_tags/omitempty/slice_string/types.go
  43. 0 152
      output_tests/struct_tags/omitempty/string/json_test.go
  44. 0 6
      output_tests/struct_tags/omitempty/string/types.go
  45. 0 152
      output_tests/struct_tags/omitempty/string_json_marshal/json_test.go
  46. 0 15
      output_tests/struct_tags/omitempty/string_json_marshal/types.go
  47. 0 152
      output_tests/struct_tags/omitempty/string_text_marshal/json_test.go
  48. 0 15
      output_tests/struct_tags/omitempty/string_text_marshal/types.go
  49. 0 152
      output_tests/struct_tags/omitempty/struct/json_test.go
  50. 0 5
      output_tests/struct_tags/omitempty/struct/types.go
  51. 0 152
      output_tests/struct_tags/omitempty/struct_json_marshal/json_test.go
  52. 0 15
      output_tests/struct_tags/omitempty/struct_json_marshal/types.go
  53. 0 152
      output_tests/struct_tags/omitempty/struct_text_marshal/json_test.go
  54. 0 15
      output_tests/struct_tags/omitempty/struct_text_marshal/types.go
  55. 0 152
      output_tests/struct_tags/omitempty/uint32/json_test.go
  56. 0 6
      output_tests/struct_tags/omitempty/uint32/types.go
  57. 0 152
      output_tests/struct_tags/string/bool/json_test.go
  58. 0 6
      output_tests/struct_tags/string/bool/types.go
  59. 0 152
      output_tests/struct_tags/string/byte/json_test.go
  60. 0 6
      output_tests/struct_tags/string/byte/types.go
  61. 0 152
      output_tests/struct_tags/string/float32/json_test.go
  62. 0 6
      output_tests/struct_tags/string/float32/types.go
  63. 0 152
      output_tests/struct_tags/string/float64/json_test.go
  64. 0 6
      output_tests/struct_tags/string/float64/types.go
  65. 0 152
      output_tests/struct_tags/string/int16/json_test.go
  66. 0 6
      output_tests/struct_tags/string/int16/types.go
  67. 0 152
      output_tests/struct_tags/string/int32/json_test.go
  68. 0 6
      output_tests/struct_tags/string/int32/types.go
  69. 0 152
      output_tests/struct_tags/string/int8/json_test.go
  70. 0 6
      output_tests/struct_tags/string/int8/types.go
  71. 0 152
      output_tests/struct_tags/string/string/json_test.go
  72. 0 6
      output_tests/struct_tags/string/string/types.go
  73. 0 152
      output_tests/struct_tags/string/uint16/json_test.go
  74. 0 6
      output_tests/struct_tags/string/uint16/types.go
  75. 0 152
      output_tests/struct_tags/string/uint32/json_test.go
  76. 0 6
      output_tests/struct_tags/string/uint32/types.go
  77. 0 152
      output_tests/struct_tags/string/uint8/json_test.go
  78. 0 6
      output_tests/struct_tags/string/uint8/types.go
  79. 275 0
      type_tests/struct_tags_test.go

+ 0 - 152
output_tests/struct_tags/fieldname/embedded/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 40
output_tests/struct_tags/fieldname/embedded/types.go

@@ -1,40 +0,0 @@
-package test
-
-// S1 TEST ONLY
-type S1 struct {
-	S1F string
-}
-
-// S2 TEST ONLY
-type S2 struct {
-	S2F string
-}
-
-// S3 TEST ONLY
-type S3 struct {
-	S3F string
-}
-
-// S4 TEST ONLY
-type S4 struct {
-	S4F string
-}
-
-// S5 TEST ONLY
-type S5 struct {
-	S5F string
-}
-
-// S6 TEST ONLY
-type S6 struct {
-	S6F string
-}
-
-type typeForTest struct {
-	S1 `json:"F1"`
-	S2 `json:"f2"`
-	S3 `json:"-"`
-	S4 `json:"-,"`
-	S5 `json:","`
-	S6 `json:""`
-}

+ 0 - 152
output_tests/struct_tags/fieldname/string/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 16
output_tests/struct_tags/fieldname/string/types.go

@@ -1,16 +0,0 @@
-package test
-
-// E TEST ONLY
-type E struct {
-	E1 string
-}
-
-type typeForTest struct {
-	F1 string `json:"F1"`
-	F2 string `json:"f2"`
-	F3 string `json:"-"`
-	F4 string `json:"-,"`
-	F5 string `json:","`
-	F6 string `json:""`
-	E  `json:"e"`
-}

+ 0 - 152
output_tests/struct_tags/fieldname/struct/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 40
output_tests/struct_tags/fieldname/struct/types.go

@@ -1,40 +0,0 @@
-package test
-
-// S1 TEST ONLY
-type S1 struct {
-	S1F string
-}
-
-// S2 TEST ONLY
-type S2 struct {
-	S2F string
-}
-
-// S3 TEST ONLY
-type S3 struct {
-	S3F string
-}
-
-// S4 TEST ONLY
-type S4 struct {
-	S4F string
-}
-
-// S5 TEST ONLY
-type S5 struct {
-	S5F string
-}
-
-// S6 TEST ONLY
-type S6 struct {
-	S6F string
-}
-
-type typeForTest struct {
-	F1 S1 `json:"F1"`
-	F2 S2 `json:"f2"`
-	F3 S3 `json:"-"`
-	F4 S4 `json:"-,"`
-	F5 S5 `json:","`
-	F6 S6 `json:""`
-}

+ 0 - 152
output_tests/struct_tags/omitempty/bool/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/omitempty/bool/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 bool `json:"F1"`
-	F2 bool `json:"F2,omitempty"`
-}

+ 0 - 152
output_tests/struct_tags/omitempty/embedded/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 10
output_tests/struct_tags/omitempty/embedded/types.go

@@ -1,10 +0,0 @@
-package test
-
-// E TEST ONLY
-type E struct {
-	F string `json:"F,omitempty"`
-}
-
-type typeForTest struct {
-	E
-}

+ 0 - 152
output_tests/struct_tags/omitempty/float32/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/omitempty/float32/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 float32 `json:"F1"`
-	F2 float32 `json:"F2,omitempty"`
-}

+ 0 - 152
output_tests/struct_tags/omitempty/int32/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/omitempty/int32/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 int32 `json:"F1"`
-	F2 int32 `json:"F2,omitempty"`
-}

+ 0 - 152
output_tests/struct_tags/omitempty/map_string_string/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/omitempty/map_string_string/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 map[string]string `json:"F1"`
-	F2 map[string]string `json:"F2,omitempty"`
-}

+ 0 - 152
output_tests/struct_tags/omitempty/ptr_bool/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/omitempty/ptr_bool/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 *bool `json:"F1"`
-	F2 *bool `json:"F2,omitempty"`
-}

+ 0 - 152
output_tests/struct_tags/omitempty/ptr_float32/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/omitempty/ptr_float32/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 *float32 `json:"F1"`
-	F2 *float32 `json:"F2,omitempty"`
-}

+ 0 - 152
output_tests/struct_tags/omitempty/ptr_int32/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/omitempty/ptr_int32/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 *int32 `json:"F1"`
-	F2 *int32 `json:"F2,omitempty"`
-}

+ 0 - 152
output_tests/struct_tags/omitempty/ptr_map_string_string/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/omitempty/ptr_map_string_string/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 *map[string]string `json:"F1"`
-	F2 *map[string]string `json:"F2,omitempty"`
-}

+ 0 - 152
output_tests/struct_tags/omitempty/ptr_slice_string/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/omitempty/ptr_slice_string/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 *[]string `json:"F1"`
-	F2 *[]string `json:"F2,omitempty"`
-}

+ 0 - 152
output_tests/struct_tags/omitempty/ptr_string/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 152
output_tests/struct_tags/omitempty/ptr_string/string/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/omitempty/ptr_string/string/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 string `json:"F1"`
-	F2 string `json:"F2,omitempty"`
-}

+ 0 - 6
output_tests/struct_tags/omitempty/ptr_string/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 *string `json:"F1"`
-	F2 *string `json:"F2,omitempty"`
-}

+ 0 - 152
output_tests/struct_tags/omitempty/ptr_string_json_marshal/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 15
output_tests/struct_tags/omitempty/ptr_string_json_marshal/types.go

@@ -1,15 +0,0 @@
-package test
-
-type typeForTest struct {
-	F *jm `json:"f,omitempty"`
-}
-
-type jm string
-
-func (t *jm) UnmarshalJSON(b []byte) error {
-	return nil
-}
-
-func (t jm) MarshalJSON() ([]byte, error) {
-	return []byte(`""`), nil
-}

+ 0 - 152
output_tests/struct_tags/omitempty/ptr_string_text_marshal/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 15
output_tests/struct_tags/omitempty/ptr_string_text_marshal/types.go

@@ -1,15 +0,0 @@
-package test
-
-type typeForTest struct {
-	F *tm `json:"f,omitempty"`
-}
-
-type tm string
-
-func (t *tm) UnmarshalText(b []byte) error {
-	return nil
-}
-
-func (t tm) MarshalText() ([]byte, error) {
-	return []byte(`""`), nil
-}

+ 0 - 152
output_tests/struct_tags/omitempty/ptr_struct_json_marshal/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 15
output_tests/struct_tags/omitempty/ptr_struct_json_marshal/types.go

@@ -1,15 +0,0 @@
-package test
-
-type typeForTest struct {
-	F *jm `json:"f,omitempty"`
-}
-
-type jm struct{}
-
-func (t *jm) UnmarshalJSON(b []byte) error {
-	return nil
-}
-
-func (t jm) MarshalJSON() ([]byte, error) {
-	return []byte(`""`), nil
-}

+ 0 - 152
output_tests/struct_tags/omitempty/ptr_struct_text_marshal/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 15
output_tests/struct_tags/omitempty/ptr_struct_text_marshal/types.go

@@ -1,15 +0,0 @@
-package test
-
-type typeForTest struct {
-	F *tm `json:"f,omitempty"`
-}
-
-type tm struct{}
-
-func (t *tm) UnmarshalText(b []byte) error {
-	return nil
-}
-
-func (t tm) MarshalText() ([]byte, error) {
-	return []byte(`""`), nil
-}

+ 0 - 152
output_tests/struct_tags/omitempty/ptr_uint32/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/omitempty/ptr_uint32/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 *uint32 `json:"F1"`
-	F2 *uint32 `json:"F2,omitempty"`
-}

+ 0 - 152
output_tests/struct_tags/omitempty/slice_string/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/omitempty/slice_string/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 []string `json:"F1"`
-	F2 []string `json:"F2,omitempty"`
-}

+ 0 - 152
output_tests/struct_tags/omitempty/string/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/omitempty/string/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 string `json:"F1"`
-	F2 string `json:"F2,omitempty"`
-}

+ 0 - 152
output_tests/struct_tags/omitempty/string_json_marshal/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 15
output_tests/struct_tags/omitempty/string_json_marshal/types.go

@@ -1,15 +0,0 @@
-package test
-
-type typeForTest struct {
-	F jm `json:"f,omitempty"`
-}
-
-type jm string
-
-func (t *jm) UnmarshalJSON(b []byte) error {
-	return nil
-}
-
-func (t jm) MarshalJSON() ([]byte, error) {
-	return []byte(`""`), nil
-}

+ 0 - 152
output_tests/struct_tags/omitempty/string_text_marshal/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 15
output_tests/struct_tags/omitempty/string_text_marshal/types.go

@@ -1,15 +0,0 @@
-package test
-
-type typeForTest struct {
-	F tm `json:"f,omitempty"`
-}
-
-type tm string
-
-func (t *tm) UnmarshalText(b []byte) error {
-	return nil
-}
-
-func (t tm) MarshalText() ([]byte, error) {
-	return []byte(`""`), nil
-}

+ 0 - 152
output_tests/struct_tags/omitempty/struct/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 5
output_tests/struct_tags/omitempty/struct/types.go

@@ -1,5 +0,0 @@
-package test
-
-type typeForTest struct {
-	F struct{} `json:"f,omitempty"` // omitempty is meaningless here
-}

+ 0 - 152
output_tests/struct_tags/omitempty/struct_json_marshal/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 15
output_tests/struct_tags/omitempty/struct_json_marshal/types.go

@@ -1,15 +0,0 @@
-package test
-
-type typeForTest struct {
-	F jm `json:"f,omitempty"`
-}
-
-type jm struct{}
-
-func (t *jm) UnmarshalJSON(b []byte) error {
-	return nil
-}
-
-func (t jm) MarshalJSON() ([]byte, error) {
-	return []byte(`""`), nil
-}

+ 0 - 152
output_tests/struct_tags/omitempty/struct_text_marshal/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 15
output_tests/struct_tags/omitempty/struct_text_marshal/types.go

@@ -1,15 +0,0 @@
-package test
-
-type typeForTest struct {
-	F tm `json:"f,omitempty"`
-}
-
-type tm struct{}
-
-func (t *tm) UnmarshalText(b []byte) error {
-	return nil
-}
-
-func (t tm) MarshalText() ([]byte, error) {
-	return []byte(`""`), nil
-}

+ 0 - 152
output_tests/struct_tags/omitempty/uint32/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/omitempty/uint32/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 uint32 `json:"F1"`
-	F2 uint32 `json:"F2,omitempty"`
-}

+ 0 - 152
output_tests/struct_tags/string/bool/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/string/bool/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 bool `json:"F1"`
-	F2 bool `json:"F2,string"`
-}

+ 0 - 152
output_tests/struct_tags/string/byte/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/string/byte/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 byte `json:"F1"`
-	F2 byte `json:"F2,string"`
-}

+ 0 - 152
output_tests/struct_tags/string/float32/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/string/float32/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 float32 `json:"F1"`
-	F2 float32 `json:"F2,string"`
-}

+ 0 - 152
output_tests/struct_tags/string/float64/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/string/float64/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 float64 `json:"F1"`
-	F2 float64 `json:"F2,string"`
-}

+ 0 - 152
output_tests/struct_tags/string/int16/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/string/int16/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 int16 `json:"F1"`
-	F2 int16 `json:"F2,string"`
-}

+ 0 - 152
output_tests/struct_tags/string/int32/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/string/int32/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 int32 `json:"F1"`
-	F2 int32 `json:"F2,string"`
-}

+ 0 - 152
output_tests/struct_tags/string/int8/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/string/int8/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 int8 `json:"F1"`
-	F2 int8 `json:"F2,string"`
-}

+ 0 - 152
output_tests/struct_tags/string/string/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/string/string/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 string `json:"F1"`
-	F2 string `json:"F2,string"`
-}

+ 0 - 152
output_tests/struct_tags/string/uint16/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/string/uint16/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 uint16 `json:"F1"`
-	F2 uint16 `json:"F2,string"`
-}

+ 0 - 152
output_tests/struct_tags/string/uint32/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/string/uint32/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 uint32 `json:"F1"`
-	F2 uint32 `json:"F2,string"`
-}

+ 0 - 152
output_tests/struct_tags/string/uint8/json_test.go

@@ -1,152 +0,0 @@
-package test
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-	"testing"
-
-	"github.com/davecgh/go-spew/spew"
-	fuzz "github.com/google/gofuzz"
-	jsoniter "github.com/json-iterator/go"
-)
-
-func Test_Roundtrip(t *testing.T) {
-	fz := fuzz.New().MaxDepth(10).NilChance(0.3)
-	for i := 0; i < 100; i++ {
-		var before typeForTest
-		fz.Fuzz(&before)
-
-		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))
-		}
-
-		var afterStd typeForTest
-		err = json.Unmarshal(jbIter, &afterStd)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with stdlib: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		var afterIter typeForTest
-		err = jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal(jbIter, &afterIter)
-		if err != nil {
-			t.Fatalf("failed to unmarshal with jsoniter: %v\nvia:\n    %s",
-				err, indent(jbIter, "    "))
-		}
-		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()
-}
-
-func benchmarkMarshal(t *testing.B, name string, fn func(interface{}) ([]byte, error)) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var obj typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&obj)
-	for i := 0; i < t.N; i++ {
-		jb, err := fn(obj)
-		if err != nil {
-			t.Fatalf("%s failed to marshal:\n input: %s\n  error: %v", name, dump(obj), err)
-		}
-		_ = jb
-	}
-}
-
-func benchmarkUnmarshal(t *testing.B, name string, fn func(data []byte, v interface{}) error) {
-	t.ReportAllocs()
-	t.ResetTimer()
-
-	var before typeForTest
-	fz := fuzz.NewWithSeed(0).MaxDepth(10).NilChance(0.3)
-	fz.Fuzz(&before)
-	jb, err := json.Marshal(before)
-	if err != nil {
-		t.Fatalf("failed to marshal: %v", err)
-	}
-
-	for i := 0; i < t.N; i++ {
-		var after typeForTest
-		err = fn(jb, &after)
-		if err != nil {
-			t.Fatalf("%s failed to unmarshal:\n  input: %q\n  error: %v", name, string(jb), err)
-		}
-	}
-}
-
-func BenchmarkStandardMarshal(t *testing.B) {
-	benchmarkMarshal(t, "stdlib", json.Marshal)
-}
-
-func BenchmarkStandardUnmarshal(t *testing.B) {
-	benchmarkUnmarshal(t, "stdlib", json.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalFastest(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalFastest(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-fastest", jsoniter.ConfigFastest.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalDefault(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-default", jsoniter.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalDefault(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-default", jsoniter.Unmarshal)
-}
-
-func BenchmarkJSONIterMarshalCompatible(t *testing.B) {
-	benchmarkMarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Marshal)
-}
-
-func BenchmarkJSONIterUnmarshalCompatible(t *testing.B) {
-	benchmarkUnmarshal(t, "jsoniter-compat", jsoniter.ConfigCompatibleWithStandardLibrary.Unmarshal)
-}

+ 0 - 6
output_tests/struct_tags/string/uint8/types.go

@@ -1,6 +0,0 @@
-package test
-
-type typeForTest struct {
-	F1 uint8 `json:"F1"`
-	F2 uint8 `json:"F2,string"`
-}

+ 275 - 0
type_tests/struct_tags_test.go

@@ -0,0 +1,275 @@
+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),
+	)
+}
+
+// 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
+}