diff --git a/tool/gocross/gocross-wrapper.sh b/tool/gocross/gocross-wrapper.sh index 025cac488..1bfd67092 100755 --- a/tool/gocross/gocross-wrapper.sh +++ b/tool/gocross/gocross-wrapper.sh @@ -88,7 +88,7 @@ fi # case, cmd/cloner invokes go with GO111MODULE=off at some stage. # # Anyway, build gocross in a stripped down universe. -gocross_path="gocross" +gocross_path="./gocross" gocross_ok=0 wantver="$(git rev-parse HEAD)" if [[ -x "$gocross_path" ]]; then diff --git a/tool/gocross/gocross_wrapper_test.go b/tool/gocross/gocross_wrapper_test.go new file mode 100644 index 000000000..2b0f016a2 --- /dev/null +++ b/tool/gocross/gocross_wrapper_test.go @@ -0,0 +1,27 @@ +// Copyright (c) Tailscale Inc & AUTHORS +// SPDX-License-Identifier: BSD-3-Clause + +//go:build linux || darwin + +package main + +import ( + "os" + "os/exec" + "strings" + "testing" +) + +func TestGocrossWrapper(t *testing.T) { + for i := range 2 { // once to build gocross; second to test it's cached + cmd := exec.Command("./gocross-wrapper.sh", "version") + cmd.Env = append(os.Environ(), "CI=true", "NOBASHDEBUG=false") // for "set -x" verbosity + out, err := cmd.CombinedOutput() + if err != nil { + t.Fatalf("gocross-wrapper.sh failed: %v\n%s", err, out) + } + if i > 0 && !strings.Contains(string(out), "gocross_ok=1\n") { + t.Errorf("expected to find 'gocross-ok=1'; got output:\n%s", out) + } + } +}