]> Cypherpunks repositories - gostls13.git/commitdiff
path/filepath: skip TestIssue29372 on windows, if /tmp has symilinks
authorAlex Brainman <alex.brainman@gmail.com>
Fri, 25 Jan 2019 07:22:27 +0000 (18:22 +1100)
committerAlex Brainman <alex.brainman@gmail.com>
Sun, 27 Jan 2019 04:18:10 +0000 (04:18 +0000)
TestIssue29372 is broken on windows when temporary directory has
symlink in its path.

Adjust the test to use filepath.EvalSymlinks of temporary directory,
instead of temporary directory on windows. This change is not a
proper fix, but at least it makes TestIssue29372 pass on windows-arm.

See issue for details.

Updates #29746

Change-Id: I2af8ebb89da7cb9daf027a5e49e32ee22dbd0e3d
Reviewed-on: https://go-review.googlesource.com/c/159578
Run-TryBot: Alex Brainman <alex.brainman@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/path/filepath/path_test.go

index cbddda88b6693ddf3878993ffd9ea6b1c721a24a..9c4c7ebedc3b4187285adcc1a0e95cc0c152739b 100644 (file)
@@ -1374,13 +1374,27 @@ func TestWalkSymlink(t *testing.T) {
 }
 
 func TestIssue29372(t *testing.T) {
-       f, err := ioutil.TempFile("", "issue29372")
+       tmpDir, err := ioutil.TempDir("", "TestIssue29372")
+       if err != nil {
+               t.Fatal(err)
+       }
+       defer os.RemoveAll(tmpDir)
+
+       if runtime.GOOS == "windows" {
+               // This test is broken on windows, if temporary directory
+               // is a symlink. See issue 29746.
+               // TODO(brainman): Remove this hack once issue #29746 is fixed.
+               tmpDir, err = filepath.EvalSymlinks(tmpDir)
+               if err != nil {
+                       t.Fatal(err)
+               }
+       }
+
+       path := filepath.Join(tmpDir, "file.txt")
+       err = ioutil.WriteFile(path, nil, 0644)
        if err != nil {
                t.Fatal(err)
        }
-       f.Close()
-       path := f.Name()
-       defer os.Remove(path)
 
        pathSeparator := string(filepath.Separator)
        tests := []string{