blob: b013f78be07d4909f7d5b94d49acd0c79ab07071 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
#include "kernel/filesystem/rootfs/filesystem.hpp"
#include "kernel/filesystem/filesystem.hpp"
#include <kstd/memory>
#include <kstd/print>
#include <kstd/vector>
#include <catch2/catch_test_macros.hpp>
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);
}
}
}
|