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>
This commit is contained in:
Karel Zak 2007-05-22 16:01:55 +02:00
parent 16f2ab05ec
commit c98825acab
6 changed files with 59 additions and 25 deletions

View File

@ -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
}

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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