diff --git a/samples/memfs/memfs_test.go b/samples/memfs/memfs_test.go index 621a7e0..9659897 100644 --- a/samples/memfs/memfs_test.go +++ b/samples/memfs/memfs_test.go @@ -1152,7 +1152,33 @@ func (t *MemFSTest) CreateSymlink() { } func (t *MemFSTest) CreateSymlink_AlreadyExists() { - AssertTrue(false, "TODO") + var err error + + // Create a file and a directory. + fileName := path.Join(t.Dir, "foo") + err = ioutil.WriteFile(fileName, []byte{}, 0400) + AssertEq(nil, err) + + dirName := path.Join(t.Dir, "bar") + err = os.Mkdir(dirName, 0700) + AssertEq(nil, err) + + // Create an existing symlink. + symlinkName := path.Join(t.Dir, "baz") + err = os.Symlink("blah", symlinkName) + AssertEq(nil, err) + + // Symlinking on top of any of them should fail. + names := []string{ + fileName, + dirName, + symlinkName, + } + + for _, n := range names { + err = os.Symlink("blah", n) + ExpectThat(err, Error(HasSubstr("TODO"))) + } } func (t *MemFSTest) ReadLink_NonExistent() {