diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/kernel/filesystems/ext2/filesystem.tests.cpp | 13 | ||||
| -rw-r--r-- | kernel/kernel/filesystems/ext2/inode.tests.cpp | 5 | ||||
| -rw-r--r-- | kernel/kernel/test_support/filesystems/ext2.cpp | 1 |
3 files changed, 12 insertions, 7 deletions
diff --git a/kernel/kernel/filesystems/ext2/filesystem.tests.cpp b/kernel/kernel/filesystems/ext2/filesystem.tests.cpp index c7130e99..7477a51b 100644 --- a/kernel/kernel/filesystems/ext2/filesystem.tests.cpp +++ b/kernel/kernel/filesystems/ext2/filesystem.tests.cpp @@ -273,6 +273,7 @@ SCENARIO("Ext2 block writing includes direct and all indirect levels", "[filesys superblock.inodes_per_group = 32; superblock.rev_level = kernel::filesystems::ext2::constants::dynamic_revision; superblock.inode_size = 128; + superblock.first_data_block = 1; auto block_group_descriptor = kernel::filesystems::ext2::block_group_descriptor{}; block_group_descriptor.block_bitmap = 255; @@ -322,7 +323,7 @@ SCENARIO("Ext2 block writing includes direct and all indirect levels", "[filesys REQUIRE(write_global_block_number_to_inode_block_index(singly_start, inode_data, singly_global_block_number, *driver_state, batch)); - REQUIRE(inode_data.block[12] == 16); + REQUIRE(inode_data.block[12] == 17); REQUIRE(read_u32(static_cast<kstd::bytes>(inode_data.block[12]) * block_size.value) == singly_global_block_number); @@ -333,18 +334,18 @@ SCENARIO("Ext2 block writing includes direct and all indirect levels", "[filesys REQUIRE(write_global_block_number_to_inode_block_index(doubly_start, inode_data, doubly_global_block_number, *driver_state, batch)); - REQUIRE(inode_data.block[13] == 17); + REQUIRE(inode_data.block[13] == 18); auto const doubly_leaf_table = read_u32(static_cast<size_t>(inode_data.block[13]) * block_size); - REQUIRE(doubly_leaf_table == 18); + REQUIRE(doubly_leaf_table == 19); REQUIRE(read_u32(static_cast<size_t>(doubly_leaf_table) * block_size) == doubly_global_block_number); REQUIRE(write_global_block_number_to_inode_block_index(triply_start, inode_data, triply_global_block_number, *driver_state, batch)); - REQUIRE(inode_data.block[14] == 19); + REQUIRE(inode_data.block[14] == 20); auto const triply_middle_table = read_u32(static_cast<size_t>(inode_data.block[14]) * block_size); - REQUIRE(triply_middle_table == 20); + REQUIRE(triply_middle_table == 21); auto const triply_leaf_table = read_u32(static_cast<size_t>(triply_middle_table) * block_size); - REQUIRE(triply_leaf_table == 21); + REQUIRE(triply_leaf_table == 22); REQUIRE(read_u32(static_cast<size_t>(triply_leaf_table) * block_size) == triply_global_block_number); auto inode = kernel::filesystems::ext2::inode{42, inode_data}; diff --git a/kernel/kernel/filesystems/ext2/inode.tests.cpp b/kernel/kernel/filesystems/ext2/inode.tests.cpp index d7d27553..bdfb661d 100644 --- a/kernel/kernel/filesystems/ext2/inode.tests.cpp +++ b/kernel/kernel/filesystems/ext2/inode.tests.cpp @@ -422,6 +422,7 @@ SCENARIO("Ext2 inode write across block boundaries", "[filesystem][ext2][inode]" superblock.inode_size = 128; superblock.rev_level = 1; superblock.free_blocks_count = 64 - 15; + superblock.first_data_block = 1; auto block_group_descriptor = kernel::filesystems::ext2::block_group_descriptor{}; block_group_descriptor.inode_table = 5; @@ -544,7 +545,7 @@ SCENARIO("Ext2 inode write across block boundaries", "[filesystem][ext2][inode]" REQUIRE(inode_data.blocks + 2 == read_inode.data().blocks); auto expected_blocks = inode_data.block; - expected_blocks[2] = 16; + expected_blocks[2] = 17; auto const read_blocks = read_inode.data().block; REQUIRE(expected_blocks == read_blocks); } @@ -569,6 +570,7 @@ SCENARIO("Ext2 inode get_size() and set_size() handles size correctly depending superblock.blocks_per_group = 64; superblock.inodes_per_group = 32; superblock.inode_size = 128; + superblock.first_data_block = 1; GIVEN("an ext2 inode with good old revision and inode_data.size = 256, inode_data.dir_acl = 32") { @@ -788,6 +790,7 @@ SCENARIO("Ext2 inode read_directory skips deleted entries and paginates correctl superblock.inodes_per_group = 32; superblock.inode_size = 128; superblock.rev_level = 1; + superblock.first_data_block = 1; auto block_group_descriptor = kernel::filesystems::ext2::block_group_descriptor{}; block_group_descriptor.inode_table = 5; diff --git a/kernel/kernel/test_support/filesystems/ext2.cpp b/kernel/kernel/test_support/filesystems/ext2.cpp index d9008ade..92f56aef 100644 --- a/kernel/kernel/test_support/filesystems/ext2.cpp +++ b/kernel/kernel/test_support/filesystems/ext2.cpp @@ -47,6 +47,7 @@ namespace kernel::tests::filesystems::ext2 superblock.inodes_per_group = 32; superblock.rev_level = 1; superblock.inode_size = 128; + superblock.first_data_block = 1; setup_mock_ext2_layout(device, superblock); } |
