From b292799ddd0e81ef6ffbbe5c7972786673d122f9 Mon Sep 17 00:00:00 2001
From: Dmitri Shuralyov <dmitshur@golang.org>
Date: Tue, 20 Aug 2024 10:07:05 -0400
Subject: [PATCH] testing: use temp dir without symlinks in TestChdir/relative

When paths with symlinks are involved, it's not viable to compare them
with string equality. Don't use a temporary directory with symlinks in
it as input, so the test works in more environments.

For #62516.

Change-Id: I95d774365cc2f90eb0ffcffa61229ed5cee43e3e
Reviewed-on: https://go-review.googlesource.com/c/go/+/607035
Reviewed-by: Ian Lance Taylor <iant@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
---
 src/testing/testing_test.go | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/testing/testing_test.go b/src/testing/testing_test.go
index ff674fc3d17..1dd2039399b 100644
--- a/src/testing/testing_test.go
+++ b/src/testing/testing_test.go
@@ -293,7 +293,11 @@ func TestChdir(t *testing.T) {
 	}
 	defer os.Chdir(oldDir)
 
-	tmp := t.TempDir()
+	// The "relative" test case relies on tmp not being a symlink.
+	tmp, err := filepath.EvalSymlinks(t.TempDir())
+	if err != nil {
+		t.Fatal(err)
+	}
 	rel, err := filepath.Rel(oldDir, tmp)
 	if err != nil {
 		t.Fatal(err)
-- 
GitLab