[go] tests/GoTest.sh: Fix flags.Parse location to work on new go SDKs. (#6388)
* tests/GoTest.sh: Fix flags.Parse location to work on new go SDKs. Calling flags.Parse() within init() races with other packages which register flags in their init(), and in particular with the testing package itself. It is more reliable to call flags.Parse() from a TestMain implementation. See https://github.com/golang/go/issues/31859, https://github.com/golang/go/issues/33869. * .github: Enable build-go action in build.yaml workflow.
This commit is contained in:
parent
08d2ce844b
commit
41253e574e
|
@ -149,17 +149,17 @@ jobs:
|
|||
working-directory: tests
|
||||
run: bash PythonTest.sh
|
||||
|
||||
#build-go:
|
||||
# name: Build Go
|
||||
# runs-on: ubuntu-latest
|
||||
# steps:
|
||||
# - uses: actions/checkout@v1
|
||||
# - name: flatc
|
||||
# # FIXME: make test script not rely on flatc
|
||||
# run: cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_INSTALL=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF . && make -j4
|
||||
# - name: test
|
||||
# working-directory: tests
|
||||
# run: bash GoTest.sh
|
||||
build-go:
|
||||
name: Build Go
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: flatc
|
||||
# FIXME: make test script not rely on flatc
|
||||
run: cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_INSTALL=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF . && make -j4
|
||||
- name: test
|
||||
working-directory: tests
|
||||
run: bash GoTest.sh
|
||||
|
||||
#build-csharp:
|
||||
# name: Build CSharp
|
||||
|
|
|
@ -47,11 +47,11 @@ cp -a ./go_test.go ./go_gen/src/flatbuffers_test/
|
|||
# flag -test.bench and the wildcard regexp ".":
|
||||
# go -test -test.bench=. ...
|
||||
GOPATH=${go_path} go test flatbuffers_test \
|
||||
--test.coverpkg=github.com/google/flatbuffers/go \
|
||||
--coverpkg=github.com/google/flatbuffers/go \
|
||||
--cpp_data=${test_dir}/monsterdata_test.mon \
|
||||
--out_data=${test_dir}/monsterdata_go_wire.mon \
|
||||
--test.bench=. \
|
||||
--test.benchtime=3s \
|
||||
--bench=. \
|
||||
--benchtime=3s \
|
||||
--fuzz=true \
|
||||
--fuzz_fields=4 \
|
||||
--fuzz_objects=10000
|
||||
|
|
|
@ -50,12 +50,6 @@ func init() {
|
|||
flag.IntVar(&fuzzFields, "fuzz_fields", 4, "fields per fuzzer object")
|
||||
flag.IntVar(&fuzzObjects, "fuzz_objects", 10000,
|
||||
"number of fuzzer objects (higher is slower and more thorough")
|
||||
flag.Parse()
|
||||
|
||||
if cppData == "" {
|
||||
fmt.Fprintf(os.Stderr, "cpp_data argument is required\n")
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
// Store specific byte patterns in these variables for the fuzzer. These
|
||||
|
@ -65,6 +59,15 @@ var (
|
|||
overflowingInt64Val = flatbuffers.GetInt64([]byte{0x84, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44})
|
||||
)
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
flag.Parse()
|
||||
if cppData == "" {
|
||||
fmt.Fprintf(os.Stderr, "cpp_data argument is required\n")
|
||||
os.Exit(1)
|
||||
}
|
||||
os.Exit(m.Run())
|
||||
}
|
||||
|
||||
// TestAll runs all checks, failing if any errors occur.
|
||||
func TestAll(t *testing.T) {
|
||||
// Verify that the Go FlatBuffers runtime library generates the
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue