busybox/testsuite/mount.tests
<<
>>
Prefs
   1#!/bin/sh
   2# Copyright 2007 by Denys Vlasenko <vda.linux@googlemail.com>
   3# Licensed under GPLv2, see file LICENSE in this source tree.
   4
   5. ./testing.sh
   6test -f "$bindir/.config" && . "$bindir/.config"
   7
   8test "`id -u`" = 0 || {
   9        echo "SKIPPED: mount (must be root to test this)"
  10        exit 0
  11}
  12
  13# Without MOUNT_LOOP_CREATE, the test will fail if /dev/loopN's do not exist
  14if test x"$CONFIG_MKFS_MINIX" != x"y" \
  15|| test x"$CONFIG_FEATURE_MINIX2" != x"y" \
  16|| test x"$CONFIG_FEATURE_MOUNT_LOOP" != x"y" \
  17|| test x"$CONFIG_FEATURE_MOUNT_LOOP_CREATE" != x"y" \
  18|| test x"$CONFIG_FEATURE_MOUNT_FLAGS" != x"y" \
  19|| test x"$CONFIG_FEATURE_DEVFS" = x"y" \
  20; then
  21        echo "SKIPPED: mount"
  22        exit 0
  23fi
  24
  25testdir="$PWD/mount.testdir"
  26
  27dd if=/dev/zero of=mount.image1m count=1 bs=1M 2>/dev/null || { echo "dd error"; exit 1; }
  28mkfs.minix -v mount.image1m >/dev/null 2>&1 || { echo "mkfs.minix error"; exit 1; }
  29modprobe minix 2>/dev/null
  30mkdir "$testdir" 2>/dev/null
  31umount -d "$testdir" 2>/dev/null
  32
  33# testing "test name" "command" "expected result" "file input" "stdin"
  34#   file input will be file called "input"
  35#   test can create a file "actual" instead of writing to stdout
  36
  37testing "mount -o remount,mand" \
  38"mount -o loop mount.image1m $testdir "\
  39"&& grep -Fc $testdir </proc/mounts "\
  40"&& mount -o remount,mand $testdir "\
  41"&& grep -F $testdir </proc/mounts | grep -c '[, ]mand[, ]'"\
  42"|| grep -F $testdir </proc/mounts" \
  43        "1\n""1\n" \
  44        "" ""
  45
  46umount -d "$testdir"
  47rmdir "$testdir"
  48rm mount.image1m
  49
  50
  51# Bug: mount.shared1 directory shows no files (has to show files a and b)
  52optional FEATURE_LS_RECURSIVE FEATURE_LS_SORTFILES
  53testing "mount bind+rshared" "\
  54mkdir -p mount.dir mount.shared1 mount.shared2
  55touch mount.dir/a mount.dir/b
  56
  57mount --bind         mount.shared1 mount.shared1 2>&1
  58mount --make-rshared mount.shared1               2>&1
  59mount --bind         mount.shared2 mount.shared2 2>&1
  60mount --make-rshared mount.shared2               2>&1
  61
  62mount --bind mount.shared2 mount.shared1         2>&1
  63mount --bind mount.dir     mount.shared2         2>&1
  64
  65ls -R mount.dir mount.shared1 mount.shared2      2>&1
  66
  67umount mount.dir mount.shared1 mount.shared2 2>/dev/null
  68umount mount.dir mount.shared1 mount.shared2 2>/dev/null
  69umount mount.dir mount.shared1 mount.shared2 2>/dev/null
  70rm -f mount.dir/a mount.dir/b mount.dir/c
  71rmdir mount.dir mount.shared1 mount.shared2
  72" \
  73"\
  74mount.dir:
  75a
  76b
  77
  78mount.shared1:
  79a
  80b
  81
  82mount.shared2:
  83a
  84b
  85" \
  86        "" ""
  87SKIP=
  88
  89
  90testing "mount RO loop" "\
  91exec 2>&1
  92umount -d mount.dir 2>/dev/null
  93rmdir mount.dir     2>/dev/null
  94mkdir -p mount.dir
  95(
  96cd mount.dir                               || { echo 'cd error'; exit 1; }
  97mkdir z1 z2                                || { echo 'mkdir error'; exit 1; }
  98mount -t tmpfs tmpfs z1                    || { echo 'mount tmpfs error'; exit 1; }
  99dd if=/dev/zero of=z1/e2img count=10 bs=1M 2>/dev/null || { echo 'dd error'; exit 1; }
 100mke2fs -F z1/e2img                         2>/dev/null >&2 || { echo 'mke2fs error'; exit 1; }
 101mount -r -o loop -t ext2 z1/e2img z2       || { echo 'mount -r -o loop error'; exit 1; }
 102mount -o remount,ro z1                     || { echo 'mount -o remount,ro error'; exit 1; }
 103)
 104umount -d mount.dir/z2
 105##losetup -d /dev/loop*
 106umount -d mount.dir/z1
 107rm -rf mount.dir
 108echo DONE
 109" \
 110"DONE\n" "" ""
 111
 112
 113exit $FAILCOUNT
 114