From 32e459a09cd2da967fc2c0accf197fecc7b658d5 Mon Sep 17 00:00:00 2001 From: Mostyn Bramley-Moore Date: Mon, 5 Mar 2018 22:04:47 +0000 Subject: [PATCH] path/filepath: use a temp dir in path_test.go We should avoid writing temp files to GOROOT, since it might be readonly. Fixes #23881 Change-Id: Iaa38ec404b303f0cf27fdfb7daf1ddd60fd5d1c9 GitHub-Last-Rev: de0211df8474cc3bbef40f792e2f85b3b6ee259c GitHub-Pull-Request: golang/go#24238 Reviewed-on: https://go-review.googlesource.com/98517 Run-TryBot: Giovanni Bajo TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- src/path/filepath/path_test.go | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/path/filepath/path_test.go b/src/path/filepath/path_test.go index 3ebd3fbd2d..6e8d1cb432 100644 --- a/src/path/filepath/path_test.go +++ b/src/path/filepath/path_test.go @@ -433,6 +433,22 @@ func TestWalk(t *testing.T) { defer restore() } } + + tmpDir, err := ioutil.TempDir("", "TestWalk") + if err != nil { + t.Fatal("creating temp dir:", err) + } + defer os.RemoveAll(tmpDir) + + origDir, err := os.Getwd() + if err != nil { + t.Fatal("finding working dir:", err) + } + if err = os.Chdir(tmpDir); err != nil { + t.Fatal("entering temp dir:", err) + } + defer os.Chdir(origDir) + makeTree(t) errors := make([]error, 0, 10) clear := true @@ -440,7 +456,7 @@ func TestWalk(t *testing.T) { return mark(info, err, &errors, clear) } // Expect no errors. - err := filepath.Walk(tree.name, markFn) + err = filepath.Walk(tree.name, markFn) if err != nil { t.Fatalf("no error expected, found: %s", err) } @@ -499,11 +515,6 @@ func TestWalk(t *testing.T) { os.Chmod(filepath.Join(tree.name, tree.entries[1].name), 0770) os.Chmod(filepath.Join(tree.name, tree.entries[3].name), 0770) } - - // cleanup - if err := os.RemoveAll(tree.name); err != nil { - t.Errorf("removeTree: %v", err) - } } func touch(t *testing.T, name string) { -- 2.48.1