]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: skip TestCgoExternalThreadSIGPROF on OS X 10.6
authorShenghou Ma <minux@golang.org>
Thu, 1 Jan 2015 06:10:39 +0000 (01:10 -0500)
committerMinux Ma <minux@golang.org>
Sat, 3 Jan 2015 03:18:46 +0000 (03:18 +0000)
The test program requires static constructor, which in turn needs
external linking to work, but external linking never works on 10.6.

This should fix the darwin-{386,amd64} builders.

Change-Id: I714fdd3e35f9a7e5f5659cf26367feec9412444f
Reviewed-on: https://go-review.googlesource.com/2235
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/runtime/crash_cgo_test.go

index 98c4c1c0d45b901296d09cb7ef7ecf517b6b85cb..5cfcf5ab1f5f2a1dae71bf2e0da8cc58fdd6db7c 100644 (file)
@@ -9,6 +9,7 @@ package runtime_test
 import (
        "runtime"
        "strings"
+       "syscall"
        "testing"
 )
 
@@ -52,8 +53,20 @@ func TestCgoExternalThreadPanic(t *testing.T) {
 
 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"