1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
|
#!/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}
#
# Traditional /etc/mtab
#
export LIBMOUNT_MTAB=$TS_OUTPUT.mtab
rm -f $LIBMOUNT_MTAB
> $LIBMOUNT_MTAB
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
#
# 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
|