From 7b77b0fa221a907cb5cb1b24b5b272bcf10c1a05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alo=C3=AFs=20Micard?= Date: Fri, 27 Aug 2021 15:50:13 +0200 Subject: [PATCH] test: only enable race detector when supported Closes: #1228 --- cmd/yaegi/yaegi_test.go | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/cmd/yaegi/yaegi_test.go b/cmd/yaegi/yaegi_test.go index 777c803e..9aafb542 100644 --- a/cmd/yaegi/yaegi_test.go +++ b/cmd/yaegi/yaegi_test.go @@ -7,6 +7,7 @@ import ( "os" "os/exec" "path/filepath" + "runtime" "strconv" "strings" "testing" @@ -49,7 +50,15 @@ func TestYaegiCmdCancel(t *testing.T) { }() yaegi := filepath.Join(tmp, "yaegi") - build := exec.Command("go", "build", "-race", "-o", yaegi, ".") + + args := []string{"build"} + if raceDetectorSupported(runtime.GOOS, runtime.GOARCH) { + args = append(args, "-race") + } + args = append(args, "-o", yaegi, ".") + + build := exec.Command("go", args...) + out, err := build.CombinedOutput() if err != nil { t.Fatalf("failed to build yaegi command: %v: %s", err, out) @@ -115,3 +124,16 @@ func TestYaegiCmdCancel(t *testing.T) { } } } + +func raceDetectorSupported(goos, goarch string) bool { + switch goos { + case "linux": + return goarch == "amd64" || goarch == "ppc64le" || goarch == "arm64" + case "darwin": + return goarch == "amd64" || goarch == "arm64" + case "freebsd", "netbsd", "openbsd", "windows": + return goarch == "amd64" + default: + return false + } +}