"path"
"path/filepath"
"reflect"
- "runtime"
"strings"
"testing"
"time"
func TestFileInfoHeaderSymlink(t *testing.T) {
testenv.MustHaveSymlink(t)
- if runtime.GOOS == "windows" {
- t.Skip("skipping broken test: see issue 17541")
- }
tmpdir, err := ioutil.TempDir("", "TestFileInfoHeaderSymlink")
if err != nil {
t.Fatal(err)
t.Errorf("%q should point to %q", link, dir)
continue
}
+
+ fi2, err := os.Lstat(link)
+ if err != nil {
+ t.Errorf("failed to lstat link %v: %v", link, err)
+ continue
+ }
+ if m := fi2.Mode(); m&os.ModeSymlink == 0 {
+ t.Errorf("%q should be a link, but is not (mode=0x%x)", link, uint32(m))
+ continue
+ }
+ if m := fi2.Mode(); m&os.ModeDir != 0 {
+ t.Errorf("%q should be a link, not a directory (mode=0x%x)", link, uint32(m))
+ continue
+ }
}
}
if fs == &devNullStat {
return ModeDevice | ModeCharDevice | 0666
}
- if fs.sys.FileAttributes&syscall.FILE_ATTRIBUTE_DIRECTORY != 0 {
- m |= ModeDir | 0111
- }
if fs.sys.FileAttributes&syscall.FILE_ATTRIBUTE_READONLY != 0 {
m |= 0444
} else {
m |= 0666
}
if fs.sys.FileAttributes&syscall.FILE_ATTRIBUTE_REPARSE_POINT != 0 {
- m |= ModeSymlink
+ return m | ModeSymlink
+ }
+ if fs.sys.FileAttributes&syscall.FILE_ATTRIBUTE_DIRECTORY != 0 {
+ m |= ModeDir | 0111
}
switch fs.filetype {
case syscall.FILE_TYPE_PIPE:
func TestWalkSymlink(t *testing.T) {
testenv.MustHaveSymlink(t)
- if runtime.GOOS == "windows" {
- t.Skip("skipping broken test: see issue 17540")
- }
testWalkSymlink(t, os.Symlink)
}
func TestWalkDirectoryJunction(t *testing.T) {
testenv.MustHaveSymlink(t)
- t.Skip("skipping broken test: see issue 10424")
testWalkMklink(t, "J")
}
func TestWalkDirectorySymlink(t *testing.T) {
testenv.MustHaveSymlink(t)
- t.Skip("skipping broken test: see issue 17540")
testWalkMklink(t, "D")
}