| test_description="e2undo with debugfs -z" | |
| if ! test -x $E2UNDO_EXE -o ! -x $DEBUGFS_EXE; then | |
| echo "$test_name: $test_description: skipped (no debugfs/e2undo)" | |
| return 0 | |
| fi | |
| TDB_FILE=${TMPDIR:-/tmp}/tune2fs-$(basename $TMPFILE).e2undo | |
| OUT=$test_name.log | |
| rm -f $TDB_FILE >/dev/null 2>&1 | |
| dd if=/dev/zero of=$TMPFILE bs=1k count=512 > /dev/null 2>&1 | |
| echo mke2fs -q -F -o Linux -T ext4 -O ^metadata_csum,64bit -E lazy_itable_init=1 -b 1024 $TMPFILE > $OUT | |
| $MKE2FS -q -F -o Linux -T ext4 -O ^metadata_csum,64bit -E lazy_itable_init=1 -b 1024 $TMPFILE >> $OUT 2>&1 | |
| crc0=`$CRCSUM $TMPFILE` | |
| echo $CRCSUM before debugfs $crc0 >> $OUT | |
| echo using debugfs to test e2undo >> $OUT | |
| $DEBUGFS -w -z $TDB_FILE -R 'zap -p 0x55 0' $TMPFILE >> $OUT 2>&1 | |
| crc1=`$CRCSUM $TMPFILE` | |
| echo $CRCSUM after debugfs $crc1 >> $OUT | |
| $E2UNDO $TDB_FILE $TMPFILE >> $OUT 2>&1 | |
| crc2=`$CRCSUM $TMPFILE` | |
| echo $CRCSUM after e2undo $crc2 >> $OUT | |
| if [ $crc0 = $crc2 ] && [ $crc1 != $crc2 ]; then | |
| echo "$test_name: $test_description: ok" | |
| touch $test_name.ok | |
| else | |
| ln -f $test_name.log $test_name.failed | |
| echo "$test_name: $test_description: failed" | |
| fi | |
| rm -f $TDB_FILE $TMPFILE |