2
0
Fork 0
mirror of https://github.com/ii64/sonic.git synced 2026-06-21 00:46:43 +08:00

feat: support Go 1.19 (#275)

* feat: support Go 1.19

* fuzz test refactor

* fix fuzz bug, generate pointer typ

Co-authored-by: liuqiang <liuqiang.06@bytedance.com>
This commit is contained in:
Yi Duan 2022-08-09 12:54:11 +08:00 committed by GitHub
parent 8b51e75241
commit b36771ba37
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 26 additions and 22 deletions

View file

@ -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:

View file

@ -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

View file

@ -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

1
.gitignore vendored
View file

@ -48,3 +48,4 @@ ast/test.out
ast/bench.sh
!testdata/*.json.gz
fuzz/testdata

View file

@ -1,4 +1,4 @@
// +build go1.17,!go1.19
// +build go1.17,!go1.20
/*
* Copyright 2021 ByteDance Inc.

View file

@ -1,4 +1,4 @@
// +build go1.17,!go1.19
// +build go1.17,!go1.20
/*
* Copyright 2021 ByteDance Inc.

View file

@ -1,4 +1,4 @@
// +build go1.17,!go1.19
// +build go1.17,!go1.20
//
// Copyright 2021 ByteDance Inc.

View file

@ -1,4 +1,4 @@
// +build go1.17,!go1.19
// +build go1.17,!go1.20
/*
* Copyright 2021 ByteDance Inc.

View file

@ -1,4 +1,4 @@
// +build go1.17,!go1.19
// +build go1.17,!go1.20
/*
* Copyright 2021 ByteDance Inc.

View file

@ -1,4 +1,4 @@
// +build go1.17,!go1.19
// +build go1.17,!go1.20
/*
* Copyright 2021 ByteDance Inc.

View file

@ -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:

View file

@ -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){

View file

@ -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))]
}

View file

@ -1,4 +1,4 @@
// +build go1.18,!go1.19
// +build go1.18,!go1.20
/*
* Copyright 2021 ByteDance Inc.

View file

@ -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")
}

View file

@ -1,4 +1,4 @@
// +build go1.17,!go1.19
// +build go1.17,!go1.20
/*
* Copyright 2021 ByteDance Inc.