diff options
Diffstat (limited to 'kernel/src/test_support/filesystem')
9 files changed, 0 insertions, 288 deletions
diff --git a/kernel/src/test_support/filesystem/ext2.cpp b/kernel/src/test_support/filesystem/ext2.cpp deleted file mode 100644 index 52b6efe7..00000000 --- a/kernel/src/test_support/filesystem/ext2.cpp +++ /dev/null @@ -1,68 +0,0 @@ -#include <kernel/test_support/filesystem/ext2.hpp> - -#include <kernel/filesystem/ext2/block_group_descriptor.hpp> -#include <kernel/filesystem/ext2/filesystem.hpp> -#include <kernel/filesystem/ext2/inode.hpp> -#include <kernel/filesystem/ext2/superblock.hpp> -#include <kernel/test_support/devices/block_device.hpp> - -#include <cstdint> -#include <cstring> - -namespace kernel::tests::filesystem::ext2 -{ - namespace - { - constexpr uint32_t root_directory_data_block = 20; - } // namespace - - auto write_bytes(kernel::tests::devices::block_device & device, size_t offset, void const * source, size_t size) - -> void - { - auto const required_size = offset + size; - if (device.data.size() < required_size) - { - device.data.resize(required_size, 0); - } - - std::memcpy(device.data.data() + offset, source, size); - } - - auto write_u32(kernel::tests::devices::block_device & device, size_t offset, uint32_t value) -> void - { - write_bytes(device, offset, &value, sizeof(value)); - } - - auto setup_mock_ext2_layout(kernel::tests::devices::block_device & device) -> void - { - auto superblock = kernel::filesystem::ext2::superblock{}; - superblock.magic = kernel::filesystem::ext2::constants::magic_number; - superblock.log_block_size = 0; - superblock.blocks_count = 64; - superblock.blocks_per_group = 64; - superblock.inodes_per_group = 32; - superblock.rev_level = 1; - superblock.inode_size = 128; - setup_mock_ext2_layout(device, superblock); - } - - auto setup_mock_ext2_layout(kernel::tests::devices::block_device & device, - kernel::filesystem::ext2::superblock const & superblock) -> void - { - write_bytes(device, kernel::filesystem::ext2::constants::superblock_offset, &superblock, sizeof(superblock)); - - auto group_descriptor = kernel::filesystem::ext2::block_group_descriptor{}; - group_descriptor.inode_table = 5; - write_bytes(device, 2048, &group_descriptor, sizeof(group_descriptor)); - - auto root_inode_data = kernel::filesystem::ext2::inode_data{}; - root_inode_data.mode = kernel::filesystem::ext2::constants::mode_directory; - root_inode_data.blocks = 2; - root_inode_data.block[0] = root_directory_data_block; - - auto const root_inode_offset = - static_cast<size_t>(group_descriptor.inode_table) * kernel::filesystem::ext2::constants::base_block_size + - (kernel::filesystem::ext2::constants::root_inode_number - 1) * superblock.inode_size; - write_bytes(device, root_inode_offset, &root_inode_data, sizeof(root_inode_data)); - } -} // namespace kernel::tests::filesystem::ext2
\ No newline at end of file diff --git a/kernel/src/test_support/filesystem/filesystem.cpp b/kernel/src/test_support/filesystem/filesystem.cpp deleted file mode 100644 index ec706077..00000000 --- a/kernel/src/test_support/filesystem/filesystem.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include <kernel/test_support/filesystem/filesystem.hpp> - -#include <kernel/filesystem/inode.hpp> -#include <kernel/test_support/filesystem/inode.hpp> - -#include <kstd/memory> - -#include <string_view> - -namespace kernel::tests::filesystem -{ - auto filesystem::lookup(kstd::shared_ptr<kernel::filesystem::inode> const &, std::string_view) const - -> kstd::shared_ptr<kernel::filesystem::inode> - { - return kstd::make_shared<inode>(); - } -} // namespace kernel::tests::filesystem
\ No newline at end of file diff --git a/kernel/src/test_support/filesystem/inode.cpp b/kernel/src/test_support/filesystem/inode.cpp deleted file mode 100644 index 0c8d9563..00000000 --- a/kernel/src/test_support/filesystem/inode.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include <kernel/test_support/filesystem/inode.hpp> - -#include <kernel/filesystem/inode.hpp> - -#include <cstddef> - -namespace kernel::tests::filesystem -{ - auto inode::read(void *, size_t, size_t size) const -> size_t - { - return size; - } - - auto inode::write(void const *, size_t, size_t size) -> size_t - { - return size; - } - - auto inode::is_regular() const -> bool - { - return true; - } -} // namespace kernel::tests::filesystem
\ No newline at end of file diff --git a/kernel/src/test_support/filesystem/storage_boot_module_fixture.cpp b/kernel/src/test_support/filesystem/storage_boot_module_fixture.cpp deleted file mode 100644 index aabaaceb..00000000 --- a/kernel/src/test_support/filesystem/storage_boot_module_fixture.cpp +++ /dev/null @@ -1,139 +0,0 @@ -#include <kernel/test_support/filesystem/storage_boot_module_fixture.hpp> - -#include <kernel/devices/storage/management.hpp> -#include <kernel/test_support/boot_modules.hpp> -#include <kernel/test_support/devices/storage/management.hpp> - -#include <kapi/boot_module/boot_module.hpp> -#include <kapi/boot_modules.hpp> -#include <kapi/memory.hpp> - -#include <cstddef> -#include <fcntl.h> -#include <filesystem> -#include <format> -#include <stdexcept> -#include <string> -#include <unistd.h> -#include <utility> -#include <vector> - -#include <sys/mman.h> -#include <sys/stat.h> - -namespace kernel::tests::filesystem -{ - storage_boot_module_fixture::mapped_image::mapped_image(std::filesystem::path path) - : file_descriptor(::open(path.c_str(), O_RDWR)) - { - if (file_descriptor < 0) - { - throw std::runtime_error{"Failed to open image file for test boot module: " + path.string()}; - } - - struct stat statistics{}; - if (::fstat(file_descriptor, &statistics) < 0) - { - throw std::runtime_error{"Failed to get statistics for image file: " + path.string()}; - } - - size = static_cast<std::size_t>(statistics.st_size); - - mapping = static_cast<std::byte *>(::mmap(nullptr, size, PROT_READ | PROT_WRITE, MAP_PRIVATE, file_descriptor, 0)); - if (mapping == MAP_FAILED) - { - throw std::runtime_error{"Failed to map image file for test boot module: " + path.string()}; - } - } - - storage_boot_module_fixture::mapped_image::~mapped_image() - { - if (mapping != nullptr) - { - ::munmap(mapping, size); - } - if (file_descriptor >= 0) - { - ::close(file_descriptor); - } - } - - storage_boot_module_fixture::mapped_image::mapped_image(mapped_image && other) noexcept - : file_descriptor{std::exchange(other.file_descriptor, -1)} - , mapping{std::exchange(other.mapping, nullptr)} - , size{std::exchange(other.size, 0)} - {} - - auto storage_boot_module_fixture::mapped_image::operator=(mapped_image && other) noexcept -> mapped_image & - { - if (this != &other) - { - file_descriptor = std::exchange(other.file_descriptor, -1); - mapping = std::exchange(other.mapping, nullptr); - size = std::exchange(other.size, 0); - } - return *this; - } - - storage_boot_module_fixture::~storage_boot_module_fixture() - { - kernel::tests::devices::storage::management::deinit(); - kernel::tests::boot_modules::deinit(); - } - - auto storage_boot_module_fixture::setup_modules(std::size_t module_count, std::size_t module_size) -> void - { - m_module_names.clear(); - m_module_data.clear(); - m_registry = {}; - - m_module_names.reserve(module_count); - m_module_data.reserve(module_count); - - for (std::size_t i = 0; i < module_count; ++i) - { - m_module_names.push_back(std::format("test_mod{}", i)); - m_module_data.emplace_back(module_size, std::byte{static_cast<unsigned char>(0x40 + (i % 16))}); - } - - for (std::size_t i = 0; i < module_count; ++i) - { - m_registry.add_boot_module(kapi::boot_modules::boot_module{ - m_module_names[i].c_str(), kapi::memory::linear_address{m_module_data[i].data()}, m_module_data[i].size()}); - } - - kapi::boot_modules::set_boot_module_registry(m_registry); - kernel::devices::storage::management::init(); - } - - auto storage_boot_module_fixture::setup_modules_from_img(std::vector<std::string> const & module_names, - std::vector<std::filesystem::path> const & img_paths) -> void - { - m_module_names.clear(); - m_module_data.clear(); - m_registry = {}; - - if (module_names.size() != img_paths.size()) - { - throw std::invalid_argument{"Module names and image paths vectors must have the same size."}; - } - - for (size_t i = 0; i < module_names.size(); ++i) - { - setup_module_from_img(module_names[i], img_paths[i]); - } - - kapi::boot_modules::set_boot_module_registry(m_registry); - kernel::devices::storage::management::init(); - } - - auto storage_boot_module_fixture::setup_module_from_img(std::string const & module_name, - std::filesystem::path const & img_path) -> void - { - m_module_names.push_back(module_name); - auto & mapped_image = m_mapped_images.emplace_back(img_path); - - m_registry.add_boot_module(kapi::boot_modules::boot_module{ - m_module_names.back().c_str(), kapi::memory::linear_address{mapped_image.mapping}, mapped_image.size}); - } -} // namespace kernel::tests::filesystem
\ No newline at end of file diff --git a/kernel/src/test_support/filesystem/storage_boot_module_vfs_fixture.cpp b/kernel/src/test_support/filesystem/storage_boot_module_vfs_fixture.cpp deleted file mode 100644 index 02ccfec3..00000000 --- a/kernel/src/test_support/filesystem/storage_boot_module_vfs_fixture.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#include <kernel/test_support/filesystem/storage_boot_module_vfs_fixture.hpp> - -#include <kernel/filesystem/vfs.hpp> -#include <kernel/test_support/filesystem/vfs.hpp> - -#include <cstddef> -#include <filesystem> -#include <string> -#include <vector> - -namespace kernel::tests::filesystem -{ - storage_boot_module_vfs_fixture::~storage_boot_module_vfs_fixture() - { - kernel::tests::filesystem::vfs::deinit(); - } - - auto storage_boot_module_vfs_fixture::setup_modules_and_init_vfs(std::size_t module_count, std::size_t module_size) - -> void - { - setup_modules(module_count, module_size); - kernel::filesystem::vfs::init(); - } - - auto storage_boot_module_vfs_fixture::setup_modules_from_img_and_init_vfs( - std::vector<std::string> const & module_names, std::vector<std::filesystem::path> const & img_paths) -> void - { - setup_modules_from_img(module_names, img_paths); - kernel::filesystem::vfs::init(); - } -} // namespace kernel::tests::filesystem
\ No newline at end of file diff --git a/kernel/src/test_support/filesystem/test_assets/README.md b/kernel/src/test_support/filesystem/test_assets/README.md deleted file mode 120000 index 718a2275..00000000 --- a/kernel/src/test_support/filesystem/test_assets/README.md +++ /dev/null @@ -1 +0,0 @@ -/arch/x86_64/support/modules/README.md
\ No newline at end of file diff --git a/kernel/src/test_support/filesystem/test_assets/ext2_1KB_fs.img b/kernel/src/test_support/filesystem/test_assets/ext2_1KB_fs.img deleted file mode 100644 index a5202ca3..00000000 --- a/kernel/src/test_support/filesystem/test_assets/ext2_1KB_fs.img +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:98ac3c1be872806e25fb14eea168ca79a91959f4e6a5ac3d00c5d8224c1f73a3 -size 10485760 diff --git a/kernel/src/test_support/filesystem/test_assets/ext2_2KB_fs.img b/kernel/src/test_support/filesystem/test_assets/ext2_2KB_fs.img deleted file mode 100644 index 7f297f07..00000000 --- a/kernel/src/test_support/filesystem/test_assets/ext2_2KB_fs.img +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6d9e872916e7d9107b321cc007e151899d5f19400a694666c0b24d482aef61ca -size 5242880 diff --git a/kernel/src/test_support/filesystem/test_assets/ext2_4KB_fs.img b/kernel/src/test_support/filesystem/test_assets/ext2_4KB_fs.img deleted file mode 100644 index c3f6dafb..00000000 --- a/kernel/src/test_support/filesystem/test_assets/ext2_4KB_fs.img +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:026ca30269dbd80beb2dd74677c94676d1d4a7f6b5fe406c4ddb82836ba2dc00 -size 10485760 |
