mirror of https://github.com/vitalif/e2fsprogs
tests: write and replay blocks with the old journal checksum
Test that we can write and replay transactions with the old journal checksum algorithm. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>crypto
parent
c452914469
commit
490e1f5201
|
@ -0,0 +1,40 @@
|
||||||
|
Creating filesystem with 65536 4k blocks and 16384 inodes
|
||||||
|
Superblock backups stored on blocks:
|
||||||
|
32768
|
||||||
|
|
||||||
|
Allocating group tables: done
|
||||||
|
Writing inode tables: done
|
||||||
|
Creating journal (4096 blocks): done
|
||||||
|
Writing superblocks and filesystem accounting information: done
|
||||||
|
|
||||||
|
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/16384 files (0.0% non-contiguous), 5164/65536 blocks
|
||||||
|
Exit status is 0
|
||||||
|
Journal features: (none)
|
||||||
|
debugfs write journal
|
||||||
|
Journal features: journal_checksum
|
||||||
|
debugfs: logdump -c
|
||||||
|
Journal starts at block 1, transaction 1
|
||||||
|
Found expected sequence 1, type 1 (descriptor block) at block 1
|
||||||
|
Found expected sequence 1, type 2 (commit block) at block 6
|
||||||
|
No magic number at block 7: end of journal.
|
||||||
|
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: +(0--1050) +(32768--36880)
|
||||||
|
Fix? yes
|
||||||
|
|
||||||
|
Inode bitmap differences: +(1--11)
|
||||||
|
Fix? yes
|
||||||
|
|
||||||
|
|
||||||
|
test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
|
||||||
|
test_filesys: 11/16384 files (0.0% non-contiguous), 5164/65536 blocks
|
||||||
|
Exit status is 1
|
|
@ -0,0 +1 @@
|
||||||
|
transaction nuking the bitmaps with old journal checksum (v1)
|
|
@ -0,0 +1,65 @@
|
||||||
|
if test -x $DEBUGFS_EXE; then
|
||||||
|
|
||||||
|
FSCK_OPT=-fy
|
||||||
|
OUT=$test_name.log
|
||||||
|
if [ -f $test_dir/expect.gz ]; then
|
||||||
|
EXP=$test_name.tmp
|
||||||
|
gunzip < $test_dir/expect.gz > $EXP1
|
||||||
|
else
|
||||||
|
EXP=$test_dir/expect
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp /dev/null $OUT
|
||||||
|
|
||||||
|
$MKE2FS -F -o Linux -b 4096 -O has_journal -T ext4 $TMPFILE 65536 2>&1 | sed -f $cmd_dir/filter.sed >> $OUT 2>&1
|
||||||
|
|
||||||
|
$FSCK -fy -N test_filesys $TMPFILE > $OUT.new 2>&1
|
||||||
|
status=$?
|
||||||
|
echo Exit status is $status >> $OUT.new
|
||||||
|
sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
|
||||||
|
rm -f $OUT.new
|
||||||
|
|
||||||
|
bitmaps="$($DUMPE2FS $TMPFILE 2>&1 | grep 'bitmap at' | sed -e 's/^.*Block bitmap at \([0-9]*\) .*Inode bitmap at \([0-9]*\).*$/\1,\2/g' | tr '\n' ',')"
|
||||||
|
|
||||||
|
$DUMPE2FS $TMPFILE 2>&1 | grep '^Journal features:' >> $OUT
|
||||||
|
|
||||||
|
echo "debugfs write journal" >> $OUT
|
||||||
|
echo "jo -c" > $TMPFILE.cmd
|
||||||
|
echo "jw -b $bitmaps /dev/zero" >> $TMPFILE.cmd
|
||||||
|
echo "jc" >> $TMPFILE.cmd
|
||||||
|
$DEBUGFS_EXE -w $TMPFILE -f $TMPFILE.cmd 2>> $OUT.new > /dev/null
|
||||||
|
sed -f $cmd_dir/filter.sed < $OUT.new >> $OUT
|
||||||
|
rm -rf $OUT.new
|
||||||
|
|
||||||
|
$DUMPE2FS $TMPFILE 2>&1 | grep '^Journal features:' >> $OUT
|
||||||
|
|
||||||
|
test -d "$JOURNAL_DUMP_DIR" -a -w "$JOURNAL_DUMP_DIR" && cp "$TMPFILE" "$JOURNAL_DUMP_DIR/$test_name.img"
|
||||||
|
echo "logdump -c" > $TMPFILE.cmd
|
||||||
|
$DEBUGFS_EXE $TMPFILE -f $TMPFILE.cmd 2>&1 | sed -f $cmd_dir/filter.sed >> $OUT
|
||||||
|
rm -rf $TMPFILE.cmd
|
||||||
|
|
||||||
|
$FSCK -fy -N test_filesys $TMPFILE > $OUT.new 2>&1
|
||||||
|
status=$?
|
||||||
|
echo Exit status is $status >> $OUT.new
|
||||||
|
sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new >> $OUT
|
||||||
|
rm -f $OUT.new
|
||||||
|
|
||||||
|
rm -f $TMPFILE
|
||||||
|
|
||||||
|
cmp -s $OUT $EXP
|
||||||
|
status=$?
|
||||||
|
|
||||||
|
if [ "$status" = 0 ] ; then
|
||||||
|
echo "$test_name: $test_description: ok"
|
||||||
|
touch $test_name.ok
|
||||||
|
else
|
||||||
|
echo "$test_name: $test_description: failed"
|
||||||
|
diff $DIFF_OPTS $EXP $OUT > $test_name.failed
|
||||||
|
rm -f $test_name.tmp
|
||||||
|
fi
|
||||||
|
|
||||||
|
unset IMAGE FSCK_OPT OUT EXP
|
||||||
|
|
||||||
|
else #if test -x $DEBUGFS_EXE; then
|
||||||
|
echo "$test_name: $test_description: skipped"
|
||||||
|
fi
|
Loading…
Reference in New Issue