diff options
Diffstat (limited to 'tests/f_itable_collision/script')
-rwxr-xr-x | tests/f_itable_collision/script | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/f_itable_collision/script b/tests/f_itable_collision/script new file mode 100755 index 0000000..66abd90 --- /dev/null +++ b/tests/f_itable_collision/script @@ -0,0 +1,36 @@ +#!/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 + +# Run fsck to fix things? +EXP1=$test_dir/expect.1 +OUT1=$test_name.1.log + +$FSCK $FSCK_OPT -N test_filesys $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 -N test_filesys $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 |