Skip to content

Commit

Permalink
[go] tests/GoTest.sh: Fix flags.Parse location to work on new go SDKs. (
Browse files Browse the repository at this point in the history
#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 golang/go#31859,
golang/go#33869.

* .github: Enable build-go action in build.yaml workflow.
  • Loading branch information
reltuk authored Jan 7, 2021
1 parent 08d2ce8 commit 41253e5
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 20 deletions.
22 changes: 11 additions & 11 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 3 additions & 3 deletions tests/GoTest.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
15 changes: 9 additions & 6 deletions tests/go_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
Binary file added tests/monsterdata_go_wire.mon.sp
Binary file not shown.

0 comments on commit 41253e5

Please sign in to comment.