#include "kernel/filesystem/rootfs/filesystem.hpp" #include "kernel/filesystem/filesystem.hpp" #include #include #include #include SCENARIO("Rootfs filesystem mount and lookup", "[filesystem][rootfs][filesystem]") { GIVEN("a mounted rootfs filesystem") { auto fs = kernel::filesystem::rootfs::filesystem{}; auto result = fs.mount(nullptr); THEN("the filesystem can be mounted successfully") { REQUIRE(result == kernel::filesystem::filesystem::operation_result::success); REQUIRE(fs.root_inode() != nullptr); } THEN("looking up the 'dev' directory returns a valid inode") { auto dev_inode = fs.lookup(fs.root_inode(), "dev"); REQUIRE(dev_inode != nullptr); REQUIRE(dev_inode->is_directory()); } THEN("looking up a non-existent directory returns null") { auto non_existent_inode_1 = fs.lookup(fs.root_inode(), ""); REQUIRE(non_existent_inode_1 == nullptr); auto non_existent_inode_2 = fs.lookup(fs.root_inode(), "nonexistent"); REQUIRE(non_existent_inode_2 == nullptr); } THEN("looking up with a null parent inode returns null") { auto result = fs.lookup(nullptr, "dev"); REQUIRE(result == nullptr); } } }