From d20b54c4bbd757f0f2604a2f3ac295961100fedd Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Fri, 15 Jun 2007 21:32:45 +0200 Subject: [PATCH] tests: add mount /dev/symlink test Signed-off-by: Karel Zak --- tests/Makefile.am | 1 + tests/commands.sh.in | 3 ++ tests/expected/ts-fstab-symlink | 1 + tests/ts-fstab-symlink | 69 +++++++++++++++++++++++++++++++++ 4 files changed, 74 insertions(+) create mode 100644 tests/expected/ts-fstab-symlink create mode 100755 tests/ts-fstab-symlink diff --git a/tests/Makefile.am b/tests/Makefile.am index ff25c513..d4485086 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -21,6 +21,7 @@ EXTRA_DIST = expected/ \ ts-fstab-devname \ ts-fstab-devname2label \ ts-fstab-devname2uuid \ + ts-fstab-symlink \ ts-hwclock-systohc \ ts-ipcs-headers \ ts-ipcs-limits \ diff --git a/tests/commands.sh.in b/tests/commands.sh.in index 86f3d11a..c659d1a3 100644 --- a/tests/commands.sh.in +++ b/tests/commands.sh.in @@ -1,6 +1,9 @@ TOPDIR=@top_srcdir@ TS_TOPDIR=$TOPDIR/tests +# Misc settings +TS_TESTUSER=${TS_TESTUSER:-"test"} + # helpers TS_HELPER_SYSINFO="$TS_TOPDIR/helpers/mnt_test_sysinfo" TS_HELPER_LIBPRELOAD_TIME="$TS_TOPDIR/helpers/.libs/libpreload-time.so" diff --git a/tests/expected/ts-fstab-symlink b/tests/expected/ts-fstab-symlink new file mode 100644 index 00000000..35821117 --- /dev/null +++ b/tests/expected/ts-fstab-symlink @@ -0,0 +1 @@ +Success diff --git a/tests/ts-fstab-symlink b/tests/ts-fstab-symlink new file mode 100755 index 00000000..d8174fd6 --- /dev/null +++ b/tests/ts-fstab-symlink @@ -0,0 +1,69 @@ +#!/bin/bash + +# +# Copyright (C) 2007 Karel Zak +# +# This file is part of util-linux-ng. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# + +. commands.sh +. functions.sh + +TS_COMPONENT="fstab" +TS_DESC="symlink" + +ts_init "$*" +ts_skip_nonroot + +set -o pipefail + +LINKNAME="$(pwd)/$TS_OUTDIR/${TS_NAME}_lnk" + +DEVICE=$(ts_device_init) +[ "$?" == 0 ] || ts_die "Cannot init device" + +mkfs.ext3 $DEVICE &> /dev/null +[ "$?" == "0" ] || ts_die "Cannot make ext3 on $DEVICE" $DEVICE + +ts_device_has "TYPE" "ext3" $DEVICE +[ "$?" == "0" ] || ts_die "Cannot found ext3 on $DEVICE" $DEVICE + +[ -d "$TS_MOUNTPOINT" ] || mkdir -p $TS_MOUNTPOINT + +ln -s $DEVICE $LINKNAME + +ts_fstab_add $LINKNAME $TS_MOUNTPOINT "auto" "defaults,user" + +# variant A) -- UID=0 +$TS_CMD_MOUNT $LINKNAME 2>&1 >> $TS_OUTPUT +grep -q $DEVICE /proc/mounts +[ "$?" == "0" ] || ts_die "A) Cannot found $DEVICE in /proc/mounts" $DEVICE +$TS_CMD_UMOUNT $LINKNAME +[ "$?" == "0" ] || ts_die "A) Cannot umount $LINKNAME" $DEVICE + +# varian B) +ts_init_suid $TS_CMD_MOUNT +ts_init_suid $TS_CMD_UMOUNT + +su $TS_TESTUSER -c "$TS_CMD_MOUNT $LINKNAME" 2>&1 >> $TS_OUTPUT +grep -q $DEVICE /proc/mounts +[ "$?" == "0" ] || ts_die "B) Cannot found $DEVICE in /proc/mounts" $DEVICE +su $TS_TESTUSER -c "$TS_CMD_UMOUNT $LINKNAME" 2>&1 >> $TS_OUTPUT +[ "$?" == "0" ] || ts_die "B) Cannot umount $LINKNAME" $DEVICE + +ts_device_deinit $DEVICE +ts_fstab_clean +rm -f $LINKNAME + +ts_log "Success" +ts_finalize + -- 2.39.5