aboutsummaryrefslogtreecommitdiff
path: root/kernel/kapi/filesystem.tests.cpp
diff options
context:
space:
mode:
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();