aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/devices/block_device.tests.cpp
diff options
context:
space:
mode:
authorLukas Oesch <lukasoesch20@gmail.com>2026-04-08 19:28:54 +0200
committerLukas Oesch <lukasoesch20@gmail.com>2026-04-11 08:05:52 +0200
commit8e9e9ffd0528ffa554c336871f1a484c15613bfc (patch)
tree954446df8ee3b20ffe2486b03e5113ebd2622444 /kernel/src/devices/block_device.tests.cpp
parentad2a744960ef8359a40e25c81f2b5fee0d8952c4 (diff)
downloadteachos-8e9e9ffd0528ffa554c336871f1a484c15613bfc.tar.xz
teachos-8e9e9ffd0528ffa554c336871f1a484c15613bfc.zip
add block_device tests
Diffstat (limited to 'kernel/src/devices/block_device.tests.cpp')
-rw-r--r--kernel/src/devices/block_device.tests.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/kernel/src/devices/block_device.tests.cpp b/kernel/src/devices/block_device.tests.cpp
new file mode 100644
index 0000000..378437e
--- /dev/null
+++ b/kernel/src/devices/block_device.tests.cpp
@@ -0,0 +1,46 @@
+#include "kernel/test_support/devices/block_device.hpp"
+
+#include "kernel/test_support/cpu.hpp"
+
+#include <kstd/memory>
+#include <kstd/print>
+#include <kstd/string>
+#include <kstd/vector>
+
+#include <catch2/catch_test_macros.hpp>
+
+#include <cstddef>
+
+SCENARIO("Block device construction", "[devices][block_device]")
+{
+ GIVEN("parameters for a block device")
+ {
+ size_t major = 1;
+ size_t minor = 0;
+ kstd::string name = "test_block_device";
+ size_t block_size = 512;
+
+ WHEN("constructing a block device")
+ {
+ auto device =
+ kstd::make_shared<kernel::tests::devices::block_device>(major, minor, name, block_size, 3 * block_size);
+
+ THEN("the block device has the correct properties")
+ {
+ REQUIRE(device->major() == major);
+ REQUIRE(device->minor() == minor);
+ REQUIRE(device->name() == name);
+ REQUIRE(device->block_size() == block_size);
+ REQUIRE(device->capacity() == 3 * 512);
+ }
+ }
+
+ WHEN("constructing a block device with zero block size")
+ {
+ THEN("the constructor panics")
+ {
+ REQUIRE_THROWS_AS((kernel::tests::devices::block_device(major, minor, name, 0)), kernel::tests::cpu::halt);
+ }
+ }
+ }
+}