]> Cypherpunks.ru repositories - gostls13.git/blobdiff - src/cmd/go/go_test.go
[dev.typeparams] all: merge master (798ec73) into dev.typeparams
[gostls13.git] / src / cmd / go / go_test.go
index eaafe79235263b040011e438c81c9c307b466e78..b13191f678ddb9f4ea8671768a800067185882e0 100644 (file)
@@ -2850,3 +2850,35 @@ func TestExecInDeletedDir(t *testing.T) {
        // `go version` should not fail
        tg.run("version")
 }
+
+// A missing C compiler should not force the net package to be stale.
+// Issue 47215.
+func TestMissingCC(t *testing.T) {
+       if !canCgo {
+               t.Skip("test is only meaningful on systems with cgo")
+       }
+       cc := os.Getenv("CC")
+       if cc == "" {
+               cc = "gcc"
+       }
+       if filepath.IsAbs(cc) {
+               t.Skipf(`"CC" (%s) is an absolute path`, cc)
+       }
+       _, err := exec.LookPath(cc)
+       if err != nil {
+               t.Skipf(`"CC" (%s) not on PATH`, cc)
+       }
+
+       tg := testgo(t)
+       defer tg.cleanup()
+       netStale, _ := tg.isStale("net")
+       if netStale {
+               t.Skip(`skipping test because "net" package is currently stale`)
+       }
+
+       tg.setenv("PATH", "") // No C compiler on PATH.
+       netStale, _ = tg.isStale("net")
+       if netStale {
+               t.Error(`clearing "PATH" causes "net" to be stale`)
+       }
+}