Merge pull request #16594 from Microsoft/sjw/unc-build-fix

Windows: Fixing longpath hanlding of UNC paths.
This commit is contained in:
Jess Frazelle 2015-10-02 11:24:27 -07:00
commit edd768c3a8
2 changed files with 28 additions and 1 deletions

View file

@ -15,7 +15,12 @@ const Prefix = `\\?\`
// it does not already have it. // it does not already have it.
func AddPrefix(path string) string { func AddPrefix(path string) string {
if !strings.HasPrefix(path, Prefix) { if !strings.HasPrefix(path, Prefix) {
if strings.HasPrefix(path, `\\`) {
// This is a UNC path, so we need to add 'UNC' to the path as well.
path = Prefix + `UNC` + path[1:]
} else {
path = Prefix + path path = Prefix + path
} }
}
return path return path
} }

22
longpath/longpath_test.go Normal file
View file

@ -0,0 +1,22 @@
package longpath
import (
"strings"
"testing"
)
func TestStandardLongPath(t *testing.T) {
c := `C:\simple\path`
longC := AddPrefix(c)
if !strings.EqualFold(longC, `\\?\C:\simple\path`) {
t.Errorf("Wrong long path returned. Original = %s ; Long = %s", c, longC)
}
}
func TestUNCLongPath(t *testing.T) {
c := `\\server\share\path`
longC := AddPrefix(c)
if !strings.EqualFold(longC, `\\?\UNC\server\share\path`) {
t.Errorf("Wrong UNC long path returned. Original = %s ; Long = %s", c, longC)
}
}