diff options
Diffstat (limited to 'tests/f_detect_junk/script')
-rw-r--r-- | tests/f_detect_junk/script | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/f_detect_junk/script b/tests/f_detect_junk/script new file mode 100644 index 0000000..2577842 --- /dev/null +++ b/tests/f_detect_junk/script @@ -0,0 +1,43 @@ +#!/bin/bash + +if [ "$(grep -c 'define HAVE_MAGIC_H' ../lib/config.h)" -eq 0 ]; then + echo "$test_name: skipped (no magic)" + exit 0 +fi + +FSCK_OPT=-fn +IMAGE=$test_dir/image.bz2 + +bzip2 -d < $IMAGE > $TMPFILE +$DD if=/dev/zero of=$TMPFILE conv=notrunc oflag=append bs=1024k count=16 > /dev/null 2>&1 + +# Run fsck to fix things? +if [ -x $DEBUGFS_EXE ]; then + EXP=$test_dir/expect +else + EXP=$test_dir/expect.nodebugfs +fi +OUT=$test_name.log +rm -f $test_name.failed $test_name.ok + +echo "*** e2fsck" > $OUT +$FSCK $FSCK_OPT $TMPFILE >> $OUT 2>&1 +echo "*** debugfs" >> $OUT +test -x $DEBUGFS_EXE && $DEBUGFS -R 'quit' $TMPFILE >> $OUT 2>&1 +echo "*** tune2fs" >> $OUT +$TUNE2FS -i 0 $TMPFILE >> $OUT 2>&1 +echo "*** mke2fs" >> $OUT +$MKE2FS -n $TMPFILE >> $OUT 2>&1 + +sed -f $cmd_dir/filter.sed < $OUT > $OUT.new +mv $OUT.new $OUT + +# Figure out what happened +if cmp -s $EXP $OUT; then + echo "$test_name: $test_description: ok" + touch $test_name.ok +else + echo "$test_name: $test_description: failed" + diff -u $EXP $OUT >> $test_name.failed +fi +unset EXP OUT FSCK_OPT IMAGE |