blob: 378437e67bdfe621b4f96cc93f006143d74afe2a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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);
}
}
}
}
|