}
}
+func TestCacheCoverage(t *testing.T) {
+ if strings.Contains(os.Getenv("GODEBUG"), "gocacheverify") {
+ t.Skip("GODEBUG gocacheverify")
+ }
+
+ tg := testgo(t)
+ defer tg.cleanup()
+ tg.parallel()
+ tg.setenv("GOPATH", filepath.Join(tg.pwd(), "testdata"))
+ tg.makeTempdir()
+
+ tg.setenv("GOCACHE", filepath.Join(tg.tempdir, "c1"))
+ tg.run("test", "-cover", "strings")
+ tg.run("test", "-cover", "math", "strings")
+}
+
func TestIssue22588(t *testing.T) {
// Don't get confused by stderr coming from tools.
tg := testgo(t)
}
}
-var coverIndex = 0
-
// isTestFile reports whether the source file is a set of tests and should therefore
// be excluded from coverage analysis.
func isTestFile(file string) bool {
// to the files, to be used when annotating the files.
func declareCoverVars(importPath string, files ...string) map[string]*load.CoverVar {
coverVars := make(map[string]*load.CoverVar)
+ coverIndex := 0
for _, file := range files {
if isTestFile(file) {
continue
if a.output == nil {
panic("internal error: a.output not set")
}
- c.Put(a.actionID, r)
+ outputID, _, err := c.Put(a.actionID, r)
+ if err == nil && cfg.BuildX {
+ b.Showcmd("", "%s # internal", joinUnambiguously(str.StringList("cp", target, c.OutputFile(outputID))))
+ }
c.PutBytes(cache.Subkey(a.actionID, "stdout"), a.output)
r.Close()
}