diff options
| author | Marcel Braun <marcel.braun@ost.ch> | 2026-05-30 10:58:59 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-07-14 19:47:00 +0200 |
| commit | 1b24bb01dae10e226a3daaa08e9b47d4724e47a2 (patch) | |
| tree | f8d87c9e5f4fe6d98f650d31893865c16c088c42 /kernel/kapi | |
| parent | 63874f63ac91267ed6c9011306b47689f6edbbbd (diff) | |
| download | kernel-1b24bb01dae10e226a3daaa08e9b47d4724e47a2.tar.xz kernel-1b24bb01dae10e226a3daaa08e9b47d4724e47a2.zip | |
Add tests
Diffstat (limited to 'kernel/kapi')
| -rw-r--r-- | kernel/kapi/filesystem.tests.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/kernel/kapi/filesystem.tests.cpp b/kernel/kapi/filesystem.tests.cpp index d1e01db6..2c2a8d1e 100644 --- a/kernel/kapi/filesystem.tests.cpp +++ b/kernel/kapi/filesystem.tests.cpp @@ -39,6 +39,30 @@ SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_vfs_fixture, "Kap REQUIRE(kapi::filesystem::close(fd)); } + THEN("files can be opened, written to, read from and closed again") + { + auto write_fd = kapi::filesystem::open("/information/info_1.txt"); + REQUIRE(write_fd >= 0); + + auto write_buffer = std::vector<std::byte>{std::byte{'H'}, std::byte{'e'}}; + + auto const bytes_written = kapi::filesystem::write(write_fd, write_buffer.data(), write_buffer.size()); + REQUIRE(bytes_written == 2); + + auto read_fd = kapi::filesystem::open("/information/info_1.txt"); + REQUIRE(read_fd >= 0); + + auto read_buffer = std::vector<std::byte>(6); + auto const bytes_read = kapi::filesystem::read(read_fd, read_buffer.data(), read_buffer.size()); + REQUIRE(bytes_read >= 0); + + std::string_view buffer_as_str{reinterpret_cast<char *>(read_buffer.data()), static_cast<size_t>(bytes_read)}; + REQUIRE(buffer_as_str == "Hefo_1"); + + REQUIRE(kapi::filesystem::close(write_fd) == 0); + REQUIRE(kapi::filesystem::close(read_fd) == 0); + } + THEN("files can be opened through absolute symbolic link, read and closed again") { auto fd = kapi::filesystem::open("/symlinks/information_directory_absolute/info_1.txt").value(); |
