tests: add regression tests for group descriptors with bad checksums

Add tests to examine how e2fsck deals with (a) the block bitmap being
corrupt; (b) the inode bitmap being corrupt; (c) the bitmap checksums
being incorrect (but the bitmaps are fine); and (d) the group
descriptor checksum itself is incorrect.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
crypto
Darrick J. Wong 2014-08-02 23:50:52 -04:00 committed by Theodore Ts'o
parent f882feb3bb
commit f093caf15e
16 changed files with 88 additions and 0 deletions

View File

@ -0,0 +1,15 @@
One or more block group descriptor checksums are invalid. Fix? yes
Group descriptor 0 checksum is 0x49ff, should be 0x4972. FIXED.
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
Block bitmap differences: -(8--10) -(12--17) -(19--31)
Fix? yes
test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
test_filesys: 11/128 files (0.0% non-contiguous), 18/512 blocks
Exit status is 1

View File

@ -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), 18/512 blocks
Exit status is 0

Binary file not shown.

1
tests/f_bad_bbitmap/name Normal file
View File

@ -0,0 +1 @@
corrupt block bitmap (metadata_csum)

View File

@ -0,0 +1,16 @@
One or more block group descriptor checksums are invalid. Fix? yes
Group descriptor 0 checksum is 0x4972, should be 0x7074. FIXED.
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
Inode bitmap differences: Group 0 inode bitmap does not match checksum.
FIXED.
Block bitmap differences: Group 0 block bitmap does not match checksum.
FIXED.
test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
test_filesys: 11/128 files (0.0% non-contiguous), 18/512 blocks
Exit status is 1

View File

@ -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), 18/512 blocks
Exit status is 0

Binary file not shown.

View File

@ -0,0 +1 @@
bad block/inode bitmap csum (metadata_csum)

View File

@ -0,0 +1,10 @@
One or more block group descriptor checksums are invalid. Fix? yes
Group descriptor 0 checksum is 0xffff, should be 0x4972. FIXED.
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), 18/512 blocks
Exit status is 0

View File

@ -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), 18/512 blocks
Exit status is 0

Binary file not shown.

View File

@ -0,0 +1 @@
bad group descriptor csum (metadata_csum)

View File

@ -0,0 +1,15 @@
One or more block group descriptor checksums are invalid. Fix? yes
Group descriptor 0 checksum is 0xffff, should be 0x4972. FIXED.
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
Inode bitmap differences: -(12--32)
Fix? yes
test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
test_filesys: 11/128 files (0.0% non-contiguous), 18/512 blocks
Exit status is 1

View File

@ -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), 18/512 blocks
Exit status is 0

Binary file not shown.

1
tests/f_bad_ibitmap/name Normal file
View File

@ -0,0 +1 @@
corrupt inode bitmap (metadata_csum)