aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/filesystem
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/src/filesystem')
-rw-r--r--kernel/src/filesystem/file_descriptor_table.cpp12
-rw-r--r--kernel/src/filesystem/file_descriptor_table.tests.cpp62
-rw-r--r--kernel/src/filesystem/open_file_descriptor.cpp (renamed from kernel/src/filesystem/open_file_description.cpp)13
-rw-r--r--kernel/src/filesystem/open_file_descriptor.tests.cpp (renamed from kernel/src/filesystem/open_file_description.tests.cpp)57
-rw-r--r--kernel/src/filesystem/vfs.tests.cpp8
5 files changed, 75 insertions, 77 deletions
diff --git a/kernel/src/filesystem/file_descriptor_table.cpp b/kernel/src/filesystem/file_descriptor_table.cpp
index db7692b..9361f37 100644
--- a/kernel/src/filesystem/file_descriptor_table.cpp
+++ b/kernel/src/filesystem/file_descriptor_table.cpp
@@ -1,6 +1,6 @@
#include <kernel/filesystem/file_descriptor_table.hpp>
-#include <kernel/filesystem/open_file_description.hpp>
+#include <kernel/filesystem/open_file_descriptor.hpp>
#include <kapi/system.hpp>
@@ -37,9 +37,9 @@ namespace kernel::filesystem
return *global_file_descriptor_table;
}
- auto file_descriptor_table::add_file(kstd::shared_ptr<open_file_description> const & file_description) -> int
+ auto file_descriptor_table::add_file(kstd::shared_ptr<open_file_descriptor> const & file_descriptor) -> int
{
- if (!file_description)
+ if (!file_descriptor)
{
return -1;
}
@@ -47,15 +47,15 @@ namespace kernel::filesystem
auto it = std::ranges::find_if(m_open_files, [](auto const & open_file) { return open_file == nullptr; });
if (it != m_open_files.end())
{
- *it = file_description;
+ *it = file_descriptor;
return static_cast<int>(it - m_open_files.begin());
}
- m_open_files.push_back(file_description);
+ m_open_files.push_back(file_descriptor);
return static_cast<int>(m_open_files.size() - 1);
}
- auto file_descriptor_table::get_file(int fd) const -> kstd::shared_ptr<open_file_description>
+ auto file_descriptor_table::get_file(int fd) const -> kstd::shared_ptr<open_file_descriptor>
{
if (fd < 0)
{
diff --git a/kernel/src/filesystem/file_descriptor_table.tests.cpp b/kernel/src/filesystem/file_descriptor_table.tests.cpp
index 86ed7bf..dd04e00 100644
--- a/kernel/src/filesystem/file_descriptor_table.tests.cpp
+++ b/kernel/src/filesystem/file_descriptor_table.tests.cpp
@@ -1,6 +1,6 @@
#include <kernel/filesystem/file_descriptor_table.hpp>
-#include <kernel/filesystem/open_file_description.hpp>
+#include <kernel/filesystem/open_file_descriptor.hpp>
#include <kernel/test_support/filesystem/inode.hpp>
#include <kstd/memory>
@@ -11,18 +11,18 @@
SCENARIO("File descriptor table add/get file", "[filesystem][file_descriptor_table]")
{
- GIVEN("a file descriptor table and an open file description")
+ GIVEN("a file descriptor table and an open file descriptor")
{
auto & table = kernel::filesystem::file_descriptor_table::get();
auto inode = kstd::make_shared<kernel::tests::filesystem::inode>();
- auto file_description_1 = kstd::make_shared<kernel::filesystem::open_file_description>(inode);
- auto file_description_2 = kstd::make_shared<kernel::filesystem::open_file_description>(inode);
+ auto file_descriptor_1 = kstd::make_shared<kernel::filesystem::open_file_descriptor>(inode);
+ auto file_descriptor_2 = kstd::make_shared<kernel::filesystem::open_file_descriptor>(inode);
- WHEN("adding the open file description to the file descriptor table")
+ WHEN("adding the open file descriptor to the file descriptor table")
{
- auto fd_1 = table.add_file(file_description_1);
- auto fd_2 = table.add_file(file_description_2);
- auto fd_3 = table.add_file(file_description_2);
+ auto fd_1 = table.add_file(file_descriptor_1);
+ auto fd_2 = table.add_file(file_descriptor_2);
+ auto fd_3 = table.add_file(file_descriptor_2);
THEN("a valid file descriptor is returned")
{
@@ -31,67 +31,67 @@ SCENARIO("File descriptor table add/get file", "[filesystem][file_descriptor_tab
REQUIRE(fd_3 == 2);
}
- THEN("the file description can be retrieved using the returned file descriptor")
+ THEN("the file descriptor can be retrieved using the returned file descriptor")
{
- auto retrieved_description = table.get_file(fd_1);
- REQUIRE(retrieved_description == file_description_1);
+ auto retrieved_descriptor = table.get_file(fd_1);
+ REQUIRE(retrieved_descriptor == file_descriptor_1);
}
}
}
- GIVEN("a invalid open file description")
+ GIVEN("a invalid open file descriptor")
{
auto & table = kernel::filesystem::file_descriptor_table::get();
- THEN("adding a null file description returns an error code")
+ THEN("adding a null file descriptor returns an error code")
{
auto fd = table.add_file(nullptr);
REQUIRE(fd == -1);
}
- THEN("retrieving a file description with a negative file descriptor returns a null pointer")
+ THEN("retrieving a file descriptor with a negative file descriptor returns a null pointer")
{
- auto retrieved_description = table.get_file(-1);
- REQUIRE(retrieved_description == nullptr);
+ auto retrieved_descriptor = table.get_file(-1);
+ REQUIRE(retrieved_descriptor == nullptr);
}
- THEN("retrieving a file description with an out-of-bounds file descriptor returns a null pointer")
+ THEN("retrieving a file descriptor with an out-of-bounds file descriptor returns a null pointer")
{
- auto retrieved_description = table.get_file(1000);
- REQUIRE(retrieved_description == nullptr);
+ auto retrieved_descriptor = table.get_file(1000);
+ REQUIRE(retrieved_descriptor == nullptr);
}
}
}
SCENARIO("File descriptor table remove file", "[filesystem][file_descriptor_table]")
{
- GIVEN("a file descriptor table with an open file description")
+ GIVEN("a file descriptor table with an open file descriptor")
{
auto & table = kernel::filesystem::file_descriptor_table::get();
auto inode = kstd::make_shared<kernel::tests::filesystem::inode>();
- auto file_description = kstd::make_shared<kernel::filesystem::open_file_description>(inode);
- auto fd = table.add_file(file_description);
+ auto file_descriptor = kstd::make_shared<kernel::filesystem::open_file_descriptor>(inode);
+ auto fd = table.add_file(file_descriptor);
- WHEN("removing the file description using the file descriptor")
+ WHEN("removing the file descriptor using the file descriptor")
{
table.remove_file(fd);
- THEN("the file description can no longer be retrieved using the file descriptor")
+ THEN("the file descriptor can no longer be retrieved using the file descriptor")
{
- auto retrieved_description = table.get_file(fd);
- REQUIRE(retrieved_description == nullptr);
+ auto retrieved_descriptor = table.get_file(fd);
+ REQUIRE(retrieved_descriptor == nullptr);
}
}
- WHEN("removing a file description the other file descriptor keep the same index")
+ WHEN("removing a file descriptor the other file descriptor keep the same index")
{
- auto fd2 = table.add_file(file_description);
+ auto fd2 = table.add_file(file_descriptor);
table.remove_file(fd);
- THEN("the second file description can still be retrieved using its file descriptor")
+ THEN("the second file descriptor can still be retrieved using its file descriptor")
{
- auto retrieved_description = table.get_file(fd2);
- REQUIRE(retrieved_description == file_description);
+ auto retrieved_descriptor = table.get_file(fd2);
+ REQUIRE(retrieved_descriptor == file_descriptor);
}
}
}
diff --git a/kernel/src/filesystem/open_file_description.cpp b/kernel/src/filesystem/open_file_descriptor.cpp
index 3033e2b..25bffbd 100644
--- a/kernel/src/filesystem/open_file_description.cpp
+++ b/kernel/src/filesystem/open_file_descriptor.cpp
@@ -1,6 +1,5 @@
-#include <kernel/filesystem/open_file_description.hpp>
-
#include <kernel/filesystem/inode.hpp>
+#include <kernel/filesystem/open_file_descriptor.hpp>
#include <kstd/memory>
#include <kstd/os/error.hpp>
@@ -9,31 +8,31 @@
namespace kernel::filesystem
{
- open_file_description::open_file_description(kstd::shared_ptr<inode> const & inode)
+ open_file_descriptor::open_file_descriptor(kstd::shared_ptr<inode> const & inode)
: m_inode(inode)
, m_offset(0)
{
if (!inode)
{
- kstd::os::panic("[FILESYSTEM] open_file_description constructed with null inode.");
+ kstd::os::panic("[FILESYSTEM] open_file_descriptor constructed with null inode.");
}
}
- auto open_file_description::read(void * buffer, size_t size) -> size_t
+ auto open_file_descriptor::read(void * buffer, size_t size) -> size_t
{
auto read_bytes = m_inode->read(buffer, m_offset, size);
m_offset += read_bytes;
return read_bytes;
}
- auto open_file_description::write(void const * buffer, size_t size) -> size_t
+ auto open_file_descriptor::write(void const * buffer, size_t size) -> size_t
{
auto written_bytes = m_inode->write(buffer, m_offset, size);
m_offset += written_bytes;
return written_bytes;
}
- auto open_file_description::offset() const -> size_t
+ auto open_file_descriptor::offset() const -> size_t
{
return m_offset;
}
diff --git a/kernel/src/filesystem/open_file_description.tests.cpp b/kernel/src/filesystem/open_file_descriptor.tests.cpp
index ce3c81a..095e203 100644
--- a/kernel/src/filesystem/open_file_description.tests.cpp
+++ b/kernel/src/filesystem/open_file_descriptor.tests.cpp
@@ -1,5 +1,4 @@
-#include <kernel/filesystem/open_file_description.hpp>
-
+#include <kernel/filesystem/open_file_descriptor.hpp>
#include <kernel/filesystem/vfs.hpp>
#include <kernel/test_support/filesystem/inode.hpp>
#include <kernel/test_support/filesystem/storage_boot_module_vfs_fixture.hpp>
@@ -14,63 +13,63 @@
#include <filesystem>
#include <string_view>
-SCENARIO("Open file description construction", "[filesystem][open_file_description]")
+SCENARIO("Open file descriptor construction", "[filesystem][open_file_descriptor]")
{
- GIVEN("an inode and an open file description for that inode")
+ GIVEN("an inode and an open file descriptor for that inode")
{
auto inode = kstd::make_shared<kernel::tests::filesystem::inode>();
- auto file_description = kernel::filesystem::open_file_description{inode};
+ auto file_descriptor = kernel::filesystem::open_file_descriptor{inode};
THEN("the initial offset is zero")
{
- REQUIRE(file_description.offset() == 0);
+ REQUIRE(file_descriptor.offset() == 0);
}
}
}
-SCENARIO("Open file description read/write offset management", "[filesystem][open_file_description]")
+SCENARIO("Open file descriptor read/write offset management", "[filesystem][open_file_descriptor]")
{
- GIVEN("an inode that tracks read/write calls and an open file description for that inode")
+ GIVEN("an inode that tracks read/write calls and an open file descriptor for that inode")
{
auto inode = kstd::make_shared<kernel::tests::filesystem::inode>();
- auto file_description = kernel::filesystem::open_file_description{inode};
+ auto file_descriptor = kernel::filesystem::open_file_descriptor{inode};
THEN("the offset is updated correctly after reads")
{
- REQUIRE(file_description.read(nullptr, 100) == 100);
- REQUIRE(file_description.offset() == 100);
- REQUIRE(file_description.read(nullptr, 50) == 50);
- REQUIRE(file_description.offset() == 150);
+ REQUIRE(file_descriptor.read(nullptr, 100) == 100);
+ REQUIRE(file_descriptor.offset() == 100);
+ REQUIRE(file_descriptor.read(nullptr, 50) == 50);
+ REQUIRE(file_descriptor.offset() == 150);
}
THEN("the offset is updated correctly after writes")
{
- REQUIRE(file_description.write(nullptr, 200) == 200);
- REQUIRE(file_description.offset() == 200);
- REQUIRE(file_description.write(nullptr, 25) == 25);
- REQUIRE(file_description.offset() == 225);
+ REQUIRE(file_descriptor.write(nullptr, 200) == 200);
+ REQUIRE(file_descriptor.offset() == 200);
+ REQUIRE(file_descriptor.write(nullptr, 25) == 25);
+ REQUIRE(file_descriptor.offset() == 225);
}
THEN("reads and writes both update the same offset")
{
- REQUIRE(file_description.read(nullptr, 10) == 10);
- REQUIRE(file_description.offset() == 10);
- REQUIRE(file_description.write(nullptr, 20) == 20);
- REQUIRE(file_description.offset() == 30);
- REQUIRE(file_description.read(nullptr, 5) == 5);
- REQUIRE(file_description.offset() == 35);
- REQUIRE(file_description.write(nullptr, 15) == 15);
- REQUIRE(file_description.offset() == 50);
+ REQUIRE(file_descriptor.read(nullptr, 10) == 10);
+ REQUIRE(file_descriptor.offset() == 10);
+ REQUIRE(file_descriptor.write(nullptr, 20) == 20);
+ REQUIRE(file_descriptor.offset() == 30);
+ REQUIRE(file_descriptor.read(nullptr, 5) == 5);
+ REQUIRE(file_descriptor.offset() == 35);
+ REQUIRE(file_descriptor.write(nullptr, 15) == 15);
+ REQUIRE(file_descriptor.offset() == 50);
}
}
}
-SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_vfs_fixture,
- "Open file description read with real image", "[filesystem][open_file_description][img]")
+SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_vfs_fixture, "Open file descriptor read with real image",
+ "[filesystem][open_file_descriptor][img]")
{
auto const image_path = std::filesystem::path{KERNEL_TEST_ASSETS_DIR} / "ext2_1KB_fs.img";
- GIVEN("an open file description for a file in a real image")
+ GIVEN("an open file descriptor for a file in a real image")
{
REQUIRE(std::filesystem::exists(image_path));
REQUIRE_NOTHROW(setup_modules_from_img_and_init_vfs({"test_img_module"}, {image_path}));
@@ -78,7 +77,7 @@ SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_vfs_fixture,
auto & vfs = kernel::filesystem::vfs::get();
auto dentry = vfs.open("/information/info_1.txt");
REQUIRE(dentry != nullptr);
- auto ofd = kstd::make_shared<kernel::filesystem::open_file_description>(dentry->get_inode());
+ auto ofd = kstd::make_shared<kernel::filesystem::open_file_descriptor>(dentry->get_inode());
THEN("the file can be read and the offset is updated")
{
diff --git a/kernel/src/filesystem/vfs.tests.cpp b/kernel/src/filesystem/vfs.tests.cpp
index 9cadb4d..979ea42 100644
--- a/kernel/src/filesystem/vfs.tests.cpp
+++ b/kernel/src/filesystem/vfs.tests.cpp
@@ -1,6 +1,6 @@
#include <kernel/filesystem/vfs.hpp>
-#include <kernel/filesystem/open_file_description.hpp>
+#include <kernel/filesystem/open_file_descriptor.hpp>
#include <kernel/test_support/filesystem/storage_boot_module_vfs_fixture.hpp>
#include <kstd/memory>
@@ -185,7 +185,7 @@ SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_vfs_fixture, "VFS
auto dentry = vfs.open("/information/sheep_1.txt");
REQUIRE(dentry != nullptr);
- auto sheep_1_ofd = kstd::make_shared<kernel::filesystem::open_file_description>(dentry->get_inode());
+ auto sheep_1_ofd = kstd::make_shared<kernel::filesystem::open_file_descriptor>(dentry->get_inode());
kstd::vector<std::byte> buffer(7);
auto bytes_read = sheep_1_ofd->read(buffer.data(), buffer.size());
@@ -210,8 +210,8 @@ SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_vfs_fixture, "VFS
REQUIRE(sheep_1 != nullptr);
REQUIRE(goat_1 != nullptr);
- auto sheep_1_ofd = kstd::make_shared<kernel::filesystem::open_file_description>(sheep_1->get_inode());
- auto goat_1_ofd = kstd::make_shared<kernel::filesystem::open_file_description>(goat_1->get_inode());
+ auto sheep_1_ofd = kstd::make_shared<kernel::filesystem::open_file_descriptor>(sheep_1->get_inode());
+ auto goat_1_ofd = kstd::make_shared<kernel::filesystem::open_file_descriptor>(goat_1->get_inode());
kstd::vector<std::byte> sheep_buffer(7);
auto bytes_read = sheep_1_ofd->read(sheep_buffer.data(), sheep_buffer.size());