}
}
+// Issue 57905.
+func TestRelativeSymlinkToAbsolute(t *testing.T) {
+ testenv.MustHaveSymlink(t)
+ // Not parallel: uses os.Chdir.
+
+ tmpDir := t.TempDir()
+ chdir(t, tmpDir)
+
+ // Create "link" in the current working directory as a symlink to an arbitrary
+ // absolute path. On macOS, this path is likely to begin with a symlink
+ // itself: generally either in /var (symlinked to "private/var") or /tmp
+ // (symlinked to "private/tmp").
+ if err := os.Symlink(tmpDir, "link"); err != nil {
+ t.Fatal(err)
+ }
+ t.Logf(`os.Symlink(%q, "link")`, tmpDir)
+
+ p, err := filepath.EvalSymlinks("link")
+ if err != nil {
+ t.Fatalf(`EvalSymlinks("link"): %v`, err)
+ }
+ want, err := filepath.EvalSymlinks(tmpDir)
+ if err != nil {
+ t.Fatalf(`EvalSymlinks(%q): %v`, tmpDir, err)
+ }
+ if p != want {
+ t.Errorf(`EvalSymlinks("link") = %q; want %q`, p, want)
+ }
+ t.Logf(`EvalSymlinks("link") = %q`, p)
+}
+
// Test directories relative to temporary directory.
// The tests are run in absTestDirs[0].
var absTestDirs = []string{