--- /dev/null
+##/bin/bash
+
+# This functions sets the exit code to status and then exits. Don't use
+# exit directly, as it might not set the value of "$status" correctly, which is
+# used as an exit code in the trap handler routine set up by the check script.
+_exit()
+{
+ test -n "$1" && status="$1"
+ exit "$status"
+}
+
+_fatal()
+{
+ echo "$*"
+ _exit 1
+}
+
+# just plain bail out
+#
+_fail()
+{
+ echo "$*" | tee -a $seqres.full
+ echo "(see $seqres.full for details)"
+ _exit 1
+}
+
+# bail out, setting up .notrun file. Need to kill the filesystem check files
+# here, otherwise they are set incorrectly for the next test.
+#
+_notrun()
+{
+ echo "$*" > $seqres.notrun
+ echo "$seq not run: $*"
+ rm -f ${RESULT_DIR}/require_test*
+ rm -f ${RESULT_DIR}/require_scratch*
+
+ _exit 0
+}
+
_coalesce_extents
}
-die_now()
-{
- _exit 1
-}
-
# test the different corner cases for zeroing a range:
#
# 1. into a hole
$XFS_IO_PROG -f -c "truncate $_20k" \
-c "$zero_cmd $_4k $_8k" \
-c "$map_cmd -v" $testfile | $filter_cmd
- [ $? -ne 0 ] && die_now
+ [ $? -ne 0 ] && _fatal
_md5_checksum $testfile
echo " 2. into allocated space"
-c "pwrite 0 $_20k" $sync_cmd \
-c "$zero_cmd $_4k $_8k" \
-c "$map_cmd -v" $testfile | $filter_cmd
- [ $? -ne 0 ] && die_now
+ [ $? -ne 0 ] && _fatal
_md5_checksum $testfile
if [ "$unwritten_tests" ]; then
-c "$alloc_cmd 0 $_20k" \
-c "$zero_cmd $_4k $_8k" \
-c "$map_cmd -v" $testfile | $filter_cmd
- [ $? -ne 0 ] && die_now
+ [ $? -ne 0 ] && _fatal
_md5_checksum $testfile
fi
-c "pwrite $_8k $_8k" $sync_cmd \
-c "$zero_cmd $_4k $_8k" \
-c "$map_cmd -v" $testfile | $filter_cmd
- [ $? -ne 0 ] && die_now
+ [ $? -ne 0 ] && _fatal
_md5_checksum $testfile
if [ "$unwritten_tests" ]; then
-c "$alloc_cmd $_8k $_8k" \
-c "$zero_cmd $_4k $_8k" \
-c "$map_cmd -v" $testfile | $filter_cmd
- [ $? -ne 0 ] && die_now
+ [ $? -ne 0 ] && _fatal
_md5_checksum $testfile
fi
-c "pwrite 0 $_8k" $sync_cmd \
-c "$zero_cmd $_4k $_8k" \
-c "$map_cmd -v" $testfile | $filter_cmd
- [ $? -ne 0 ] && die_now
+ [ $? -ne 0 ] && _fatal
_md5_checksum $testfile
if [ "$unwritten_tests" ]; then
-c "$alloc_cmd $_8k $_8k" \
-c "$zero_cmd $_4k $_8k" \
-c "$map_cmd -v" $testfile | $filter_cmd
- [ $? -ne 0 ] && die_now
+ [ $? -ne 0 ] && _fatal
_md5_checksum $testfile
echo " 8. unwritten -> hole"
-c "$alloc_cmd 0 $_8k" \
-c "$zero_cmd $_4k $_8k" \
-c "$map_cmd -v" $testfile | $filter_cmd
- [ $? -ne 0 ] && die_now
+ [ $? -ne 0 ] && _fatal
_md5_checksum $testfile
echo " 9. unwritten -> data"
-c "pwrite $_8k $_8k" $sync_cmd \
-c "$zero_cmd $_4k $_8k" \
-c "$map_cmd -v" $testfile | $filter_cmd
- [ $? -ne 0 ] && die_now
+ [ $? -ne 0 ] && _fatal
_md5_checksum $testfile
fi
-c "pwrite $_8k $_4k" $sync_cmd \
-c "$zero_cmd $_4k $_12k" \
-c "$map_cmd -v" $testfile | $filter_cmd
- [ $? -ne 0 ] && die_now
+ [ $? -ne 0 ] && _fatal
_md5_checksum $testfile
echo " 11. data -> hole -> data"
-c "$punch_cmd $_8k $_4k" \
-c "$zero_cmd $_4k $_12k" \
-c "$map_cmd -v" $testfile | $filter_cmd
- [ $? -ne 0 ] && die_now
+ [ $? -ne 0 ] && _fatal
_md5_checksum $testfile
if [ "$unwritten_tests" ]; then
-c "pwrite $_8k $_4k" $sync_cmd \
-c "$zero_cmd $_4k $_12k" \
-c "$map_cmd -v" $testfile | $filter_cmd
- [ $? -ne 0 ] && die_now
+ [ $? -ne 0 ] && _fatal
_md5_checksum $testfile
echo " 13. data -> unwritten -> data"
-c "pwrite $_12k $_8k" -c "fsync" \
-c "$zero_cmd $_4k $_12k" \
-c "$map_cmd -v" $testfile | $filter_cmd
- [ $? -ne 0 ] && die_now
+ [ $? -ne 0 ] && _fatal
_md5_checksum $testfile
fi
-c "pwrite 0 $_20k" $sync_cmd \
-c "$zero_cmd $_12k $_8k" \
-c "$map_cmd -v" $testfile | $filter_cmd
- [ $? -ne 0 ] && die_now
+ [ $? -ne 0 ] && _fatal
_md5_checksum $testfile
fi
-c "pwrite 0 $_20k" $sync_cmd \
-c "$zero_cmd 0 $_8k" \
-c "$map_cmd -v" $testfile | $filter_cmd
- [ $? -ne 0 ] && die_now
+ [ $? -ne 0 ] && _fatal
_md5_checksum $testfile
# If zero_cmd is fcollpase, don't check unaligned offsets
-c "fadvise -d" \
-c "$map_cmd -v" $testfile | $filter_cmd
diff $testfile $testfile.2
- [ $? -ne 0 ] && die_now
+ [ $? -ne 0 ] && _fatal
rm -f $testfile.2
_md5_checksum $testfile
-c "$zero_cmd 128 128" \
-c "$map_cmd -v" $testfile | $filter_cmd | \
sed -e "s/\.\.[0-9]*\]/..7\]/"
- [ $? -ne 0 ] && die_now
+ [ $? -ne 0 ] && _fatal
od -x $testfile | head -n -1
}