tests: add mount --all tests
Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
parent
6a735c2c5b
commit
be906b20f2
|
@ -0,0 +1,138 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright (C) 2019 Karel Zak <kzak@redhat.com>
|
||||||
|
|
||||||
|
TS_TOPDIR="${0%/*}/../.."
|
||||||
|
TS_DESC="all (fstab)"
|
||||||
|
|
||||||
|
. $TS_TOPDIR/functions.sh
|
||||||
|
ts_init "$*"
|
||||||
|
|
||||||
|
ts_check_test_command "$TS_CMD_MOUNT"
|
||||||
|
ts_check_test_command "$TS_CMD_UMOUNT"
|
||||||
|
ts_check_test_command "$TS_CMD_FDISK"
|
||||||
|
|
||||||
|
ts_skip_nonroot
|
||||||
|
ts_check_prog "mkfs.ext2"
|
||||||
|
ts_check_prog "mkfs.ext4"
|
||||||
|
|
||||||
|
|
||||||
|
# set global variable TS_DEVICE
|
||||||
|
ts_scsi_debug_init dev_size_mb=50
|
||||||
|
|
||||||
|
ts_log "Create partitions"
|
||||||
|
$TS_CMD_FDISK ${TS_DEVICE} &> /dev/null <<EOF
|
||||||
|
n
|
||||||
|
p
|
||||||
|
1
|
||||||
|
|
||||||
|
+10M
|
||||||
|
n
|
||||||
|
p
|
||||||
|
2
|
||||||
|
|
||||||
|
+10M
|
||||||
|
n
|
||||||
|
p
|
||||||
|
3
|
||||||
|
|
||||||
|
+10M
|
||||||
|
n
|
||||||
|
p
|
||||||
|
|
||||||
|
+10M
|
||||||
|
w
|
||||||
|
q
|
||||||
|
EOF
|
||||||
|
|
||||||
|
udevadm settle
|
||||||
|
|
||||||
|
ts_log "Create filesystem A"
|
||||||
|
mkfs.ext2 ${TS_DEVICE}1 &> /dev/null
|
||||||
|
ts_log "Create filesystem B"
|
||||||
|
mkfs.ext2 ${TS_DEVICE}2 &> /dev/null
|
||||||
|
ts_log "Create filesystem C"
|
||||||
|
mkfs.ext2 ${TS_DEVICE}3 &> /dev/null
|
||||||
|
ts_log "Create filesystem D"
|
||||||
|
mkfs.ext4 ${TS_DEVICE}4 &> /dev/null
|
||||||
|
|
||||||
|
udevadm settle
|
||||||
|
|
||||||
|
# use the same top-level mountpoint for all sub-tests
|
||||||
|
MOUNTPOINT=$TS_MOUNTPOINT
|
||||||
|
|
||||||
|
[ -d "${MOUNTPOINT}A" ] || mkdir -p ${MOUNTPOINT}A
|
||||||
|
[ -d "${MOUNTPOINT}B" ] || mkdir -p ${MOUNTPOINT}B
|
||||||
|
[ -d "${MOUNTPOINT}C" ] || mkdir -p ${MOUNTPOINT}C
|
||||||
|
[ -d "${MOUNTPOINT}D" ] || mkdir -p ${MOUNTPOINT}D
|
||||||
|
|
||||||
|
# generic fstab
|
||||||
|
MY_FSTAB="$TS_OUTDIR/${TS_TESTNAME}.fstab"
|
||||||
|
rm -rf $MY_FSTAB
|
||||||
|
echo "${TS_DEVICE}1 ${MOUNTPOINT}A ext2 rw,defaults 0 0" >> $MY_FSTAB
|
||||||
|
echo "${TS_DEVICE}2 ${MOUNTPOINT}B ext2 rw,defaults 0 0" >> $MY_FSTAB
|
||||||
|
echo "${TS_DEVICE}3 ${MOUNTPOINT}C ext2 ro,defaults 0 0" >> $MY_FSTAB
|
||||||
|
echo "${TS_DEVICE}4 ${MOUNTPOINT}D ext4 rw,defaults 0 0" >> $MY_FSTAB
|
||||||
|
|
||||||
|
|
||||||
|
ts_init_subtest "basic"
|
||||||
|
$TS_CMD_MOUNT --all --fstab $MY_FSTAB >> $TS_OUTPUT 2>> $TS_ERRLOG
|
||||||
|
[ $? == 0 ] || ts_log "mount failed"
|
||||||
|
$TS_CMD_UMOUNT ${MOUNTPOINT}{A,B,C,D}
|
||||||
|
[ $? == 0 ] || ts_log "umount failed"
|
||||||
|
ts_finalize_subtest
|
||||||
|
|
||||||
|
|
||||||
|
ts_init_subtest "filter-type"
|
||||||
|
$TS_CMD_MOUNT --all --fstab $MY_FSTAB -t ext4 >> $TS_OUTPUT 2>> $TS_ERRLOG
|
||||||
|
[ $? == 0 ] || ts_log "mount failed"
|
||||||
|
$TS_CMD_UMOUNT ${MOUNTPOINT}D
|
||||||
|
[ $? == 0 ] || ts_log "umount failed"
|
||||||
|
ts_finalize_subtest
|
||||||
|
|
||||||
|
|
||||||
|
ts_init_subtest "filter-notype"
|
||||||
|
$TS_CMD_MOUNT --all --fstab $MY_FSTAB -t noext4 >> $TS_OUTPUT 2>> $TS_ERRLOG
|
||||||
|
[ $? == 0 ] || ts_log "mount failed"
|
||||||
|
$TS_CMD_UMOUNT ${MOUNTPOINT}{A,B,C}
|
||||||
|
[ $? == 0 ] || ts_log "umount failed"
|
||||||
|
ts_finalize_subtest
|
||||||
|
|
||||||
|
|
||||||
|
ts_init_subtest "filter-option"
|
||||||
|
$TS_CMD_MOUNT --all --fstab $MY_FSTAB -O ro >> $TS_OUTPUT 2>> $TS_ERRLOG
|
||||||
|
[ $? == 0 ] || ts_log "mount failed"
|
||||||
|
$TS_CMD_UMOUNT ${MOUNTPOINT}C
|
||||||
|
[ $? == 0 ] || ts_log "umount failed"
|
||||||
|
ts_finalize_subtest
|
||||||
|
|
||||||
|
|
||||||
|
ts_init_subtest "override-option"
|
||||||
|
$TS_CMD_MOUNT --all --fstab $MY_FSTAB -o ro >> $TS_OUTPUT 2>> $TS_ERRLOG
|
||||||
|
[ $? == 0 ] || ts_log "mount failed"
|
||||||
|
$TS_CMD_UMOUNT ${MOUNTPOINT}{A,B,C,D}
|
||||||
|
[ $? == 0 ] || ts_log "umount failed"
|
||||||
|
ts_finalize_subtest
|
||||||
|
|
||||||
|
|
||||||
|
ts_init_subtest "prefix"
|
||||||
|
MY_ROOT="$TS_OUTDIR/${TS_TESTNAME}-rootdir"
|
||||||
|
[ -d "${MY_ROOT}" ] || mkdir -p ${MY_ROOT}
|
||||||
|
# sub-test specific fstab
|
||||||
|
MY_FSTAB="$TS_OUTDIR/${TS_TESTNAME}.fstab"
|
||||||
|
rm -rf $MY_FSTAB
|
||||||
|
echo "${TS_DEVICE}1 /foo/A ext2 rw,defaults 0 0" >> $MY_FSTAB
|
||||||
|
echo "${TS_DEVICE}2 /foo/B ext2 rw,defaults 0 0" >> $MY_FSTAB
|
||||||
|
echo "${TS_DEVICE}3 /foo/C ext2 rw,defaults 0 0" >> $MY_FSTAB
|
||||||
|
echo "${TS_DEVICE}4 /foo/D ext4 rw,defaults 0 0" >> $MY_FSTAB
|
||||||
|
# mount all to prefix
|
||||||
|
$TS_CMD_MOUNT --all \
|
||||||
|
--fstab $MY_FSTAB \
|
||||||
|
--target-prefix $MY_ROOT \
|
||||||
|
-o X-mount.mkdir >> $TS_OUTPUT 2>> $TS_ERRLOG
|
||||||
|
[ $? == 0 ] || ts_log "mount failed"
|
||||||
|
$TS_CMD_UMOUNT $MY_ROOT/foo/{A,B,C,D}
|
||||||
|
[ $? == 0 ] || ts_log "umount failed"
|
||||||
|
ts_finalize_subtest
|
||||||
|
|
||||||
|
ts_finalize
|
Loading…
Reference in New Issue