3 # old distros are missing "truncate", emulate it with "dd" if necessary
6 [ "$1" = "-s" ] && size=$2 && shift 2
8 if ! truncate -s $size $1 >> $LOG 2>&1 ; then
9 dd if=/dev/zero of=$1 bs=1 count=0 seek=$size >> $LOG 2>&1
16 echo $test_description starting > $LOG
20 # Verify that the $TMP filesystem handles $SIZE_2 sparse files.
21 # If that fails, try the local filesystem instead.
22 if do_truncate -s $SIZE_2 $TMPFILE 2> /dev/null; then
23 echo "using $TMPFILE" >> $LOG
26 export TMPFILE=$(mktemp ./$test_name.tmp.XXXXXX)
28 echo "using $TMPFILE" >> $LOG
29 if ! do_truncate -s $SIZE_2 $TMPFILE >> $LOG 2>&1; then
36 echo $MKE2FS $FEATURES -qF $TMPFILE $SIZE_1 >> $LOG
37 $MKE2FS $FEATURES -qF $TMPFILE $SIZE_1 >> $LOG
39 OUT_TMP=$(mktemp ${TMPDIR:-/tmp}/csum-tmp.XXXXXX)
42 cat $E2FSCK >> $OUT_TMP
43 echo $CRCSUM $OUT_TMP >> $LOG 2>&1
44 CSUM_1=$($CRCSUM $OUT_TMP)
45 echo Checksum is $CSUM_1 >> $LOG
47 echo Setting up file system >> $LOG
48 $DEBUGFS -w $TMPFILE >> $LOG 2>&1 << EOF
60 echo $FSCK -fy $TMPFILE >> $LOG 2>&1
61 $FSCK -fy $TMPFILE >> $LOG 2>&1
64 echo $RESIZE2FS -P $TMPFILE >> $LOG 2>&1
65 if ! $RESIZE2FS -P $TMPFILE >> $LOG 2>&1
71 echo $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS $TMPFILE $SIZE_2 >> $LOG 2>&1
72 if ! $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS $TMPFILE $SIZE_2 >> $LOG 2>&1
77 echo $FSCK -fy $TMPFILE >> $LOG 2>&1
78 if ! $FSCK -fy $TMPFILE >> $LOG 2>&1
80 $DUMPE2FS $TMPFILE >> $LOG
84 echo $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
85 $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
87 echo $CRCSUM $OUT_TMP >> $LOG 2>&1
88 CSUM_2=$($CRCSUM $OUT_TMP)
89 echo Checksum is $CSUM_2 >> $LOG
91 if test "$CSUM_1" != "$CSUM_2"
96 # Uncomment to grab extra debugging image
98 #mv $TMPFILE /tmp/foo.img
101 echo $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS -M $TMPFILE $SIZE_2 >> $LOG 2>&1
102 if ! $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS -M $TMPFILE $SIZE_2 >> $LOG 2>&1
107 echo $FSCK -fy $TMPFILE >> $LOG 2>&1
108 if ! $FSCK -fy $TMPFILE >> $LOG 2>&1
110 $DUMPE2FS $TMPFILE >> $LOG
114 echo $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
115 $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
117 echo $CRCSUM $OUT_TMP >> $LOG 2>&1
118 CSUM_2=$($CRCSUM $OUT_TMP)
119 echo Checksum is $CSUM_2 >> $LOG
121 if test "$CSUM_1" != "$CSUM_2"
126 echo $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS -M $TMPFILE $SIZE_2 >> $LOG 2>&1
127 if ! $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS -M $TMPFILE $SIZE_2 >> $LOG 2>&1
132 echo $FSCK -fy $TMPFILE >> $LOG 2>&1
133 if ! $FSCK -fy $TMPFILE >> $LOG 2>&1
135 $DUMPE2FS $TMPFILE >> $LOG
139 echo $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
140 $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
142 echo $CRCSUM $OUT_TMP >> $LOG 2>&1
143 CSUM_2=$($CRCSUM $OUT_TMP)
144 echo Checksum is $CSUM_2 >> $LOG
146 if test "$CSUM_1" != "$CSUM_2"
151 echo $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS -M $TMPFILE $SIZE_2 >> $LOG 2>&1
152 if ! $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS -M $TMPFILE $SIZE_2 >> $LOG 2>&1
157 echo $FSCK -fy $TMPFILE >> $LOG 2>&1
158 if ! $FSCK -fy $TMPFILE >> $LOG 2>&1
160 $DUMPE2FS $TMPFILE >> $LOG
164 echo $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
165 $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
167 echo $CRCSUM $OUT_TMP >> $LOG 2>&1
168 CSUM_2=$($CRCSUM $OUT_TMP)
169 echo Checksum is $CSUM_2 >> $LOG
176 if test "$CSUM_1" != "$CSUM_2"