tests: add new test f_extent_oobounds
A message that is not in the archive (sent off-list or not yet received): [email protected]
PATCH 1/1 tests: add new test f_extent_oobounds
This tests creates a file system where the last entry in one leaf block overlaps with logical block range in the first entry of the next leaf block.
--- tests/f_extent_oobounds/expect.1 | 24 +++++++++++++++++++++++ tests/f_extent_oobounds/expect.2 | 7 +++++++ tests/f_extent_oobounds/script | 42 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 tests/f_extent_oobounds/expect.1 create mode 100644 tests/f_extent_oobounds/expect.2 create mode 100644 tests/f_extent_oobounds/script
tests/f_extent_oobounds/expect.1 new file +24 -0
@@ -0,0 +1,24 @@ +Pass 1: Checking inodes, blocks, and sizes +Inode 12, end of extent exceeds allowed value + (logical block 15, physical block 200, len 30) +Clear? yes + +Inode 12, i_blocks is 154, should be 94. Fix? yes + +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Block bitmap differences: -(200--229) +Fix? yes + +Free blocks count wrong for group #0 (156, counted=186). +Fix? yes + +Free blocks count wrong (156, counted=186). +Fix? yes + + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 12/32 files (8.3% non-contiguous), 70/256 blocks +Exit status is 1
tests/f_extent_oobounds/expect.2 new file +7 -0
@@ -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/32 files (8.3% non-contiguous), 70/256 blocks +Exit status is 0
tests/f_extent_oobounds/script new file +42 -0
42 lines not on this page · raw message
Signature · 1 line
1.7.12.rc0.22.gcdd159b
Quoted 5 lines · Theodore Ts'o
This tests creates a file system where the last entry in one leaf block overlaps with logical block range in the first entry of the next leaf block.
Signed-off-by "Theodore Ts'o" <[email protected]>
Looks good to me, thanks.
Quoted 101 lines
--- tests/f_extent_oobounds/expect.1 | 24 +++++++++++++++++++++++ tests/f_extent_oobounds/expect.2 | 7 +++++++ tests/f_extent_oobounds/script | 42 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 tests/f_extent_oobounds/expect.1 create mode 100644 tests/f_extent_oobounds/expect.2 create mode 100644 tests/f_extent_oobounds/scripttests/f_extent_oobounds/expect.1 new file +24
-0@@ -0,0 +1,24 @@ +Pass 1: Checking inodes, blocks, and sizes +Inode 12, end of extent exceeds allowed value + (logical block 15, physical block 200, len 30) +Clear? yes + +Inode 12, i_blocks is 154, should be 94. Fix? yes + +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Block bitmap differences: -(200--229) +Fix? yes + +Free blocks count wrong for group #0 (156, counted=186). +Fix? yes + +Free blocks count wrong (156, counted=186). +Fix? yes + + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 12/32 files (8.3% non-contiguous), 70/256 blocks +Exit status is 1tests/f_extent_oobounds/expect.2 new file +7
-0@@ -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/32 files (8.3% non-contiguous), 70/256 blocks +Exit status is 0tests/f_extent_oobounds/script new file +42
-0@@ -0,0 +1,42 @@ +if test -x $DEBUGFS_EXE; then + +SKIP_GUNZIP="true" +TEST_DATA="$test_name.tmp" + +dd if=/dev/zero of=$TMPFILE bs=1k count=256 > /dev/null 2>&1 +mke2fs -Ft ext4 $TMPFILE > /dev/null 2>&1 +debugfs -w $TMPFILE << EOF > /dev/null 2>&1 +write /dev/null testfile +extent_open testfile + insert_node 0 15 100 + insert_node --after 15 15 115 + insert_node --after 30 15 130 + insert_node --after 45 15 145 + split + down + split + root + down + next + replace_node 15 30 200 + extent_close +set_inode_field testfile i_size 61400 +set_inode_field testfile i_blocks 154 +setb 100 15 +setb 130 30 +setb 200 30 +set_bg 0 free_blocks_count 156 +set_bg 0 bg_checksum calc +set_super_value free_blocks_count 156 +q +EOF + +. $cmd_dir/run_e2fsck + +rm -f $TEST_DATA + +unset E2FSCK_TIME TEST_DATA + +else #if test -x $DEBUGFS_EXE; then + echo "$test_name: $test_description: skipped" +fi
Quoted 10 lines · Eric Sandeen
Quoted 5 lines · Theodore Ts'o
This tests creates a file system where the last entry in one leaf block overlaps with logical block range in the first entry of the next leaf block.
Signed-off-by "Theodore Ts'o" <[email protected]>Looks good to me, thanks.
Reviewed-by Eric Sandeen <[email protected]>
Ho hum, but not tested-by. :( This actually fails for me.
f_extent_oobounds.1.log 2013-06-26 19:55:13.071988447 +0000 renamed from expect.1 2013-06-26 19:54:18.687988530 +0000 +1 -5
@@ -1,24 +1,20 @@ Pass 1: Checking inodes, blocks, and sizes -Inode 12, end of extent exceeds allowed value - (logical block 15, physical block 200, len 30) -Clear? yes - -Inode 12, i_blocks is 154, should be 94. Fix? yes +Inode 12, i_blocks is 154, should be 0. Fix? yes
This is because the test runs debugfs from the system, not from the tree, and if that debugfs doesn't have the extent_open command, it fails silently.
I'll send a patch.
-eric
Quoted 107 lines
Quoted 91 lines
--- tests/f_extent_oobounds/expect.1 | 24 +++++++++++++++++++++++ tests/f_extent_oobounds/expect.2 | 7 +++++++ tests/f_extent_oobounds/script | 42 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 tests/f_extent_oobounds/expect.1 create mode 100644 tests/f_extent_oobounds/expect.2 create mode 100644 tests/f_extent_oobounds/scripttests/f_extent_oobounds/expect.1 new file +24
-0@@ -0,0 +1,24 @@ +Pass 1: Checking inodes, blocks, and sizes +Inode 12, end of extent exceeds allowed value + (logical block 15, physical block 200, len 30) +Clear? yes + +Inode 12, i_blocks is 154, should be 94. Fix? yes + +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Block bitmap differences: -(200--229) +Fix? yes + +Free blocks count wrong for group #0 (156, counted=186). +Fix? yes + +Free blocks count wrong (156, counted=186). +Fix? yes + + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 12/32 files (8.3% non-contiguous), 70/256 blocks +Exit status is 1tests/f_extent_oobounds/expect.2 new file +7
-0@@ -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/32 files (8.3% non-contiguous), 70/256 blocks +Exit status is 0tests/f_extent_oobounds/script new file +32
-0@@ -0,0 +1,42 @@ +if test -x $DEBUGFS_EXE; then + +SKIP_GUNZIP="true" +TEST_DATA="$test_name.tmp" + +dd if=/dev/zero of=$TMPFILE bs=1k count=256 > /dev/null 2>&1 +mke2fs -Ft ext4 $TMPFILE > /dev/null 2>&1 +debugfs -w $TMPFILE << EOF > /dev/null 2>&1 +write /dev/null testfile +extent_open testfile + insert_node 0 15 100 + insert_node --after 15 15 115 + insert_node --after 30 15 130 + insert_node --after 45 15 145 + split + down + split + root + down + next + replace_node 15 30 200 + extent_close +set_inode_field testfile i_size 61400 +set_inode_field testfile i_blocks 154 +setb 100 15 +setb 130 30 +setb 200 30 +set_bg 0 free_blocks_count 156 +set_bg 0 bg_checksum calc +set_super_value free_blocks_count 156 +q +EOFtests/f_extent_oobounds/script line 42
Quoted 10 lines
tests/f_extent_oobounds/script new file +10
-0+ +. $cmd_dir/run_e2fsck + +rm -f $TEST_DATA + +unset E2FSCK_TIME TEST_DATA + +else #if test -x $DEBUGFS_EXE; then + echo "$test_name: $test_description: skipped" +fi--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html