set -o pipefail
-if [ $(t/root-status) != root ]; then
+root_status="$(t/root-status)" || exit $?
+
+if [ "$root_status" != root ]; then
echo 'Not root: skipping --check-device tests.'
exit 0 # FIXME: add WVSKIP.
fi
+if test -n "$(type -p modprobe)" && ! modprobe loop; then
+ echo 'Unable to load loopback module; skipping --check-device test.' 1>&2
+ exit 0
+fi
+
if test -z "$(type -p losetup)"; then
- echo 'Unable to find losetup: skipping --check-device tests.'
+ echo 'Unable to find losetup: skipping --check-device tests.' 1>&2
exit 0 # FIXME: add WVSKIP.
fi
if test -z "$(type -p mke2fs)"; then
- echo 'Unable to find mke2fs: skipping --check-device tests.'
+ echo 'Unable to find mke2fs: skipping --check-device tests.' 1>&2
exit 0 # FIXME: add WVSKIP.
fi
WVPASS umount "$tmpmnt1"
# Mount twice, so we'll have the same content with different devices.
+WVPASS cp -pP testfs.img testfs2.img
WVPASS mount -oro,loop testfs.img "$tmpmnt1"
-WVPASS mount -oro,loop testfs.img "$tmpmnt2"
+WVPASS mount -oro,loop testfs2.img "$tmpmnt2"
# Test default behavior: --check-device.
WVPASS mount -oro --bind "$tmpmnt1" "$srcmnt"