aboutsummaryrefslogtreecommitdiff
path: root/testsuite/mount.tests
blob: 58eeb2ec5ad5f3ec03f5c635cea409ea824308a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/bin/sh
# Copyright 2007 by Denys Vlasenko <vda.linux@googlemail.com>
# Licensed under GPLv2, see file LICENSE in this source tree.

. ./testing.sh
test -f "$bindir/.config" && . "$bindir/.config"

test "`id -u`" = 0 || {
	echo "SKIPPED: mount (must be root to test this)"
	exit 0
}

if test x"$CONFIG_MKFS_MINIX" != x"y" \
|| test x"$CONFIG_FEATURE_MINIX2" != x"y" \
|| test x"$CONFIG_FEATURE_MOUNT_LOOP" != x"y" \
|| test x"$CONFIG_FEATURE_MOUNT_FLAGS" != x"y" \
|| test x"$CONFIG_FEATURE_DEVFS" = x"y" \
; then
	echo "SKIPPED: mount"
	exit 0
fi

testdir="$PWD/mount.testdir"

dd if=/dev/zero of=mount.image1m count=1 bs=1M 2>/dev/null || { echo "dd error"; exit 1; }
mkfs.minix -v mount.image1m >/dev/null 2>&1 || { echo "mkfs.minix error"; exit 1; }
modprobe minix 2>/dev/null
mkdir "$testdir" 2>/dev/null
umount -d "$testdir" 2>/dev/null

# testing "test name" "command" "expected result" "file input" "stdin"
#   file input will be file called "input"
#   test can create a file "actual" instead of writing to stdout

testing "mount -o remount,mand" \
"mount -o loop mount.image1m $testdir "\
"&& grep -Fc $testdir </proc/mounts "\
"&& mount -o remount,mand $testdir "\
"&& grep -F $testdir </proc/mounts | grep -c '[, ]mand[, ]'" \
	"1\n""1\n" \
	"" ""

umount -d "$testdir"
rmdir "$testdir"
rm mount.image1m


# Bug: mount.shared1 directory shows no files (has to show files a and b)
testing "mount bind+rshared" "\
mkdir -p mount.dir mount.shared1 mount.shared2
touch mount.dir/a mount.dir/b

mount --bind         mount.shared1 mount.shared1 2>&1
mount --make-rshared mount.shared1               2>&1
mount --bind         mount.shared2 mount.shared2 2>&1
mount --make-rshared mount.shared2               2>&1

mount --bind mount.shared2 mount.shared1         2>&1
mount --bind mount.dir     mount.shared2         2>&1

ls -R mount.dir mount.shared1 mount.shared2      2>&1

umount mount.dir mount.shared1 mount.shared2 2>/dev/null
umount mount.dir mount.shared1 mount.shared2 2>/dev/null
umount mount.dir mount.shared1 mount.shared2 2>/dev/null
rm -f mount.dir/a mount.dir/b mount.dir/c
rmdir mount.dir mount.shared1 mount.shared2
" \
"\
mount.dir:
a
b

mount.shared1:
a
b

mount.shared2:
a
b
" \
	"" ""

exit $FAILCOUNT