runtime: only run TestNotInGoMetricCallback when building with cgo

It seems like some platforms don't build with cgo at all, like
linux/ppc64.

Change-Id: Ibe5306e79899822e77d42cb3018f9f0c9ca2604c
Reviewed-on: https://go-review.googlesource.com/c/go/+/728140
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Auto-Submit: Michael Knyszek <mknyszek@google.com>
This commit is contained in:
Michael Anthony Knyszek 2025-12-08 16:17:15 +00:00 committed by Gopher Robot
parent 3a6a034cd6
commit 44a39c9dac
2 changed files with 32 additions and 20 deletions

View File

@ -0,0 +1,32 @@
// Copyright 2025 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//go:build cgo
package runtime_test
import (
"internal/race"
"runtime"
"testing"
)
func TestNotInGoMetricCallback(t *testing.T) {
switch runtime.GOOS {
case "windows", "plan9":
t.Skip("unsupported on Windows and Plan9")
case "freebsd":
if race.Enabled {
t.Skipf("race + cgo freebsd not supported. See https://go.dev/issue/73788.")
}
}
// This test is run in a subprocess to prevent other tests from polluting the metrics
// and because we need to make some cgo callbacks.
output := runTestProg(t, "testprogcgo", "NotInGoMetricCallback")
want := "OK\n"
if output != want {
t.Fatalf("output:\n%s\n\nwanted:\n%s", output, want)
}
}

View File

@ -9,7 +9,6 @@ import (
"internal/abi"
"internal/goexperiment"
"internal/profile"
"internal/race"
"internal/testenv"
"os"
"reflect"
@ -1585,22 +1584,3 @@ func TestReadMetricsSched(t *testing.T) {
t.Fatalf("output:\n%s\n\nwanted:\n%s", output, want)
}
}
func TestNotInGoMetricCallback(t *testing.T) {
switch runtime.GOOS {
case "windows", "plan9":
t.Skip("unsupported on Windows and Plan9")
case "freebsd":
if race.Enabled {
t.Skipf("race + cgo freebsd not supported. See https://go.dev/issue/73788.")
}
}
// This test is run in a subprocess to prevent other tests from polluting the metrics
// and because we need to make some cgo callbacks.
output := runTestProg(t, "testprogcgo", "NotInGoMetricCallback")
want := "OK\n"
if output != want {
t.Fatalf("output:\n%s\n\nwanted:\n%s", output, want)
}
}