summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarel Zak2007-05-22 16:01:55 +0200
committerKarel Zak2007-05-22 18:38:49 +0200
commitc98825acab98e9154881025fdd35e6445b85f27e (patch)
tree8ec9184130cc2d71f04e2524d7352e262cf2e95e
parenttests: add mount by devname test (diff)
downloadkernel-qcow2-util-linux-c98825acab98e9154881025fdd35e6445b85f27e.tar.gz
kernel-qcow2-util-linux-c98825acab98e9154881025fdd35e6445b85f27e.tar.xz
kernel-qcow2-util-linux-c98825acab98e9154881025fdd35e6445b85f27e.zip
tests: add support for fstab modification
The patch adds ts_fstab_add and ts_fstab_clean routines. Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r--tests/functions.sh38
-rwxr-xr-xtests/ts-cramfs-mkfs11
-rwxr-xr-xtests/ts-mount-devname5
-rwxr-xr-xtests/ts-mount-label6
-rwxr-xr-xtests/ts-mount-remount19
-rwxr-xr-xtests/ts-mount-uuid5
6 files changed, 59 insertions, 25 deletions
diff --git a/tests/functions.sh b/tests/functions.sh
index 24308f696..ba94ad4de 100644
--- a/tests/functions.sh
+++ b/tests/functions.sh
@@ -56,6 +56,7 @@ function ts_init {
TS_DIFF="$TS_DIFFDIR/$TS_NAME"
TS_EXPECTED="$TS_EXPECTEDDIR/$TS_NAME"
TS_INPUT="$TS_INPUTDIR/$TS_NAME"
+ TS_MOUNTPOINT="$(pwd)/$TS_OUTDIR/${TS_NAME}_mnt"
rm -f $TS_OUTPUT
touch $TS_OUTPUT
@@ -90,6 +91,7 @@ function ts_die {
ts_log "$1"
if [ -n "$2" ] && [ -b "$2" ]; then
ts_device_deinit "$2"
+ ts_fstab_clean # for sure...
fi
ts_finalize
}
@@ -203,3 +205,39 @@ function ts_swapoff {
rm -f $TS_CMD_SWAPOFF
fi
}
+
+function ts_fstab_open {
+ echo "# <!-- util-linux-ng test entry" >> /etc/fstab
+}
+
+function ts_fstab_close {
+ echo "# -->" >> /etc/fstab
+}
+
+function ts_fstab_addline {
+ local SPEC="$1"
+ local MNT=${2:-"$TS_MOUNTPOINT"}
+ local FS=${3:-"auto"}
+ local OPT=${4:-"default"}
+
+ echo "$SPEC $MNT $FS defaults 0 0" >> /etc/fstab
+}
+
+function ts_fstab_add {
+ ts_fstab_open
+ ts_fstab_addline "$*"
+ ts_fstab_close
+}
+
+function ts_fstab_clean {
+ sed --in-place "
+/# <!-- util-linux-ng/!b
+:a
+/# -->/!{
+ N
+ ba
+}
+s/# <!-- util-linux-ng.*-->//;
+/^$/d" /etc/fstab
+}
+
diff --git a/tests/ts-cramfs-mkfs b/tests/ts-cramfs-mkfs
index cbe37292e..c2d6c131a 100755
--- a/tests/ts-cramfs-mkfs
+++ b/tests/ts-cramfs-mkfs
@@ -32,10 +32,11 @@ IMAGE="$TS_OUTDIR/cramfs-loop.img"
IMAGE_DATA="$TS_OUTDIR/cramfs-data"
IMAGE_RE=$( echo $IMAGE | sed 's:/:\\/:g' )
LABEL="testCramfs"
-MOUNTPOINT="$TS_OUTDIR/cramfs-mnt"
+TS_MOUNTPOINT="$TS_OUTDIR/cramfs-mnt"
ts_log "create mountpoint dir"
-[ -d "$MOUNTPOINT" ] || mkdir -p $MOUNTPOINT
+
+[ -d "$TS_MOUNTPOINT" ] || mkdir -p $TS_MOUNTPOINT
ts_log "generate data"
if [ ! -d "$IMAGE_DATA" ]; then
@@ -74,18 +75,18 @@ ts_udev_dev_support "by-label" $LABEL
[ "$?" == "0" ] || ts_skip "udev ignores /dev/loop*" $DEVICE
ts_log "mount the image"
-$TS_CMD_MOUNT -L $LABEL $MOUNTPOINT 2>&1 >> $TS_OUTPUT
+$TS_CMD_MOUNT -L $LABEL $TS_MOUNTPOINT 2>&1 >> $TS_OUTPUT
# check it
grep -q $DEVICE /proc/mounts
[ "$?" == "0" ] || ts_die "Cannot found $DEVICE in /proc/mounts" $DEVICE
ts_log "list the image"
-ls -laR $MOUNTPOINT >> $TS_OUTPUT
+ls -laR $TS_MOUNTPOINT >> $TS_OUTPUT
echo >> $TS_OUTPUT
ts_log "list checksums from new data"
-find $MOUNTPOINT -type f -exec md5sum {} \; >> $TS_OUTPUT
+find $TS_MOUNTPOINT -type f -exec md5sum {} \; >> $TS_OUTPUT
echo >> $TS_OUTPUT
ts_log "umount the image"
diff --git a/tests/ts-mount-devname b/tests/ts-mount-devname
index dd6e4a358..a2ebb332e 100755
--- a/tests/ts-mount-devname
+++ b/tests/ts-mount-devname
@@ -26,7 +26,6 @@ ts_skip_nonroot
set -o pipefail
-MOUNTPOINT="$TS_OUTDIR/${TS_NAME}_mnt"
DEVICE=$(ts_device_init)
[ "$?" == 0 ] || ts_die "Cannot init device"
@@ -36,9 +35,9 @@ mkfs.ext3 $DEVICE &> /dev/null
ts_device_has "TYPE" "ext3" $DEVICE
[ "$?" == "0" ] || ts_die "Cannot found ext3 on $DEVICE" $DEVICE
-[ -d "$MOUNTPOINT" ] || mkdir -p $MOUNTPOINT
+[ -d "$TS_MOUNTPOINT" ] || mkdir -p $TS_MOUNTPOINT
-$TS_CMD_MOUNT $DEVICE $MOUNTPOINT 2>&1 >> $TS_OUTPUT
+$TS_CMD_MOUNT $DEVICE $TS_MOUNTPOINT 2>&1 >> $TS_OUTPUT
grep -q $DEVICE /proc/mounts
[ "$?" == "0" ] || ts_die "Cannot found $DEVICE in /proc/mounts" $DEVICE
diff --git a/tests/ts-mount-label b/tests/ts-mount-label
index 5a9b59aa8..c6a841eab 100755
--- a/tests/ts-mount-label
+++ b/tests/ts-mount-label
@@ -28,11 +28,9 @@ ts_skip_nonroot
set -o pipefail
-MOUNTPOINT="$TS_OUTDIR/${TS_NAME}_mnt"
DEVICE=$(ts_device_init)
[ "$?" == 0 ] || ts_die "Cannot init device"
-
mkfs.ext3 -L $LABEL $DEVICE &> /dev/null
[ "$?" == "0" ] || ts_die "Cannot make ext3 on $DEVICE" $DEVICE
@@ -42,9 +40,9 @@ ts_device_has "LABEL" $LABEL $DEVICE
ts_udev_dev_support "by-label" $LABEL
[ "$?" == "0" ] || ts_skip "udev ignores /dev/loop*" $DEVICE
-[ -d "$MOUNTPOINT" ] || mkdir -p $MOUNTPOINT
+[ -d "$TS_MOUNTPOINT" ] || mkdir -p $TS_MOUNTPOINT
-$TS_CMD_MOUNT -L $LABEL $MOUNTPOINT 2>&1 >> $TS_OUTPUT
+$TS_CMD_MOUNT -L $LABEL $TS_MOUNTPOINT 2>&1 >> $TS_OUTPUT
grep -q $DEVICE /proc/mounts
[ "$?" == "0" ] || ts_die "Cannot found $DEVICE in /proc/mounts" $DEVICE
diff --git a/tests/ts-mount-remount b/tests/ts-mount-remount
index 295ca5097..b293572a4 100755
--- a/tests/ts-mount-remount
+++ b/tests/ts-mount-remount
@@ -13,8 +13,7 @@ ts_init "$1"
ts_skip_nonroot
# mountpoint
-MOUNTPOINT="$(pwd)/$TS_OUTDIR/mnt-remount"
-mkdir -p $MOUNTPOINT
+[ -d $TS_MOUNTPOINT ] || mkdir -p $TS_MOUNTPOINT
DEVICE=$(ts_device_init)
[ "$?" == 0 ] || ts_die "Cannot init device"
@@ -23,20 +22,20 @@ mkfs.ext2 $DEVICE &> /dev/null
[ "$?" == "0" ] || ts_die "Cannot make ext2 on $DEVICE" $DEVICE
# mount read-write
-$TS_CMD_MOUNT $DEVICE $MOUNTPOINT
-[ "$?" == "0" ] || ts_die "Cannot mount $MOUNTPOINT" $DEVICE
+$TS_CMD_MOUNT $DEVICE $TS_MOUNTPOINT
+[ "$?" == "0" ] || ts_die "Cannot mount $TS_MOUNTPOINT" $DEVICE
# check the mount
-egrep -q "^$DEVICE $MOUNTPOINT" /etc/mtab
-[ "$?" == "0" ] || ts_die "Cannot found $MOUNTPOINT in /etc/mtab" $DEVICE
+egrep -q "^$DEVICE $TS_MOUNTPOINT" /etc/mtab
+[ "$?" == "0" ] || ts_die "Cannot found $TS_MOUNTPOINT in /etc/mtab" $DEVICE
# remount
-$TS_CMD_MOUNT -o remount,ro $MOUNTPOINT
-[ "$?" == "0" ] || ts_die "Cannot remount $MOUNTPOINT" $DEVICE
+$TS_CMD_MOUNT -o remount,ro $TS_MOUNTPOINT
+[ "$?" == "0" ] || ts_die "Cannot remount $TS_MOUNTPOINT" $DEVICE
# check the remount
-egrep -q "^$DEVICE $MOUNTPOINT ext2 ro 0 0" /etc/mtab
-[ "$?" == "0" ] || ts_die "Cannot found remounted $MOUNTPOINT in /etc/mtab" $DEVICE
+egrep -q "^$DEVICE $TS_MOUNTPOINT ext2 ro 0 0" /etc/mtab
+[ "$?" == "0" ] || ts_die "Cannot found remounted $TS_MOUNTPOINT in /etc/mtab" $DEVICE
ts_device_deinit $DEVICE
diff --git a/tests/ts-mount-uuid b/tests/ts-mount-uuid
index 8e2bdf758..4c9687173 100755
--- a/tests/ts-mount-uuid
+++ b/tests/ts-mount-uuid
@@ -26,7 +26,6 @@ ts_skip_nonroot
set -o pipefail
-MOUNTPOINT="$TS_OUTDIR/${TS_NAME}_mnt"
DEVICE=$(ts_device_init)
[ "$?" == 0 ] || ts_die "Cannot init device"
@@ -41,9 +40,9 @@ UUID=$(ts_uuid_by_devname $DEVICE)
ts_udev_dev_support "by-uuid" $UUID
[ "$?" == "0" ] || ts_skip "udev ignores /dev/loop*" $DEVICE
-[ -d "$MOUNTPOINT" ] || mkdir -p $MOUNTPOINT
+[ -d "$TS_MOUNTPOINT" ] || mkdir -p $TS_MOUNTPOINT
-$TS_CMD_MOUNT -U $UUID $MOUNTPOINT 2>&1 >> $TS_OUTPUT
+$TS_CMD_MOUNT -U $UUID $TS_MOUNTPOINT 2>&1 >> $TS_OUTPUT
grep -q $DEVICE /proc/mounts
[ "$?" == "0" ] || ts_die "Cannot found $DEVICE in /proc/mounts" $DEVICE