#!/bin/bash

# Copyright (C) 2010 Karel Zak <kzak@redhat.com>

TS_TOPDIR="${0%/*}/../.."
TS_DESC="tab update"

. $TS_TOPDIR/functions.sh
ts_init "$*"
ts_skip_nonroot

TESTPROG="$TS_HELPER_LIBMOUNT_UPDATE"

[ -x $TESTPROG ] || ts_skip "test not compiled"

# IMPORTANT notes:
#
#  - the $TS_OUTPUT variable is between ts_init_subtest and ts_finalize_subtest
#    redefined to subtest specific namespace -- it means that $TS_OUTPUT is a
#    different file within a subtest.
#
#  - all this test uses global $TS_OUTPUT.{mtab,mountinfo}

export LIBMOUNT_MTAB=$TS_OUTPUT.mtab
rm -f $LIBMOUNT_MTAB
> $LIBMOUNT_MTAB


#
# Traditional /etc/mtab
#
has_mtab=$( ts_has_mtab_support )
if [ "$has_mtab" == "yes" ]; then
	
	ts_init_subtest "mtab-mount"
	ts_valgrind $TESTPROG --add /dev/sda1 /mnt/foo ext3 "rw,bbb,ccc,fff=FFF,ddd,noexec"
	ts_valgrind $TESTPROG --add /dev/sdb1 /mnt/bar ext3 "gg=G,ffff=f,ro,noatime"
	ts_valgrind $TESTPROG --add /dev/sda2 /mnt/bar ext3 "rw,noatime"
	ts_valgrind $TESTPROG --add /dev/sda1 /mnt/gogo ext3 "rw,noatime,nosuid"
	ts_valgrind $TESTPROG --add none /proc proc defaults
	cp $LIBMOUNT_MTAB $TS_OUTPUT	# save the mtab aside
	ts_finalize_subtest		# checks the mtab

	ts_init_subtest "mtab-move"
	ts_valgrind $TESTPROG --move /mnt/foo /mnt/newfoo
	ts_valgrind $TESTPROG --move /mnt/bar /mnt/newbar
	cp $LIBMOUNT_MTAB $TS_OUTPUT	# save the mtab aside
	ts_finalize_subtest		# checks the mtab

	ts_init_subtest "mtab-remount"
	ts_valgrind $TESTPROG --remount /mnt/newfoo "ro,noatime"
	ts_valgrind $TESTPROG --remount /mnt/bar "rw,atime,nosuid"
	cp $LIBMOUNT_MTAB $TS_OUTPUT	# save the mtab aside
	ts_finalize_subtest		# checks the mtab

	ts_init_subtest "mtab-umount"
	ts_valgrind $TESTPROG --remove /mnt/bar
	ts_valgrind $TESTPROG --remove /mnt/gogo
	ts_valgrind $TESTPROG --remove /proc
	cp $LIBMOUNT_MTAB $TS_OUTPUT	# save the mtab aside
	ts_finalize_subtest		# checks the mtab
fi

#
# utab
#
rm -f $LIBMOUNT_MTAB
ln -s /proc/mounts $LIBMOUNT_MTAB

export LIBMOUNT_UTAB=$TS_OUTPUT.utab
rm -f $LIBMOUNT_UTAB
> $LIBMOUNT_UTAB

ts_init_subtest "utab-mount"
ts_valgrind $TESTPROG --add /dev/sda1 /mnt/foo ext3 "rw,bbb,ccc,fff=FFF,ddd,noexec"
ts_valgrind $TESTPROG --add /dev/sdb1 /mnt/bar ext3 "ro,user"
ts_valgrind $TESTPROG --add /dev/sda2 /mnt/xyz ext3 "rw,loop=/dev/loop0,uhelper=hal"
ts_valgrind $TESTPROG --add none /proc proc "rw,user"
cp $LIBMOUNT_UTAB $TS_OUTPUT	# save the mtab aside
ts_finalize_subtest		# checks the mtab

ts_init_subtest "utab-move"
ts_valgrind $TESTPROG --move /mnt/bar /mnt/newbar
ts_valgrind $TESTPROG --move /mnt/xyz /mnt/newxyz
cp $LIBMOUNT_UTAB $TS_OUTPUT	# save the mtab aside
ts_finalize_subtest		# checks the mtab

ts_init_subtest "utab-remount"
ts_valgrind $TESTPROG --remount /mnt/newbar "ro,noatime"
ts_valgrind $TESTPROG --remount /mnt/newxyz "rw,user"
cp $LIBMOUNT_UTAB $TS_OUTPUT	# save the mtab aside
ts_finalize_subtest		# checks the mtab

ts_init_subtest "utab-umount"
ts_valgrind $TESTPROG --remove /mnt/newbar
ts_valgrind $TESTPROG --remove /proc
cp $LIBMOUNT_UTAB $TS_OUTPUT	# save the mtab aside
ts_finalize_subtest		# checks the mtab

#
# fstab - replace
#
export LIBMOUNT_FSTAB=$TS_OUTPUT.fstab
rm -f $LIBMOUNT_FSTAB
cp "$TS_SELF/files/fstab.comment" $LIBMOUNT_FSTAB

ts_init_subtest "fstab-replace"
ts_valgrind $TESTPROG --replace "LABEL=foo" "/mnt/foo"
cp $LIBMOUNT_FSTAB $TS_OUTPUT	# save the fstab aside
ts_finalize_subtest		#checks the fstab

ts_finalize
