aboutsummaryrefslogtreecommitdiff
path: root/kernel/kapi/filesystem.tests.cpp
diff options
context:
space:
mode:
authorMarcel Braun <marcel.braun@ost.ch>2026-05-30 10:58:59 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-07-14 19:47:00 +0200
commit1b24bb01dae10e226a3daaa08e9b47d4724e47a2 (patch)
treef8d87c9e5f4fe6d98f650d31893865c16c088c42 /kernel/kapi/filesystem.tests.cpp
parent63874f63ac91267ed6c9011306b47689f6edbbbd (diff)
downloadkernel-1b24bb01dae10e226a3daaa08e9b47d4724e47a2.tar.xz
kernel-1b24bb01dae10e226a3daaa08e9b47d4724e47a2.zip
Add tests
Diffstat (limited to 'kernel/kapi/filesystem.tests.cpp')
-rw-r--r--kernel/kapi/filesystem.tests.cpp24
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();