aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Schwarzott <zzam@gentoo.org>2011-10-22 11:59:23 +0200
committerMatthias Schwarzott <zzam@gentoo.org>2011-10-22 12:03:29 +0200
commitf0815a8bb0ef45cf421cb9f266402732e5791b39 (patch)
tree654b29ace4aab7367e23f288f8acc6ac322007b9
parentencorporate udev-mount script into udev script (diff)
downloadudev-gentoo-scripts-f0815a8bb0ef45cf421cb9f266402732e5791b39.tar.gz
udev-gentoo-scripts-f0815a8bb0ef45cf421cb9f266402732e5791b39.tar.bz2
udev-gentoo-scripts-f0815a8bb0ef45cf421cb9f266402732e5791b39.zip
test: Add tests for mounting /dev
-rwxr-xr-xtest/test_mount.sh156
1 files changed, 156 insertions, 0 deletions
diff --git a/test/test_mount.sh b/test/test_mount.sh
new file mode 100755
index 0000000..e2e7d1b
--- /dev/null
+++ b/test/test_mount.sh
@@ -0,0 +1,156 @@
+#!/bin/sh
+
+oneTimeSetUp()
+{
+ sed -e "s#/proc/filesystems#${SHUNIT_TMPDIR}/proc-filesystems#" \
+ -e "s#^.*/lib/udev/shell-compat-KV.sh##" \
+ < ../init.d/udev \
+ > "${SHUNIT_TMPDIR}"/udev.initd
+ cp "${SHUNIT_TMPDIR}"/udev.initd /tmp
+ . "${SHUNIT_TMPDIR}"/udev.initd
+}
+
+set_mountinfo_result()
+{
+ MOUNTINFO_RESULT=$1
+}
+
+set_dev_is_mounted()
+{
+ set_mountinfo_result 0
+}
+
+set_fstabinfo_result()
+{
+ FSTABINFO_RESULT=$1
+}
+
+set_fstab_has_dev()
+{
+ set_fstabinfo_result 0
+}
+
+set_proc_filesystems()
+{
+ local fs
+ for fs; do
+ echo "$fs"
+ done > "${SHUNIT_TMPDIR}"/proc-filesystems
+}
+
+setUp()
+{
+ RC_CMD=start
+ rm -f "$SHUNIT_TMPDIR"/*.actual
+ set_proc_filesystems tmpfs
+ set_mountinfo_result 1
+ set_fstabinfo_result 1
+}
+
+check_kv()
+{
+ local input="$1" actual= expected="$2"
+ actual=$(KV_to_int "$input" 2>/dev/null)
+ assertEquals "$?" "0"
+ assertEquals "$expected" "$actual"
+}
+
+expect_fail_kv()
+{
+ local input="$1" actual=
+ actual=$(KV_to_int "$input" 2>&1)
+ assertEquals "$?" "1"
+ assertEquals "" "$actual"
+}
+
+get_KV()
+{
+ echo 7
+}
+
+KV_to_int()
+{
+ echo 5
+}
+
+mount()
+{
+ echo "mount $@" >> "$SHUNIT_TMPDIR"/mount_call.actual
+}
+
+fstabinfo()
+{
+ echo "fstabinfo $@" >> "$SHUNIT_TMPDIR"/fstabinfo_call.actual
+ return "${FSTABINFO_RESULT}"
+}
+
+mountinfo()
+{
+ echo "mountinfo $@" >> "$SHUNIT_TMPDIR"/mountinfo.actual
+ return "${MOUNTINFO_RESULT}"
+}
+
+einfo()
+{
+ echo "einfo $@" >> "$SHUNIT_TMPDIR"/einfo.actual
+}
+
+ebegin()
+{
+:
+}
+
+eend()
+{
+:
+}
+
+
+testMountAlreadyMounted()
+{
+ set_dev_is_mounted
+
+ mount_dev_directory
+
+ assertFalse "fstabinfo must not be called" "[ -e '"$SHUNIT_TMPDIR"/fstabinfo_call.actual' ]"
+ assertFalse "mount must not be called" "[ -e '"$SHUNIT_TMPDIR"/mount_call.actual' ]"
+}
+
+testMountUseFstab()
+{
+ set_fstab_has_dev
+
+ mount_dev_directory
+
+ assertTrue "fstabinfo must be called" "[ -e '"$SHUNIT_TMPDIR"/fstabinfo_call.actual' ]"
+ assertFalse "mount must not be called" "[ -e '"$SHUNIT_TMPDIR"/mount_call.actual' ]"
+}
+
+testMountExplicitTmpfs()
+{
+ mount_dev_directory
+
+ assertTrue "fstabinfo must be called" "[ -e '"$SHUNIT_TMPDIR"/fstabinfo_call.actual' ]"
+ assertTrue "mount must be called" "[ -e '"$SHUNIT_TMPDIR"/mount_call.actual' ]"
+ grep -q -- '-t tmpfs ' "$SHUNIT_TMPDIR"/mount_call.actual
+ assertTrue "$?"
+ grep -q -- '-t devtmpfs ' "$SHUNIT_TMPDIR"/mount_call.actual
+ assertFalse "$?"
+}
+
+testMountExplicitDevtmpfs()
+{
+ set_proc_filesystems tmpfs devtmpfs
+
+ mount_dev_directory
+
+ assertTrue "fstabinfo must be called" "[ -e '"$SHUNIT_TMPDIR"/fstabinfo_call.actual' ]"
+ assertTrue "mount must be called" "[ -e '"$SHUNIT_TMPDIR"/mount_call.actual' ]"
+ grep -q -- '-t tmpfs ' "$SHUNIT_TMPDIR"/mount_call.actual
+ assertFalse "$?"
+ grep -q -- '-t devtmpfs ' "$SHUNIT_TMPDIR"/mount_call.actual
+ assertTrue "$?"
+}
+
+. ./shunit2
+