From: Darrick J. Wong Date: Mon, 8 Sep 2014 23:13:28 +0000 (-0700) Subject: tests: test recovery of 32 and 64-bit journals with the v2 checksum X-Git-Tag: v1.43-WIP-2015-05-18~192 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=821fc8ca32bec735c431ef58297a905900cb43e6;p=tools%2Fe2fsprogs.git tests: test recovery of 32 and 64-bit journals with the v2 checksum Add tests to ensure that we know how to recover journals with the csum_v2 feature set. Signed-off-by: Darrick J. Wong Signed-off-by: Theodore Ts'o --- diff --git a/tests/j_recover_csum2_32bit/expect.1 b/tests/j_recover_csum2_32bit/expect.1 new file mode 100644 index 0000000..491784a --- /dev/null +++ b/tests/j_recover_csum2_32bit/expect.1 @@ -0,0 +1,16 @@ +test_filesys: recovering journal +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: +(1--259) +265 +(274--275) +281 +(290--418) +(1059--1186) +(2211--2352) +Fix? yes + +Inode bitmap differences: +(1--11) +Fix? yes + + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 11/8192 files (0.0% non-contiguous), 7739/131072 blocks +Exit status is 0 diff --git a/tests/j_recover_csum2_32bit/expect.2 b/tests/j_recover_csum2_32bit/expect.2 new file mode 100644 index 0000000..d223026 --- /dev/null +++ b/tests/j_recover_csum2_32bit/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/8192 files (0.0% non-contiguous), 7739/131072 blocks +Exit status is 0 diff --git a/tests/j_recover_csum2_32bit/image.bz2 b/tests/j_recover_csum2_32bit/image.bz2 new file mode 100644 index 0000000..2212edd Binary files /dev/null and b/tests/j_recover_csum2_32bit/image.bz2 differ diff --git a/tests/j_recover_csum2_32bit/name b/tests/j_recover_csum2_32bit/name new file mode 100644 index 0000000..6fd378c --- /dev/null +++ b/tests/j_recover_csum2_32bit/name @@ -0,0 +1 @@ +recover 32-bit journal checksum v2 diff --git a/tests/j_recover_csum2_32bit/script b/tests/j_recover_csum2_32bit/script new file mode 100755 index 0000000..4b0ec48 --- /dev/null +++ b/tests/j_recover_csum2_32bit/script @@ -0,0 +1,31 @@ +#!/bin/bash + +FSCK_OPT=-fy +IMAGE=$test_dir/image.bz2 + +bzip2 -d < $IMAGE > $TMPFILE + +# Run fsck to fix things? +EXP1=$test_dir/expect.1 +OUT1=$test_name.1.log +rm -rf $test_name.failed $test_name.ok + +$FSCK $FSCK_OPT -N test_filesys $TMPFILE 2>&1 | head -n 1000 | tail -n +2 > $OUT1 +echo "Exit status is $?" >> $OUT1 + +# Run a second time +EXP2=$test_dir/expect.2 +OUT2=$test_name.2.log + +$FSCK $FSCK_OPT -N test_filesys $TMPFILE 2>&1 | head -n 1000 | tail -n +2 > $OUT2 +echo "Exit status is $?" >> $OUT2 + +# Figure out what happened +if cmp -s $EXP1 $OUT1 && cmp -s $EXP2 $OUT2; then + echo "$test_name: $test_description: ok" + touch $test_name.ok +else + echo "$test_name: $test_description: failed" + diff -u $EXP1 $OUT1 >> $test_name.failed + diff -u $EXP2 $OUT2 >> $test_name.failed +fi diff --git a/tests/j_recover_csum2_64bit/expect.1 b/tests/j_recover_csum2_64bit/expect.1 new file mode 100644 index 0000000..491784a --- /dev/null +++ b/tests/j_recover_csum2_64bit/expect.1 @@ -0,0 +1,16 @@ +test_filesys: recovering journal +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: +(1--259) +265 +(274--275) +281 +(290--418) +(1059--1186) +(2211--2352) +Fix? yes + +Inode bitmap differences: +(1--11) +Fix? yes + + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 11/8192 files (0.0% non-contiguous), 7739/131072 blocks +Exit status is 0 diff --git a/tests/j_recover_csum2_64bit/expect.2 b/tests/j_recover_csum2_64bit/expect.2 new file mode 100644 index 0000000..d223026 --- /dev/null +++ b/tests/j_recover_csum2_64bit/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/8192 files (0.0% non-contiguous), 7739/131072 blocks +Exit status is 0 diff --git a/tests/j_recover_csum2_64bit/image.bz2 b/tests/j_recover_csum2_64bit/image.bz2 new file mode 100644 index 0000000..acf1dae Binary files /dev/null and b/tests/j_recover_csum2_64bit/image.bz2 differ diff --git a/tests/j_recover_csum2_64bit/name b/tests/j_recover_csum2_64bit/name new file mode 100644 index 0000000..1770502 --- /dev/null +++ b/tests/j_recover_csum2_64bit/name @@ -0,0 +1 @@ +recover 64-bit journal checksum v2 diff --git a/tests/j_recover_csum2_64bit/script b/tests/j_recover_csum2_64bit/script new file mode 100755 index 0000000..4b0ec48 --- /dev/null +++ b/tests/j_recover_csum2_64bit/script @@ -0,0 +1,31 @@ +#!/bin/bash + +FSCK_OPT=-fy +IMAGE=$test_dir/image.bz2 + +bzip2 -d < $IMAGE > $TMPFILE + +# Run fsck to fix things? +EXP1=$test_dir/expect.1 +OUT1=$test_name.1.log +rm -rf $test_name.failed $test_name.ok + +$FSCK $FSCK_OPT -N test_filesys $TMPFILE 2>&1 | head -n 1000 | tail -n +2 > $OUT1 +echo "Exit status is $?" >> $OUT1 + +# Run a second time +EXP2=$test_dir/expect.2 +OUT2=$test_name.2.log + +$FSCK $FSCK_OPT -N test_filesys $TMPFILE 2>&1 | head -n 1000 | tail -n +2 > $OUT2 +echo "Exit status is $?" >> $OUT2 + +# Figure out what happened +if cmp -s $EXP1 $OUT1 && cmp -s $EXP2 $OUT2; then + echo "$test_name: $test_description: ok" + touch $test_name.ok +else + echo "$test_name: $test_description: failed" + diff -u $EXP1 $OUT1 >> $test_name.failed + diff -u $EXP2 $OUT2 >> $test_name.failed +fi