mirror of
https://github.com/SerenityOS/serenity
synced 2024-10-15 12:23:15 +00:00
Kernel+Tests: Remove inaccurate FIXME in sys$rmdir()
We were already handling the rmdir("..") case by refusing to remove directories that were not empty. This patch removes a FIXME from January 2019 and adds a test. :^)
This commit is contained in:
parent
8d781d0216
commit
8619f2c6f3
|
@ -847,8 +847,6 @@ ErrorOr<void> VirtualFileSystem::rmdir(Credentials const& credentials, StringVie
|
|||
if (last_component == "."sv)
|
||||
return EINVAL;
|
||||
|
||||
// FIXME: We should return ENOTEMPTY if the last component of the path is ".."
|
||||
|
||||
if (!inode.is_directory())
|
||||
return ENOTDIR;
|
||||
|
||||
|
|
|
@ -337,6 +337,25 @@ TEST_CASE(rmdir_dot)
|
|||
EXPECT_EQ(rc, 0);
|
||||
}
|
||||
|
||||
TEST_CASE(rmdir_dot_dot)
|
||||
{
|
||||
int rc = mkdir("/home/anon/rmdir-test-2", 0700);
|
||||
EXPECT_EQ(rc, 0);
|
||||
|
||||
rc = mkdir("/home/anon/rmdir-test-2/foo", 0700);
|
||||
EXPECT_EQ(rc, 0);
|
||||
|
||||
rc = rmdir("/home/anon/rmdir-test-2/foo/..");
|
||||
EXPECT_NE(rc, 0);
|
||||
EXPECT_EQ(errno, ENOTEMPTY);
|
||||
|
||||
rc = rmdir("/home/anon/rmdir-test-2/foo");
|
||||
EXPECT_EQ(rc, 0);
|
||||
|
||||
rc = rmdir("/home/anon/rmdir-test-2");
|
||||
EXPECT_EQ(rc, 0);
|
||||
}
|
||||
|
||||
TEST_CASE(rmdir_while_inside_dir)
|
||||
{
|
||||
int rc = mkdir("/home/anon/testdir", 0700);
|
||||
|
|
Loading…
Reference in a new issue