aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/filesystem/devfs/inode.tests.cpp
blob: 50e34a7003e40c042b0268ed5fd04712c2171a13 (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
47
48
49
50
51
52
53
54
#include "kernel/filesystem/devfs/inode.hpp"

#include <kstd/memory>
#include <kstd/print>
#include <kstd/vector>

#include <catch2/catch_test_macros.hpp>

#include <cstdint>

SCENARIO("Devfs inode creation", "[filesystem][devfs][inode]")
{
  GIVEN("a devfs inode")
  {
    auto inode = kernel::filesystem::devfs::inode{};

    THEN("the inode has the correct kind")
    {
      REQUIRE(inode.is_directory());
      REQUIRE_FALSE(inode.is_device());
      REQUIRE_FALSE(inode.is_regular());
    }
  }
}

SCENARIO("Devfs inode read/write", "[filesystem][devfs][inode]")
{
  GIVEN("a devfs inode")
  {
    auto inode = kernel::filesystem::devfs::inode{};

    WHEN("attempting to read from the devfs inode")
    {
      kstd::vector<uint8_t> buffer(512);
      auto bytes_read = inode.read(buffer.data(), 0, buffer.size());

      THEN("no bytes are read")
      {
        REQUIRE(bytes_read == 0);
      }
    }

    WHEN("attempting to write to the devfs inode")
    {
      kstd::vector<uint8_t> buffer(512);
      auto bytes_written = inode.write(buffer.data(), 0, buffer.size());

      THEN("no bytes are written")
      {
        REQUIRE(bytes_written == 0);
      }
    }
  }
}