| #!/bin/bash |
| |
| # Run this test with a specific time, because we're crosslinking an extent tree |
| # block with the inode table. When fsck sets dtime to now, we want "now" to be |
| # our preprogrammed value. |
| |
| FSCK_OPT=-fy |
| IMAGE=$test_dir/image.gz |
| E2FSCK_TIME=4294967294 |
| export E2FSCK_TIME |
| |
| gzip -d < $IMAGE > $TMPFILE |
| e2label $TMPFILE test_filesys |
| |
| # 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 $TMPFILE 2>&1 | 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 $TMPFILE 2>&1 | 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 |