From 6d3f75685368c62037006e426c89a932072fc0e9 Mon Sep 17 00:00:00 2001 From: Lukas Oesch Date: Sun, 31 May 2026 14:31:44 +0200 Subject: improve tests --- kernel/kernel/filesystem/ext2/filesystem.tests.cpp | 5 +++++ kernel/kernel/filesystem/ext2/inode.tests.cpp | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'kernel') 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(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(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(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()); -- cgit v1.2.3