]> err.no Git - util-linux/commitdiff
tests: add mount /dev/symlink test
authorKarel Zak <kzak@redhat.com>
Fri, 15 Jun 2007 19:32:45 +0000 (21:32 +0200)
committerKarel Zak <kzak@redhat.com>
Fri, 15 Jun 2007 19:32:45 +0000 (21:32 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
tests/Makefile.am
tests/commands.sh.in
tests/expected/ts-fstab-symlink [new file with mode: 0644]
tests/ts-fstab-symlink [new file with mode: 0755]

index ff25c5137cad59d89eef167ea7ee0555f99d4e42..d44850864754742134cde9a5e0431a79b12dd736 100644 (file)
@@ -21,6 +21,7 @@ EXTRA_DIST =  expected/ \
                ts-fstab-devname \
                ts-fstab-devname2label \
                ts-fstab-devname2uuid \
+               ts-fstab-symlink \
                ts-hwclock-systohc \
                ts-ipcs-headers \
                ts-ipcs-limits \
index 86f3d11ad96618f52b28a0a19ede93fc5a335d4e..c659d1a30fb615d7d7e89c99bbaf1733a9faecf2 100644 (file)
@@ -1,6 +1,9 @@
 TOPDIR=@top_srcdir@
 TS_TOPDIR=$TOPDIR/tests
 
+# Misc settings
+TS_TESTUSER=${TS_TESTUSER:-"test"}
+
 # helpers
 TS_HELPER_SYSINFO="$TS_TOPDIR/helpers/mnt_test_sysinfo"
 TS_HELPER_LIBPRELOAD_TIME="$TS_TOPDIR/helpers/.libs/libpreload-time.so"
diff --git a/tests/expected/ts-fstab-symlink b/tests/expected/ts-fstab-symlink
new file mode 100644 (file)
index 0000000..3582111
--- /dev/null
@@ -0,0 +1 @@
+Success
diff --git a/tests/ts-fstab-symlink b/tests/ts-fstab-symlink
new file mode 100755 (executable)
index 0000000..d8174fd
--- /dev/null
@@ -0,0 +1,69 @@
+#!/bin/bash
+
+#
+# Copyright (C) 2007 Karel Zak <kzak@redhat.com>
+#
+# This file is part of util-linux-ng.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License.
+#
+# This file is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+
+. commands.sh
+. functions.sh
+
+TS_COMPONENT="fstab"
+TS_DESC="symlink"
+
+ts_init "$*"
+ts_skip_nonroot
+
+set -o pipefail
+
+LINKNAME="$(pwd)/$TS_OUTDIR/${TS_NAME}_lnk"
+
+DEVICE=$(ts_device_init)
+[ "$?" == 0 ] || ts_die "Cannot init device"
+
+mkfs.ext3 $DEVICE &> /dev/null
+[ "$?" == "0" ] || ts_die "Cannot make ext3 on $DEVICE" $DEVICE
+
+ts_device_has "TYPE" "ext3" $DEVICE
+[ "$?" == "0" ] || ts_die "Cannot found ext3 on $DEVICE" $DEVICE
+
+[ -d "$TS_MOUNTPOINT" ] || mkdir -p $TS_MOUNTPOINT
+
+ln -s $DEVICE $LINKNAME
+
+ts_fstab_add $LINKNAME $TS_MOUNTPOINT "auto" "defaults,user"
+
+# variant A) -- UID=0
+$TS_CMD_MOUNT $LINKNAME 2>&1 >> $TS_OUTPUT
+grep -q $DEVICE /proc/mounts
+[ "$?" == "0" ] || ts_die "A) Cannot found $DEVICE in /proc/mounts" $DEVICE
+$TS_CMD_UMOUNT $LINKNAME
+[ "$?" == "0" ] || ts_die "A) Cannot umount $LINKNAME" $DEVICE
+
+# varian B)
+ts_init_suid $TS_CMD_MOUNT
+ts_init_suid $TS_CMD_UMOUNT
+
+su $TS_TESTUSER -c "$TS_CMD_MOUNT $LINKNAME" 2>&1 >> $TS_OUTPUT
+grep -q $DEVICE /proc/mounts
+[ "$?" == "0" ] || ts_die "B) Cannot found $DEVICE in /proc/mounts" $DEVICE
+su $TS_TESTUSER -c "$TS_CMD_UMOUNT $LINKNAME" 2>&1 >> $TS_OUTPUT
+[ "$?" == "0" ] || ts_die "B) Cannot umount $LINKNAME" $DEVICE
+
+ts_device_deinit $DEVICE
+ts_fstab_clean
+rm -f $LINKNAME
+
+ts_log "Success"
+ts_finalize
+