aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Oesch <lukasoesch20@gmail.com>2026-05-31 14:31:44 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-07-14 20:23:21 +0200
commit6d3f75685368c62037006e426c89a932072fc0e9 (patch)
treeec477717f0d03698910f079dd2e86525e8f52f9c
parent34079d19ab57a38dad67bcd001ff2467e7bd9e99 (diff)
downloadkernel-6d3f75685368c62037006e426c89a932072fc0e9.tar.xz
kernel-6d3f75685368c62037006e426c89a932072fc0e9.zip
improve tests
-rw-r--r--kernel/kernel/filesystem/ext2/filesystem.tests.cpp5
-rw-r--r--kernel/kernel/filesystem/ext2/inode.tests.cpp5
2 files changed, 8 insertions, 2 deletions
diff --git a/kernel/kernel/filesystem/ext2/filesystem.tests.cpp b/kernel/kernel/filesystem/ext2/filesystem.tests.cpp
index 62fc14c1..2528db4b 100644
--- a/kernel/kernel/filesystem/ext2/filesystem.tests.cpp
+++ b/kernel/kernel/filesystem/ext2/filesystem.tests.cpp
@@ -207,6 +207,11 @@ SCENARIO("Ext2 block writing includes direct and all indirect levels", "[filesys
REQUIRE(inode_data.block[12] == 16);
REQUIRE(read_u32(static_cast<size_t>(inode_data.block[12]) * block_size) == singly_global_block_number);
+ REQUIRE(fs.write_global_block_number_to_inode_block_index(singly_start + 1, inode_data,
+ singly_global_block_number + 1));
+ REQUIRE(read_u32(static_cast<size_t>(inode_data.block[12]) * block_size + 1 * sizeof(uint32_t)) ==
+ singly_global_block_number + 1);
+
REQUIRE(fs.write_global_block_number_to_inode_block_index(doubly_start, inode_data, doubly_global_block_number));
REQUIRE(inode_data.block[13] == 17);
auto const doubly_leaf_table = read_u32(static_cast<size_t>(inode_data.block[13]) * block_size);
diff --git a/kernel/kernel/filesystem/ext2/inode.tests.cpp b/kernel/kernel/filesystem/ext2/inode.tests.cpp
index 4d5038f7..7e293d14 100644
--- a/kernel/kernel/filesystem/ext2/inode.tests.cpp
+++ b/kernel/kernel/filesystem/ext2/inode.tests.cpp
@@ -438,7 +438,8 @@ SCENARIO("Ext2 inode write across block boundaries", "[filesystem][ext2][inode]"
REQUIRE(current_blocks == read_blocks);
}
- THEN("writing over block boundaries updates backing device no additional blocks allocated")
+ THEN("writing over the current size (within an existing block) updates the size but does not allocate additional "
+ "blocks")
{
auto const offset = block_size - 4;
auto const bytes_written = inode.write(buffer.data(), offset, buffer.size());
@@ -461,7 +462,7 @@ SCENARIO("Ext2 inode write across block boundaries", "[filesystem][ext2][inode]"
REQUIRE(current_blocks == read_blocks);
}
- THEN("writing over the current size and over allocated blocks updates backing device and allocates a new block")
+ THEN("writing over the current size and over allocated blocks updates size and allocates a new block")
{
auto const offset = block_size * 2 - 4;
auto const bytes_written = inode.write(buffer.data(), offset, buffer.size());