From: Bryan C. Mills Date: Thu, 23 Mar 2023 20:10:52 +0000 (-0400) Subject: cmd/go: log more information about leaked temp files X-Git-Tag: go1.21rc1~453 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=bc04d4afa28c867d43869c92179b62f84b36da54;p=gostls13.git cmd/go: log more information about leaked temp files Previously, we were only logging the top-level names of leaked directories, which doesn't provide much information for debugging. For #55260. Change-Id: I845d158135d67b5d7fdeb16ab7031a061535e643 Reviewed-on: https://go-review.googlesource.com/c/go/+/479055 Run-TryBot: Bryan Mills Reviewed-by: Michael Matloob Auto-Submit: Bryan Mills TryBot-Result: Gopher Robot --- diff --git a/src/cmd/go/go_test.go b/src/cmd/go/go_test.go index bfbf1e8e97..291f512447 100644 --- a/src/cmd/go/go_test.go +++ b/src/cmd/go/go_test.go @@ -312,16 +312,33 @@ func TestMain(m *testing.M) { if !*testWork { // There shouldn't be anything left in topTmpdir. - dirf, err := os.Open(topTmpdir) - if err != nil { - log.Fatal(err) - } - names, err := dirf.Readdirnames(0) + var extraFiles, extraDirs []string + err := filepath.WalkDir(topTmpdir, func(path string, d fs.DirEntry, err error) error { + if err != nil { + return err + } + if path == topTmpdir { + return nil + } + + if rel, err := filepath.Rel(topTmpdir, path); err == nil { + path = rel + } + if d.IsDir() { + extraDirs = append(extraDirs, path) + } else { + extraFiles = append(extraFiles, path) + } + return nil + }) if err != nil { log.Fatal(err) } - if len(names) > 0 { - log.Fatalf("unexpected files left in tmpdir: %v", names) + + if len(extraFiles) > 0 { + log.Fatalf("unexpected files left in tmpdir: %q", extraFiles) + } else if len(extraDirs) > 0 { + log.Fatalf("unexpected subdirectories left in tmpdir: %q", extraDirs) } removeAll(topTmpdir)