From 213dbfa00a4f7d557537785e173d330c5c453514 Mon Sep 17 00:00:00 2001 From: Andreas Dilger Date: Sat, 2 Feb 2008 01:43:40 -0700 Subject: [PATCH] e2fsprogs-tests-f_ibadness.patch Test case for bad inode detection Signed-off-by: Andreas Dilger --- tests/f_ibadness/expect.1 | 40 ++++++++++++++++++++++++++++++++++++++ tests/f_ibadness/expect.2 | 7 +++++++ tests/f_ibadness/image.gz | Bin 0 -> 41011 bytes tests/f_ibadness/name | 1 + 4 files changed, 48 insertions(+) create mode 100644 tests/f_ibadness/expect.1 create mode 100644 tests/f_ibadness/expect.2 create mode 100644 tests/f_ibadness/image.gz create mode 100644 tests/f_ibadness/name diff --git a/tests/f_ibadness/expect.1 b/tests/f_ibadness/expect.1 new file mode 100644 index 000000000..9c1fab191 --- /dev/null +++ b/tests/f_ibadness/expect.1 @@ -0,0 +1,40 @@ +Pass 1: Checking inodes, blocks, and sizes +Inode 13 is in use, but has dtime set. Fix? yes + +Inode 13 has illegal block(s). Clear? yes + +Illegal block #0 (4294967295) in inode 13. CLEARED. +Illegal block #1 (4294967295) in inode 13. CLEARED. +Inode 13, i_blocks is 3453453, should be 140. Fix? yes + +Pass 2: Checking directory structure +i_file_acl for inode 13 (/testfile) is 345, should be zero. +Clear? yes + +i_faddr for inode 13 (/testfile) is 34534, should be zero. +Clear? yes + +Inode 13 is badly corrupt (badness value = 9). Clear? yes + +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +Block bitmap differences: -(1368--1369) +Fix? yes + +Free blocks count wrong for group #0 (6823, counted=6825). +Fix? yes + +Free blocks count wrong (14691, counted=14693). +Fix? yes + +Free inodes count wrong for group #0 (2039, counted=2037). +Fix? yes + +Free inodes count wrong (4087, counted=4085). +Fix? yes + + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 11/4096 files (9.1% non-contiguous), 1691/16384 blocks +Exit status is 1 diff --git a/tests/f_ibadness/expect.2 b/tests/f_ibadness/expect.2 new file mode 100644 index 000000000..26cb95896 --- /dev/null +++ b/tests/f_ibadness/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/4096 files (9.1% non-contiguous), 1691/16384 blocks +Exit status is 0 diff --git a/tests/f_ibadness/image.gz b/tests/f_ibadness/image.gz new file mode 100644 index 0000000000000000000000000000000000000000..a6138997d674fbefa6a6dc258b8da76ccd696e0c GIT binary patch literal 41011 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