#include "kernel/test_support/devices/block_device.hpp" #include "kernel/test_support/cpu.hpp" #include #include #include #include #include #include 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(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); } } } }