]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
tests: add/improve mount shared-subtree tests
authorKarel Zak <kzak@redhat.com>
Tue, 15 Jan 2013 13:25:23 +0000 (14:25 +0100)
committerKarel Zak <kzak@redhat.com>
Tue, 15 Jan 2013 13:25:23 +0000 (14:25 +0100)
Signed-off-by: Karel Zak <kzak@redhat.com>
tests/expected/mount/shared-subtree-bind-shared [new file with mode: 0644]
tests/expected/mount/shared-subtree-make-private
tests/expected/mount/shared-subtree-make-unbindable
tests/expected/mount/shared-subtree-mount-private [new file with mode: 0644]
tests/expected/mount/shared-subtree-mount-private-ro [new file with mode: 0644]
tests/ts/mount/shared-subtree

diff --git a/tests/expected/mount/shared-subtree-bind-shared b/tests/expected/mount/shared-subtree-bind-shared
new file mode 100644 (file)
index 0000000..8a205e8
--- /dev/null
@@ -0,0 +1 @@
+shared
index 39cdd0ded6df763f8ef1209d48a407a427a5edb7..3e18ebf09ec44c39a2f23f8f231b8900753e0597 100644 (file)
@@ -1 +1 @@
--
+private
index 376cfac4719dbbac53fdf51bc8ed13bf7a956d5a..17f662a23449e5c336b5c4d8a34fda9a60bf6eee 100644 (file)
@@ -1 +1 @@
-unbindable
+private,unbindable
diff --git a/tests/expected/mount/shared-subtree-mount-private b/tests/expected/mount/shared-subtree-mount-private
new file mode 100644 (file)
index 0000000..17f662a
--- /dev/null
@@ -0,0 +1 @@
+private,unbindable
diff --git a/tests/expected/mount/shared-subtree-mount-private-ro b/tests/expected/mount/shared-subtree-mount-private-ro
new file mode 100644 (file)
index 0000000..f5c8c27
--- /dev/null
@@ -0,0 +1,2 @@
+private
+ro,relatime
index a0a76c54969c8ed11da93cf00a667f7452caac83..3eae9b7ca0f87c0c4ba847fb67268fa690a2ba92 100755 (executable)
@@ -7,19 +7,6 @@ TS_DESC="shared-subtree"
 ts_init "$*"
 ts_skip_nonroot
 
-function get_attr() 
-{
-       # It's usually stupid idea to use 'grep | awk',
-       # but use paths in awk /regex/ is too tricky...
-       #
-       # TODO; improve libmount and findmnt to return the
-       #       shared-subtree flags
-       #
-       echo $(grep "$1" /proc/self/mountinfo | \
-               awk '{print $7}' | \
-               awk -F ':' '{ print $1 }')
-}
-
 [ -d $TS_MOUNTPOINT ] || mkdir -p $TS_MOUNTPOINT
 
 # bind
@@ -35,23 +22,59 @@ MOUNTPOINT="$TS_MOUNTPOINT"
 
 ts_init_subtest "make-shared"
 $TS_CMD_MOUNT --make-shared $MOUNTPOINT >> $TS_OUTPUT 2>&1
-echo  "$(get_attr $MOUNTPOINT)" >> $TS_OUTPUT
+$TS_CMD_FINDMNT -nr --target $MOUNTPOINT -o PROPAGATION >> $TS_OUTPUT
 ts_finalize_subtest
 
 ts_init_subtest "make-private"
 $TS_CMD_MOUNT --make-private $MOUNTPOINT >> $TS_OUTPUT 2>&1
-echo  "$(get_attr $MOUNTPOINT)" >> $TS_OUTPUT
+$TS_CMD_FINDMNT -nr --target $MOUNTPOINT -o PROPAGATION >> $TS_OUTPUT
 ts_finalize_subtest
 
+
 ts_init_subtest "make-unbindable"
 $TS_CMD_MOUNT --make-unbindable $MOUNTPOINT >> $TS_OUTPUT 2>&1
-echo  "$(get_attr $MOUNTPOINT)" >> $TS_OUTPUT
+$TS_CMD_FINDMNT -nr --target $MOUNTPOINT -o PROPAGATION >> $TS_OUTPUT
 ts_finalize_subtest
 
-
 # clean up
-$TS_CMD_UMOUNT $TS_MOUNTPOINT
-rmdir $TS_MOUNTPOINT
+$TS_CMD_UMOUNT $MOUNTPOINT
+
+
+ts_init_subtest "bind-shared"
+$TS_CMD_MOUNT --make-shared \
+             --bind $MOUNTPOINT $MOUNTPOINT >> $TS_OUTPUT 2>&1
+$TS_CMD_FINDMNT -nr --target $MOUNTPOINT -o PROPAGATION >> $TS_OUTPUT
+$TS_CMD_UMOUNT $MOUNTPOINT
+ts_finalize_subtest
+
+
+#
+# block dev based mounts
+#
+DEVICE=$(ts_device_init)
+[ "$?" == 0 ] || ts_die "Cannot init device"
+
+mkfs.ext3 $DEVICE &> /dev/null || ts_die "Cannot make ext3 on $DEVICE" $DEVICE
+ts_device_has "TYPE" "ext3" $DEVICE || ts_die "Cannot find ext3 on $DEVICE" $DEVICE
+
+
+ts_init_subtest "mount-private"
+$TS_CMD_MOUNT --make-private --make-unbindable \
+             $DEVICE $MOUNTPOINT >> $TS_OUTPUT 2>&1
+$TS_CMD_FINDMNT -nr --target $MOUNTPOINT -o PROPAGATION >> $TS_OUTPUT
+$TS_CMD_UMOUNT $MOUNTPOINT
+ts_finalize_subtest
+
+ts_init_subtest "mount-private-ro"
+$TS_CMD_MOUNT $DEVICE $MOUNTPOINT -o ro,private >> $TS_OUTPUT 2>&1
+$TS_CMD_FINDMNT -nr --target $MOUNTPOINT -o PROPAGATION >> $TS_OUTPUT
+$TS_CMD_FINDMNT -nr --target $MOUNTPOINT -o VFS-OPTIONS >> $TS_OUTPUT
+$TS_CMD_UMOUNT $MOUNTPOINT
+ts_finalize_subtest
+
+
+ts_device_deinit $DEVICE
+rmdir $MOUNTPOINT
 
 ts_log "Success"
 ts_finalize