3 # old distros are missing "truncate", emulate it with "dd"
6 [ "$1" = "-s" ] && size=$2 && shift 2
8 dd if=/dev/zero of=$1 bs=1 count=0 seek=$size >> $LOG 2>&1
14 echo $test_description starting > $LOG
18 # Verify that the $TMP filesystem handles $SIZE_2 sparse files.
19 # If that fails, try the local filesystem instead.
20 if truncate -s $SIZE_2 $TMPFILE 2> /dev/null; then
21 echo "using $TMPFILE" >> $LOG
24 export TMPFILE=$(TMPDIR=. mktemp -t $test_name.XXXXXX.tmp)
26 echo "using $TMPFILE" >> $LOG
27 if ! truncate -s $SIZE_2 $TMPFILE >> $LOG 2>&1; then
34 echo $MKE2FS $FEATURES -qF $TMPFILE $SIZE_1 >> $LOG
35 $MKE2FS $FEATURES -qF $TMPFILE $SIZE_1 >> $LOG
37 OUT_TMP=$(mktemp -t csum-tmp.XXXXXX)
40 cat $E2FSCK >> $OUT_TMP
41 echo $CRCSUM $OUT_TMP >> $LOG 2>&1
42 CSUM_1=$($CRCSUM $OUT_TMP)
43 echo Checksum is $CSUM_1 >> $LOG
45 echo Setting up file system >> $LOG
46 $DEBUGFS -w $TMPFILE >> $LOG 2>&1 << EOF
58 echo $FSCK -fy $TMPFILE >> $LOG 2>&1
59 $FSCK -fy $TMPFILE >> $LOG 2>&1
61 echo $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS $TMPFILE $SIZE_2 >> $LOG 2>&1
62 if ! $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS $TMPFILE $SIZE_2 >> $LOG 2>&1
67 echo $FSCK -fp $TMPFILE >> $LOG 2>&1
68 if ! $FSCK -fp $TMPFILE >> $LOG 2>&1
70 dumpe2fs $TMPFILE >> $LOG
74 echo $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
75 $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
77 echo $CRCSUM $OUT_TMP >> $LOG 2>&1
78 CSUM_2=$($CRCSUM $OUT_TMP)
79 echo Checksum is $CSUM_2 >> $LOG
81 if test "$CSUM_1" != "$CSUM_2"
86 # Uncomment to grab extra debugging image
88 #mv $TMPFILE /tmp/foo.img
91 echo $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS -M $TMPFILE $SIZE_2 >> $LOG 2>&1
92 if ! $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS -M $TMPFILE $SIZE_2 >> $LOG 2>&1
97 echo $FSCK -fp $TMPFILE >> $LOG 2>&1
98 if ! $FSCK -fp $TMPFILE >> $LOG 2>&1
100 dumpe2fs $TMPFILE >> $LOG
104 echo $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
105 $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
107 echo $CRCSUM $OUT_TMP >> $LOG 2>&1
108 CSUM_2=$($CRCSUM $OUT_TMP)
109 echo Checksum is $CSUM_2 >> $LOG
111 if test "$CSUM_1" != "$CSUM_2"
116 echo $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS -M $TMPFILE $SIZE_2 >> $LOG 2>&1
117 if ! $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS -M $TMPFILE $SIZE_2 >> $LOG 2>&1
122 echo $FSCK -fp $TMPFILE >> $LOG 2>&1
123 if ! $FSCK -fp $TMPFILE >> $LOG 2>&1
125 dumpe2fs $TMPFILE >> $LOG
129 echo $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
130 $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
132 echo $CRCSUM $OUT_TMP >> $LOG 2>&1
133 CSUM_2=$($CRCSUM $OUT_TMP)
134 echo Checksum is $CSUM_2 >> $LOG
136 if test "$CSUM_1" != "$CSUM_2"
141 echo $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS -M $TMPFILE $SIZE_2 >> $LOG 2>&1
142 if ! $RESIZE2FS $RESIZE2FS_OPTS -d $DBG_FLAGS -M $TMPFILE $SIZE_2 >> $LOG 2>&1
147 echo $FSCK -fp $TMPFILE >> $LOG 2>&1
148 if ! $FSCK -fp $TMPFILE >> $LOG 2>&1
150 dumpe2fs $TMPFILE >> $LOG
154 echo $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
155 $DEBUGFS -R "dump /test/e2fsck $OUT_TMP" $TMPFILE >> $LOG 2>&1
157 echo $CRCSUM $OUT_TMP >> $LOG 2>&1
158 CSUM_2=$($CRCSUM $OUT_TMP)
159 echo Checksum is $CSUM_2 >> $LOG
164 if test "$CSUM_1" != "$CSUM_2"