aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/filesystem/ext2/filesystem.tests.cpp
diff options
context:
space:
mode:
authorMarcel Braun <marcel.braun@ost.ch>2026-04-16 22:04:32 +0200
committerMarcel Braun <marcel.braun@ost.ch>2026-04-16 22:04:32 +0200
commitf642efb5cf199d3bbb8e3b01c451c71a1fbeabf8 (patch)
tree7e680dd885a59678d7075d352ee623f659d64d48 /kernel/src/filesystem/ext2/filesystem.tests.cpp
parent3c210c07c60fbe9378cfb720847e8c1d3c763ead (diff)
parente70ea2357a80386b0a12138201b353d942910296 (diff)
downloadteachos-f642efb5cf199d3bbb8e3b01c451c71a1fbeabf8.tar.xz
teachos-f642efb5cf199d3bbb8e3b01c451c71a1fbeabf8.zip
Merge branch 'syscall-interface' into 'develop-BA-FS26'
Add fs syscall handler See merge request teachos/kernel!23
Diffstat (limited to 'kernel/src/filesystem/ext2/filesystem.tests.cpp')
-rw-r--r--kernel/src/filesystem/ext2/filesystem.tests.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/kernel/src/filesystem/ext2/filesystem.tests.cpp b/kernel/src/filesystem/ext2/filesystem.tests.cpp
index b13ebf3..a7b8d5b 100644
--- a/kernel/src/filesystem/ext2/filesystem.tests.cpp
+++ b/kernel/src/filesystem/ext2/filesystem.tests.cpp
@@ -1,6 +1,7 @@
#include "kernel/filesystem/ext2/filesystem.hpp"
#include "kernel/devices/storage/management.hpp"
+#include "kernel/filesystem/device_inode.hpp"
#include "kernel/filesystem/ext2/inode.hpp"
#include "kernel/filesystem/filesystem.hpp"
#include "kernel/test_support/devices/block_device.hpp"
@@ -29,8 +30,10 @@ SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_fixture,
auto boot_device = kernel::devices::storage::management::get().determine_boot_device();
REQUIRE(boot_device != nullptr);
+ auto dev_inode = kstd::make_shared<kernel::filesystem::device_inode>(boot_device);
+
auto fs = kernel::filesystem::ext2::filesystem{};
- REQUIRE(fs.mount(boot_device) == kernel::filesystem::filesystem::operation_result::success);
+ REQUIRE(fs.mount(dev_inode) == kernel::filesystem::filesystem::operation_result::success);
THEN("the root inode is available and is a directory")
{
@@ -72,11 +75,13 @@ SCENARIO("Ext2 filesystem rejects invalid magic", "[filesystem][ext2][filesystem
auto device = kstd::make_shared<kernel::tests::devices::block_device>(0, 0, "mock", block_size, 2 * block_size);
REQUIRE(device != nullptr);
+ auto dev_inode = kstd::make_shared<kernel::filesystem::device_inode>(device);
+
auto fs = kernel::filesystem::ext2::filesystem{};
THEN("mount fails with invalid_magic_number")
{
- REQUIRE(fs.mount(device) == kernel::filesystem::filesystem::operation_result::invalid_magic_number);
+ REQUIRE(fs.mount(dev_inode) == kernel::filesystem::filesystem::operation_result::invalid_magic_number);
}
}
}
@@ -92,8 +97,10 @@ SCENARIO("Ext2 block mapping includes direct and all indirect levels", "[filesys
kernel::tests::filesystem::ext2::setup_mock_ext2_layout(*device);
+ auto dev_inode = kstd::make_shared<kernel::filesystem::device_inode>(device);
+
auto fs = kernel::filesystem::ext2::filesystem{};
- REQUIRE(fs.mount(device) == kernel::filesystem::filesystem::operation_result::success);
+ REQUIRE(fs.mount(dev_inode) == kernel::filesystem::filesystem::operation_result::success);
auto inode_data = kernel::filesystem::ext2::inode_data{};
inode_data.block[0] = 7;