if err := os.Chdir(modRoot); err != nil {
log.Panic(err)
}
+ os.Setenv("PWD", modRoot)
if err := ioutil.WriteFile("go.mod", []byte("module cgolife\n"), 0666); err != nil {
log.Panic(err)
}
if err := os.Chdir(modRoot); err != nil {
log.Panic(err)
}
+ os.Setenv("PWD", modRoot)
if err := ioutil.WriteFile("go.mod", []byte("module cgostdio\n"), 0666); err != nil {
log.Panic(err)
}
"os"
"os/exec"
"path/filepath"
+ "runtime"
"strings"
"testing"
)
// this shim and move the tests currently located in testdata back into the
// parent directory.
func TestCrossPackageTests(t *testing.T) {
+ if runtime.GOOS == "darwin" {
+ switch runtime.GOARCH {
+ case "arm", "arm64":
+ t.Skip("Can't exec cmd/go subprocess on iOS.")
+ }
+ }
+
GOPATH, err := ioutil.TempDir("", "cgotest")
if err != nil {
t.Fatal(err)
if err := os.Chdir(modRoot); err != nil {
log.Panic(err)
}
+ os.Setenv("PWD", modRoot)
if err := ioutil.WriteFile("go.mod", []byte("module testcarchive\n"), 0666); err != nil {
log.Panic(err)
}
if err := os.Chdir(modRoot); err != nil {
log.Panic(err)
}
+ os.Setenv("PWD", modRoot)
if err := ioutil.WriteFile("go.mod", []byte("module testcshared\n"), 0666); err != nil {
log.Panic(err)
}
if err := os.Chdir(altRoot); err != nil {
log.Panic(err)
}
+ os.Setenv("PWD", altRoot)
goCmd(nil, "build", "-buildmode=plugin", "-o", filepath.Join(modRoot, "plugin-mismatch.so"), "./plugin-mismatch")
os.Setenv("GOPATH", GOPATH)
if err := os.Chdir(modRoot); err != nil {
log.Panic(err)
}
+ os.Setenv("PWD", modRoot)
os.Setenv("LD_LIBRARY_PATH", modRoot)
fmt.Printf("+ cd %s\n", modRoot)
}
os.Chdir(modRoot)
+ os.Setenv("PWD", modRoot)
if err := ioutil.WriteFile("go.mod", []byte("module testshared\n"), 0666); err != nil {
return 0, err
}