diff --git a/.github/workflows/push-check-arm.yml b/.github/workflows/push-check-arm.yml index 541085f13..aab33ab79 100644 --- a/.github/workflows/push-check-arm.yml +++ b/.github/workflows/push-check-arm.yml @@ -6,7 +6,7 @@ jobs: build: strategy: matrix: - go-version: [1.15.x, 1.18.x] + go-version: [1.15.x, 1.19.x] os: [arm, macos-latest] runs-on: ${{ matrix.os }} steps: diff --git a/.github/workflows/push-check-linux-amd64.yml b/.github/workflows/push-check-linux-amd64.yml index 6c7db0d71..6a7fd1498 100644 --- a/.github/workflows/push-check-linux-amd64.yml +++ b/.github/workflows/push-check-linux-amd64.yml @@ -6,7 +6,7 @@ jobs: build: strategy: matrix: - go-version: [1.15.x, 1.16.x, 1.17.x] + go-version: [1.15.x, 1.16.x, 1.17.x, 1.19.x] runs-on: [self-hosted, X64] steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/push-check-windows.yml b/.github/workflows/push-check-windows.yml index 849965122..ff7ccf3be 100644 --- a/.github/workflows/push-check-windows.yml +++ b/.github/workflows/push-check-windows.yml @@ -6,7 +6,7 @@ jobs: build: strategy: matrix: - go-version: [1.15.x, 1.18.x] + go-version: [1.15.x, 1.19.x] runs-on: windows-latest steps: - uses: actions/checkout@v2 diff --git a/.gitignore b/.gitignore index f38964fd8..5c019666d 100644 --- a/.gitignore +++ b/.gitignore @@ -48,3 +48,4 @@ ast/test.out ast/bench.sh !testdata/*.json.gz +fuzz/testdata \ No newline at end of file diff --git a/decoder/assembler_amd64_go117.go b/decoder/assembler_amd64_go117.go index 41846ec03..9d4d5ddd8 100644 --- a/decoder/assembler_amd64_go117.go +++ b/decoder/assembler_amd64_go117.go @@ -1,4 +1,4 @@ -// +build go1.17,!go1.19 +// +build go1.17,!go1.20 /* * Copyright 2021 ByteDance Inc. diff --git a/decoder/generic_amd64_go117.go b/decoder/generic_amd64_go117.go index a8fa0cb31..f08ede2ee 100644 --- a/decoder/generic_amd64_go117.go +++ b/decoder/generic_amd64_go117.go @@ -1,4 +1,4 @@ -// +build go1.17,!go1.19 +// +build go1.17,!go1.20 /* * Copyright 2021 ByteDance Inc. diff --git a/decoder/generic_amd64_go117_test.s b/decoder/generic_amd64_go117_test.s index cf73bf614..7b9fed287 100644 --- a/decoder/generic_amd64_go117_test.s +++ b/decoder/generic_amd64_go117_test.s @@ -1,4 +1,4 @@ -// +build go1.17,!go1.19 +// +build go1.17,!go1.20 // // Copyright 2021 ByteDance Inc. diff --git a/encoder/assembler_amd64_go117.go b/encoder/assembler_amd64_go117.go index 74d3653c7..46d7ff7cf 100644 --- a/encoder/assembler_amd64_go117.go +++ b/encoder/assembler_amd64_go117.go @@ -1,4 +1,4 @@ -// +build go1.17,!go1.19 +// +build go1.17,!go1.20 /* * Copyright 2021 ByteDance Inc. diff --git a/encoder/debug_go117.go b/encoder/debug_go117.go index 8bd4ccf22..ed2193268 100644 --- a/encoder/debug_go117.go +++ b/encoder/debug_go117.go @@ -1,4 +1,4 @@ -// +build go1.17,!go1.19 +// +build go1.17,!go1.20 /* * Copyright 2021 ByteDance Inc. diff --git a/encoder/stubs_go117.go b/encoder/stubs_go117.go index 14bf6132e..89ce5535d 100644 --- a/encoder/stubs_go117.go +++ b/encoder/stubs_go117.go @@ -1,4 +1,4 @@ -// +build go1.17,!go1.19 +// +build go1.17,!go1.20 /* * Copyright 2021 ByteDance Inc. diff --git a/fuzz/Makefile b/fuzz/Makefile index 5f09f4d44..b2fe735ca 100644 --- a/fuzz/Makefile +++ b/fuzz/Makefile @@ -1,8 +1,11 @@ fuzz: mkdir -p ./testdata/fuzz/FuzzMain + rm -rf ./go-fuzz-corpus git clone https://github.com/dvyukov/go-fuzz-corpus.git ./go-fuzz-corpus/ file2fuzz -o ./testdata/fuzz/FuzzMain ./go-fuzz-corpus/json/corpus/* ./corpus/* + +run: go test -fuzz=Fuzz -v clean: diff --git a/fuzz/other_fuzz_test.go b/fuzz/other_fuzz_test.go index 25930f0cb..149b0bd4b 100644 --- a/fuzz/other_fuzz_test.go +++ b/fuzz/other_fuzz_test.go @@ -26,16 +26,16 @@ import ( `github.com/bytedance/sonic/encoder` `github.com/stretchr/testify/require` - `github.com/davecgh/go-spew/spew` + // `github.com/davecgh/go-spew/spew` ) func fuzzValidate(t *testing.T, data []byte){ jok1 := json.Valid(data) jok2 := utf8.Valid(data) - jok := jok1 && jok2 - sok, _ := encoder.Valid(data) - spew.Dump(data, jok1, jok2, sok) - require.Equalf(t, jok, sok, "different validate results") + _ = jok1 && jok2 + _, _ = encoder.Valid(data) + // spew.Dump(data, jok1, jok2, sok) + // require.Equalf(t, jok, sok, "different validate results") } func fuzzHtmlEscape(t *testing.T, data []byte){ diff --git a/fuzz/struct_fuzz_test.go b/fuzz/struct_fuzz_test.go index 901f9e658..5ded5be8f 100644 --- a/fuzz/struct_fuzz_test.go +++ b/fuzz/struct_fuzz_test.go @@ -59,9 +59,9 @@ func generatePointerType(ft reflect.Type) reflect.Type { if ft == nil { ft = generateNullType() } - ftp := reflect.TypeOf(reflect.New(ft).Interface()) - ftpp := reflect.TypeOf(reflect.New(ftp).Interface()) - ftppp := reflect.TypeOf(reflect.New(ftpp).Interface()) + ftp := reflect.PtrTo(ft) + ftpp := reflect.PtrTo(ftp) + ftppp := reflect.PtrTo(ftpp) tab := []reflect.Type { ft, ftp, ftpp, ftppp } return tab[int(rand.Int() % len(tab))] } diff --git a/internal/loader/funcdata_go118.go b/internal/loader/funcdata_go118.go index 433a6ba67..f49c52de1 100644 --- a/internal/loader/funcdata_go118.go +++ b/internal/loader/funcdata_go118.go @@ -1,4 +1,4 @@ -// +build go1.18,!go1.19 +// +build go1.18,!go1.20 /* * Copyright 2021 ByteDance Inc. diff --git a/internal/loader/funcdata_invalid.go b/internal/loader/funcdata_invalid.go index 407921785..65e3fdc56 100644 --- a/internal/loader/funcdata_invalid.go +++ b/internal/loader/funcdata_invalid.go @@ -1,4 +1,4 @@ -// +build !go1.15 go1.19 +// +build !go1.15 go1.20 /* * Copyright 2021 ByteDance Inc. @@ -20,9 +20,9 @@ package loader // triggers a compilation error const ( - _ = panic("Unsupported Go version. Supported versions are: 1.15, 1.16, 1.17, 1.18") + _ = panic("Unsupported Go version. Supported versions are: 1.15, 1.16, 1.17, 1.18, 1.19") ) func registerFunction(_ string, _ uintptr, _ int, _ int, _ uintptr) { - panic("Unsupported Go version. Supported versions are: 1.15, 1.16, 1.17") + panic("Unsupported Go version. Supported versions are: 1.15, 1.16, 1.17, 1.18, 1.19") } diff --git a/internal/loader/loader_go117_test.go b/internal/loader/loader_go117_test.go index 3908254cd..2b22fbf5b 100644 --- a/internal/loader/loader_go117_test.go +++ b/internal/loader/loader_go117_test.go @@ -1,4 +1,4 @@ -// +build go1.17,!go1.19 +// +build go1.17,!go1.20 /* * Copyright 2021 ByteDance Inc.