114 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/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
 | 
						|
}
 | 
						|
 | 
						|
# Without MOUNT_LOOP_CREATE, the test will fail if /dev/loopN's do not exist
 | 
						|
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_LOOP_CREATE" != 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[, ]'"\
 | 
						|
"|| grep -F $testdir </proc/mounts" \
 | 
						|
	"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)
 | 
						|
optional FEATURE_LS_RECURSIVE FEATURE_LS_SORTFILES
 | 
						|
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
 | 
						|
" \
 | 
						|
	"" ""
 | 
						|
SKIP=
 | 
						|
 | 
						|
 | 
						|
testing "mount RO loop" "\
 | 
						|
exec 2>&1
 | 
						|
umount -d mount.dir 2>/dev/null
 | 
						|
rmdir mount.dir     2>/dev/null
 | 
						|
mkdir -p mount.dir
 | 
						|
(
 | 
						|
cd mount.dir                               || { echo 'cd error'; exit 1; }
 | 
						|
mkdir z1 z2                                || { echo 'mkdir error'; exit 1; }
 | 
						|
mount -t tmpfs tmpfs z1                    || { echo 'mount tmpfs error'; exit 1; }
 | 
						|
dd if=/dev/zero of=z1/e2img count=10 bs=1M 2>/dev/null || { echo 'dd error'; exit 1; }
 | 
						|
mke2fs -F z1/e2img                         2>/dev/null >&2 || { echo 'mke2fs error'; exit 1; }
 | 
						|
mount -r -o loop -t ext2 z1/e2img z2       || { echo 'mount -r -o loop error'; exit 1; }
 | 
						|
mount -o remount,ro z1                     || { echo 'mount -o remount,ro error'; exit 1; }
 | 
						|
)
 | 
						|
umount -d mount.dir/z2
 | 
						|
##losetup -d /dev/loop*
 | 
						|
umount -d mount.dir/z1
 | 
						|
rm -rf mount.dir
 | 
						|
echo DONE
 | 
						|
" \
 | 
						|
"DONE\n" "" ""
 | 
						|
 | 
						|
 | 
						|
exit $FAILCOUNT
 |