import (
"runtime"
"strings"
+ "syscall"
"testing"
)
func TestCgoExternalThreadSIGPROF(t *testing.T) {
// issue 9456.
- if runtime.GOOS == "plan9" || runtime.GOOS == "windows" {
+ switch runtime.GOOS {
+ case "plan9", "windows":
t.Skipf("no pthreads on %s", runtime.GOOS)
+ case "darwin":
+ // static constructor needs external linking, but we don't support
+ // external linking on OS X 10.6.
+ osver, err := syscall.Sysctl("kern.osrelease")
+ if err != nil {
+ t.Fatalf("Sysctl(kern.osrelease) failed: %v", err)
+ }
+ // OS X 10.6 == Darwin 10.x
+ if strings.HasPrefix(osver, "10.") {
+ t.Skipf("no external linking on OS X 10.6")
+ }
}
got := executeTest(t, cgoExternalThreadSIGPROFSource, nil)
want := "OK\n"