From: Jan Kara Date: Mon, 6 May 2024 17:41:18 +0000 (+0200) Subject: e2fsck: add tests for EA inodes X-Git-Tag: v1.47.1-wc1~125 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=eb01b6e22a44a26668c9f8645ca1889d67a643c1;p=tools%2Fe2fsprogs.git e2fsck: add tests for EA inodes Add tests exercising EA inodes and testing various types of corruption. Signed-off-by: Jan Kara Link: https://lore.kernel.org/r/20240506174132.12883-2-jack@suse.cz Signed-off-by: Theodore Ts'o --- diff --git a/tests/f_ea_inode_dir_ref/expect.1 b/tests/f_ea_inode_dir_ref/expect.1 new file mode 100644 index 0000000..fa6a872 --- /dev/null +++ b/tests/f_ea_inode_dir_ref/expect.1 @@ -0,0 +1,12 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Entry 'xlink' in / (2) references EA inode 13. +Clear? yes + +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 13/128 files (0.0% non-contiguous), 63/1024 blocks +Exit status is 1 diff --git a/tests/f_ea_inode_dir_ref/expect.2 b/tests/f_ea_inode_dir_ref/expect.2 new file mode 100644 index 0000000..24d059a --- /dev/null +++ b/tests/f_ea_inode_dir_ref/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 13/128 files (0.0% non-contiguous), 63/1024 blocks +Exit status is 0 diff --git a/tests/f_ea_inode_dir_ref/image.gz b/tests/f_ea_inode_dir_ref/image.gz new file mode 100644 index 0000000..483cc72 Binary files /dev/null and b/tests/f_ea_inode_dir_ref/image.gz differ diff --git a/tests/f_ea_inode_dir_ref/name b/tests/f_ea_inode_dir_ref/name new file mode 100644 index 0000000..e43cd69 --- /dev/null +++ b/tests/f_ea_inode_dir_ref/name @@ -0,0 +1 @@ +true ea inode referenced from a directory diff --git a/tests/f_ea_inode_disconnected/expect.1 b/tests/f_ea_inode_disconnected/expect.1 new file mode 100644 index 0000000..afc77ae --- /dev/null +++ b/tests/f_ea_inode_disconnected/expect.1 @@ -0,0 +1,23 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Unattached inode 13 +Connect to /lost+found? yes + +Inode 13 ref count is 2, should be 1. Fix? yes + +Pass 5: Checking group summary information +Inode bitmap differences: -12 +Fix? yes + +Free inodes count wrong for group #0 (115, counted=116). +Fix? yes + +Free inodes count wrong (115, counted=116). +Fix? yes + + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 12/128 files (0.0% non-contiguous), 63/1024 blocks +Exit status is 1 diff --git a/tests/f_ea_inode_disconnected/expect.2 b/tests/f_ea_inode_disconnected/expect.2 new file mode 100644 index 0000000..a67f944 --- /dev/null +++ b/tests/f_ea_inode_disconnected/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 12/128 files (0.0% non-contiguous), 63/1024 blocks +Exit status is 0 diff --git a/tests/f_ea_inode_disconnected/image b/tests/f_ea_inode_disconnected/image new file mode 100644 index 0000000..f24547c Binary files /dev/null and b/tests/f_ea_inode_disconnected/image differ diff --git a/tests/f_ea_inode_disconnected/image.gz b/tests/f_ea_inode_disconnected/image.gz new file mode 100644 index 0000000..f440f20 Binary files /dev/null and b/tests/f_ea_inode_disconnected/image.gz differ diff --git a/tests/f_ea_inode_disconnected/name b/tests/f_ea_inode_disconnected/name new file mode 100644 index 0000000..ce04192 --- /dev/null +++ b/tests/f_ea_inode_disconnected/name @@ -0,0 +1 @@ +ea inode that is not connected anywhere diff --git a/tests/f_ea_inode_no_feature/expect.1 b/tests/f_ea_inode_no_feature/expect.1 new file mode 100644 index 0000000..f6a232b --- /dev/null +++ b/tests/f_ea_inode_no_feature/expect.1 @@ -0,0 +1,12 @@ +Pass 1: Checking inodes, blocks, and sizes +Inode 12 references EA inode but superblock is missing EA_INODE feature +Fix? yes + +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 13/128 files (0.0% non-contiguous), 63/1024 blocks +Exit status is 1 diff --git a/tests/f_ea_inode_no_feature/expect.2 b/tests/f_ea_inode_no_feature/expect.2 new file mode 100644 index 0000000..24d059a --- /dev/null +++ b/tests/f_ea_inode_no_feature/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 13/128 files (0.0% non-contiguous), 63/1024 blocks +Exit status is 0 diff --git a/tests/f_ea_inode_no_feature/image.gz b/tests/f_ea_inode_no_feature/image.gz new file mode 100644 index 0000000..596d69a Binary files /dev/null and b/tests/f_ea_inode_no_feature/image.gz differ diff --git a/tests/f_ea_inode_no_feature/name b/tests/f_ea_inode_no_feature/name new file mode 100644 index 0000000..b357afb --- /dev/null +++ b/tests/f_ea_inode_no_feature/name @@ -0,0 +1 @@ +inode with ea inode but EA_INODE feature is not set diff --git a/tests/f_ea_inode_spurious_flag_dir/expect.1 b/tests/f_ea_inode_spurious_flag_dir/expect.1 new file mode 100644 index 0000000..19999ab --- /dev/null +++ b/tests/f_ea_inode_spurious_flag_dir/expect.1 @@ -0,0 +1,11 @@ +Pass 1: Checking inodes, blocks, and sizes +Inode 2 has the ea_inode flag set but is not a regular file. Clear flag? yes + +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 11/128 files (0.0% non-contiguous), 58/1024 blocks +Exit status is 1 diff --git a/tests/f_ea_inode_spurious_flag_dir/expect.2 b/tests/f_ea_inode_spurious_flag_dir/expect.2 new file mode 100644 index 0000000..a354770 --- /dev/null +++ b/tests/f_ea_inode_spurious_flag_dir/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 11/128 files (0.0% non-contiguous), 58/1024 blocks +Exit status is 0 diff --git a/tests/f_ea_inode_spurious_flag_dir/image b/tests/f_ea_inode_spurious_flag_dir/image new file mode 100644 index 0000000..f323b61 Binary files /dev/null and b/tests/f_ea_inode_spurious_flag_dir/image differ diff --git a/tests/f_ea_inode_spurious_flag_dir/image.gz b/tests/f_ea_inode_spurious_flag_dir/image.gz new file mode 100644 index 0000000..af19132 Binary files /dev/null and b/tests/f_ea_inode_spurious_flag_dir/image.gz differ diff --git a/tests/f_ea_inode_spurious_flag_dir/name b/tests/f_ea_inode_spurious_flag_dir/name new file mode 100644 index 0000000..8ae52cc --- /dev/null +++ b/tests/f_ea_inode_spurious_flag_dir/name @@ -0,0 +1 @@ +ea inode flag set on a directory