diff options
Diffstat (limited to 'src/os/root_test.go')
| -rw-r--r-- | src/os/root_test.go | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/os/root_test.go b/src/os/root_test.go index 7db8ce0e58..7b8eae03a1 100644 --- a/src/os/root_test.go +++ b/src/os/root_test.go @@ -1596,6 +1596,33 @@ func TestRootRaceRenameDir(t *testing.T) { } } +func TestRootSymlinkToRoot(t *testing.T) { + dir := makefs(t, []string{ + "d/d => ..", + }) + root, err := os.OpenRoot(dir) + if err != nil { + t.Fatal(err) + } + defer root.Close() + if err := root.Mkdir("d/d/new", 0777); err != nil { + t.Fatal(err) + } + f, err := root.Open("d/d") + if err != nil { + t.Fatal(err) + } + defer f.Close() + names, err := f.Readdirnames(-1) + if err != nil { + t.Fatal(err) + } + slices.Sort(names) + if got, want := names, []string{"d", "new"}; !slices.Equal(got, want) { + t.Errorf("root contains: %q, want %q", got, want) + } +} + func TestOpenInRoot(t *testing.T) { dir := makefs(t, []string{ "file", |
