<p dir="auto">This issue makes TestDriveLetterInEvalSymlinks fails in some path configuration from at least Go 1.4 up to Go 1.6. The problem exists only on windows.</p>
<p dir="auto">My current setup has go installed at the location G:.go. When running all.bash, the test TestDriveLetterInEvalSymlinks will fail with this result:</p>
<blockquote>
<p dir="auto">--- FAIL: TestDriveLetterInEvalSymlinks (0.00s)<br>
path_test.go:1200: Results of EvalSymlinks do not match: "G:.go\src\path\filepath" and "G:.GO\src\path\filepath"</p>
</blockquote>
<p dir="auto">I tracked down the issue to the case-correcting procedure in symlink_windows.go. It seems that Windows's GetLongPathName will not correct the casing of a folder if it starts with a period.</p>
<p dir="auto">The issue seem to be on Windows side and not on Go's. But it makes all.bat fail when someone's GOROOT has a folder starting with a dot in it so I prefered to make an issue for it.</p>
<p dir="auto">What version of Go are you using (go version)?<br>
go version go1.6beta2 windows/amd64</p>
<p dir="auto">What operating system and processor architecture are you using?<br>
OS Name:                   Microsoft Windows 8 Single Language<br>
OS Version:                6.2.9200 N/A Build 9200<br>
Intel64 Family 6 Model 58 Stepping 9 GenuineIntel ~2400 Mhz</p>
<p dir="auto">What did you do?<br>
cd go\src<br>
all.bat</p>
<p dir="auto">What did you expect to see?<br>
A clean build &amp; test output.</p>
<p dir="auto">What did you see instead?<br>
--- FAIL: TestEvalSymlinksCanonicalNames (0.02s)<br>
path_windows_test.go:161: EvalSymlinks("C:\USERS\JUCIE\APPDATA\LOCAL\TEMP\EVALSYMLINKCANONICAL102278141\TEST"<br>
) returns "C:\Users\jucie\AppData\Local\Temp\EVALSYMLINKCANONICAL102278141\test", but should return "C:\Users\jucie\AppData\Local\Temp\evalsymlinkcanonical102278141\test"<br>
path_windows_test.go:161: EvalSymlinks("C:\USERS\JUCIE\APPDATA\LOCAL\TEMP\EVALSYMLINKCANONICAL102278141\TEST<br>
\DIR") returns "C:\Users\jucie\AppData\Local\Temp\EVALSYMLINKCANONICAL102278141\test\dir", but should return "C:\Users\jucie\AppData\Local\Temp\evalsymlinkcanonical102278141\test\dir"<br>
path_windows_test.go:161: EvalSymlinks("C:\USERS\JUCIE\APPDATA\LOCAL\TEMP\EVALSYMLINKCANONICAL102278141\TESTI<br>
NG_LONG_DIR") returns "C:\Users\jucie\AppData\Local\Temp\EVALSYMLINKCANONICAL102278141\TESTING_LONG_DIR", but should<br>
return "C:\Users\jucie\AppData\Local\Temp\evalsymlinkcanonical102278141\testing_long_dir"<br>
path_windows_test.go:161: EvalSymlinks("C:\USERS\JUCIE\APPDATA\LOCAL\TEMP\EVALSYMLINKCANONICAL102278141\TEST2<br>
") returns "C:\Users\jucie\AppData\Local\Temp\EVALSYMLINKCANONICAL102278141\TEST2", but should return "C:\Users\jucie\AppData\Local\Temp\evalsymlinkcanonical102278141\TEST2"<br>
FAIL</p>
<p dir="auto">It appears to me EvalSymlinks works as it should, but the test says it doesn't. The test is broken. To mimic Windows comparison semantics, the test comparison should be case insensitive, because Windows filesystem is not case sensitive. Both "C:\USERS\JUCIE" and "C:\Users\Jucie" refer to the same file.</p>
<p dir="auto"><a href="https://github.com/golang/go/files/92865/buildAndTestOutput.txt">buildAndTestOutput.txt</a></p>