diff options
Diffstat (limited to 'kernel/kernel/filesystem/ext2/directory_iterator.tests.cpp')
| -rw-r--r-- | kernel/kernel/filesystem/ext2/directory_iterator.tests.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/kernel/kernel/filesystem/ext2/directory_iterator.tests.cpp b/kernel/kernel/filesystem/ext2/directory_iterator.tests.cpp index 20ef7009..2d817e0b 100644 --- a/kernel/kernel/filesystem/ext2/directory_iterator.tests.cpp +++ b/kernel/kernel/filesystem/ext2/directory_iterator.tests.cpp @@ -4,6 +4,7 @@ #include <kernel/filesystem/device_inode.hpp> #include <kernel/filesystem/ext2/filesystem.hpp> #include <kernel/filesystem/ext2/inode.hpp> +#include <kernel/filesystem/ext2/mount_state.hpp> #include <kernel/filesystem/mount.hpp> #include <kernel/test_support/filesystem/storage_boot_module_fixture.hpp> @@ -37,12 +38,14 @@ SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_fixture, auto root = (*mount)->root_dentry()->inode(); auto const & root_ext2_inode = static_cast<kernel::filesystem::ext2::inode const &>(*root); + auto mount_state = static_pointer_cast<kernel::filesystem::ext2::mount_state>((*mount)->driver_data()); + WHEN("iterating from begin to the default-constructed end sentinel") { auto names = std::vector<std::string>{}; auto guard = 0; - for (auto it = kernel::filesystem::ext2::directory_iterator{root_ext2_inode}; + for (auto it = kernel::filesystem::ext2::directory_iterator{root_ext2_inode, *fs, *mount_state}; it != kernel::filesystem::ext2::directory_iterator{}; ++it) { REQUIRE(guard++ < 64); // fails loudly on a non-terminating loop rather than hanging the suite @@ -82,7 +85,9 @@ SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_fixture, auto root = (*mount)->root_dentry()->inode(); auto const & root_ext2_inode = static_cast<kernel::filesystem::ext2::inode const &>(*root); - auto original = kernel::filesystem::ext2::directory_iterator{root_ext2_inode}; + auto mount_state = static_pointer_cast<kernel::filesystem::ext2::mount_state>((*mount)->driver_data()); + + auto original = kernel::filesystem::ext2::directory_iterator{root_ext2_inode, *fs, *mount_state}; auto const first_name = std::string{&original->name_start, original->name_len}; WHEN("the iterator is copied, then only the original is advanced") |
