]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
tests: make mount/special more robust
authorKarel Zak <kzak@redhat.com>
Fri, 1 Dec 2023 10:45:10 +0000 (11:45 +0100)
committerKarel Zak <kzak@redhat.com>
Tue, 5 Dec 2023 09:19:55 +0000 (10:19 +0100)
Signed-off-by: Karel Zak <kzak@redhat.com>
tests/ts/mount/special

index e1351e41e18cb3ddf9035f700de8693adb80f551..1771f5aac277b8c59012c1616382db12b73bf4bc 100755 (executable)
@@ -58,34 +58,43 @@ ts_finalize_subtest
 
 
 ts_init_subtest "missing-options"
+
+grep -q 'nodev[[:space:]]*tmpfs' /proc/filesystems
+if [ "$?" == "0" ]; then
 cat > $MOUNTER <<EOF
 #!/bin/bash
 # This util-linux regression test component
 # It's safe to remove me...
 #
-$TS_CMD_MOUNT -t tmpfs -i "\$1" "\$2" -o x-foo=123
+exec $TS_CMD_MOUNT -t tmpfs -i "\$1" "\$2" -o x-foo=123
 EOF
-chmod +x $MOUNTER
-
-mountpoint="$TS_OUTDIR/mnt"
-mkdir -p "$mountpoint"
-export LIBMOUNT_UTAB=$TS_OUTDIR/utab
-rm -f $LIBMOUNT_UTAB
-> $LIBMOUNT_UTAB
-
-$TS_CMD_MOUNT -t mytest -o x-bar=BAR /foo "$mountpoint" &> $TS_OUTPUT
-udevadm settle
-
-cat "$LIBMOUNT_UTAB" \
-       | grep "$mountpoint" \
-       | sed -e "s|$mountpoint|/mountpoint|g" \
-             -e 's/ID=[[:digit:]]* //g' \
-       &> $TS_OUTPUT
-$TS_CMD_UMOUNT "$mountpoint"
-unset LIBMOUNT_UTAB
-
-ts_finalize_subtest
-
-rm -f $MOUNTER
+       chmod +x $MOUNTER
+
+       mountpoint="$TS_OUTDIR/mnt"
+       mkdir -p "$mountpoint"
+       export LIBMOUNT_UTAB=$TS_OUTDIR/utab
+       rm -f $LIBMOUNT_UTAB
+       echo -n "" > $LIBMOUNT_UTAB
+
+       $TS_CMD_MOUNT -t mytest -o x-bar=BAR /foo "$mountpoint" &> $TS_OUTPUT
+       udevadm settle
+
+       grep -q "$mountpoint" /proc/mounts
+       if [ "$?" == "0" ]; then
+               cat "$LIBMOUNT_UTAB" \
+                       | grep "$mountpoint" \
+                       | sed -e "s|$mountpoint|/mountpoint|g" \
+                             -e 's/ID=[[:digit:]]* //g' \
+                       &> $TS_OUTPUT
+               $TS_CMD_UMOUNT "$mountpoint"
+               unset LIBMOUNT_UTAB
+               rm -f $MOUNTER
+               ts_finalize_subtest
+       else
+               ts_skip_subtest "tmpfs not mounted"
+       fi
+else
+       ts_skip_subtest "tmpfs unsupported"
+fi
 
 ts_finalize