mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-04 12:43:24 +00:00
[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:
22
.github/workflows/build.yml
vendored
22
.github/workflows/build.yml
vendored
@@ -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
|
||||
|
||||
BIN
tests/monsterdata_go_wire.mon.sp
Normal file
BIN
tests/monsterdata_go_wire.mon.sp
Normal file
Binary file not shown.
Reference in New Issue
Block a user