aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/CMakeLists.txt1
-rw-r--r--kernel/include/kernel/test_support/filesystem/inode.hpp19
-rw-r--r--kernel/src/filesystem/dentry.tests.cpp8
-rw-r--r--kernel/src/test_support/filesystem/inode.cpp22
4 files changed, 46 insertions, 4 deletions
diff --git a/kernel/CMakeLists.txt b/kernel/CMakeLists.txt
index 53ed107..0025e4c 100644
--- a/kernel/CMakeLists.txt
+++ b/kernel/CMakeLists.txt
@@ -103,6 +103,7 @@ else()
"src/test_support/kapi/memory.cpp"
"src/test_support/devices/block_device.cpp"
"src/test_support/devices/character_device.cpp"
+ "src/test_support/filesystem/inode.cpp"
"src/test_support/log_buffer.cpp"
"src/test_support/output_device.cpp"
"src/test_support/page_mapper.cpp"
diff --git a/kernel/include/kernel/test_support/filesystem/inode.hpp b/kernel/include/kernel/test_support/filesystem/inode.hpp
new file mode 100644
index 0000000..6568f24
--- /dev/null
+++ b/kernel/include/kernel/test_support/filesystem/inode.hpp
@@ -0,0 +1,19 @@
+#ifndef TEACHOS_KERNEL_TEST_SUPPORT_FILESYSTEM_INODE_HPP
+#define TEACHOS_KERNEL_TEST_SUPPORT_FILESYSTEM_INODE_HPP
+
+#include "kernel/filesystem/inode.hpp"
+
+#include <cstddef>
+
+namespace kernel::tests::filesystem
+{
+ struct inode : kernel::filesystem::inode
+ {
+ inode();
+
+ auto read(void * buffer, size_t offset, size_t size) const -> size_t override;
+ auto write(void const * buffer, size_t offset, size_t size) -> size_t override;
+ };
+} // namespace kernel::tests::filesystem
+
+#endif
diff --git a/kernel/src/filesystem/dentry.tests.cpp b/kernel/src/filesystem/dentry.tests.cpp
index 94aa48d..a6620d3 100644
--- a/kernel/src/filesystem/dentry.tests.cpp
+++ b/kernel/src/filesystem/dentry.tests.cpp
@@ -1,7 +1,7 @@
#include "kernel/filesystem/dentry.hpp"
-#include "kernel/filesystem/devfs/inode.hpp"
#include "kernel/test_support/cpu.hpp"
+#include "kernel/test_support/filesystem/inode.hpp"
#include <kstd/memory>
#include <kstd/print>
@@ -12,7 +12,7 @@ SCENARIO("Dentry construction", "[filesystem][dentry]")
{
GIVEN("A parent dentry and inode")
{
- auto inode = kstd::make_shared<kernel::filesystem::devfs::inode>();
+ auto inode = kstd::make_shared<kernel::tests::filesystem::inode>();
auto parent_dentry = kstd::make_shared<kernel::filesystem::dentry>(nullptr, inode);
WHEN("constructing a dentry")
@@ -80,7 +80,7 @@ SCENARIO("Dentry child logic", "[filesystem][dentry]")
{
GIVEN("A parent dentry and inode")
{
- auto inode = kstd::make_shared<kernel::filesystem::devfs::inode>();
+ auto inode = kstd::make_shared<kernel::tests::filesystem::inode>();
auto parent_dentry = kstd::make_shared<kernel::filesystem::dentry>(nullptr, inode);
WHEN("adding child dentries")
@@ -108,7 +108,7 @@ SCENARIO("Dentry Flag logic", "[filesystem][dentry]")
{
GIVEN("A dentry")
{
- auto inode = kstd::make_shared<kernel::filesystem::devfs::inode>();
+ auto inode = kstd::make_shared<kernel::tests::filesystem::inode>();
auto dentry = kernel::filesystem::dentry{nullptr, inode, "test"};
WHEN("setting a flag")
diff --git a/kernel/src/test_support/filesystem/inode.cpp b/kernel/src/test_support/filesystem/inode.cpp
new file mode 100644
index 0000000..6352d5a
--- /dev/null
+++ b/kernel/src/test_support/filesystem/inode.cpp
@@ -0,0 +1,22 @@
+#include "kernel/test_support/filesystem/inode.hpp"
+
+#include "kernel/filesystem/inode.hpp"
+
+#include <cstddef>
+
+namespace kernel::tests::filesystem
+{
+ inode::inode()
+ : kernel::filesystem::inode(inode_kind::regular)
+ {}
+
+ auto inode::read(void *, size_t, size_t) const -> size_t
+ {
+ return 0;
+ }
+
+ auto inode::write(void const *, size_t, size_t) -> size_t
+ {
+ return 0;
+ }
+} // namespace kernel::tests::filesystem \ No newline at end of file