diff options
author | Ondrej Oprala | 2013-04-10 15:27:59 +0200 |
---|---|---|
committer | Karel Zak | 2013-04-26 10:03:37 +0200 |
commit | 3a8f26bdcc6cb2242cb92718fcdfc195760cab51 (patch) | |
tree | cbe71e81675711f9c8a23015da0d7090f5e1aa38 /tests/ts/partx | |
parent | build-sys: release++ (v2.23) (diff) | |
download | kernel-qcow2-util-linux-3a8f26bdcc6cb2242cb92718fcdfc195760cab51.tar.gz kernel-qcow2-util-linux-3a8f26bdcc6cb2242cb92718fcdfc195760cab51.tar.xz kernel-qcow2-util-linux-3a8f26bdcc6cb2242cb92718fcdfc195760cab51.zip |
tests: add partx regression tests
Signed-off-by: Ondrej Oprala <ooprala@redhat.com>
Diffstat (limited to 'tests/ts/partx')
-rwxr-xr-x | tests/ts/partx/partx | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/tests/ts/partx/partx b/tests/ts/partx/partx index f09d96b86..3567cf87b 100755 --- a/tests/ts/partx/partx +++ b/tests/ts/partx/partx @@ -19,10 +19,12 @@ TS_TOPDIR="$(dirname $0)/../.." TS_DESC="partitions probing" TS_IMGDIR="$TS_TOPDIR/ts/blkid/images-pt" +PARTS=3 . $TS_TOPDIR/functions.sh ts_init "$*" +ts_skip_nonroot if [ ! -x "$TS_CMD_PARTX" ]; then ts_skip "partx disabled" @@ -42,4 +44,94 @@ for img in $(ls $TS_IMGDIR/*.img.bz2 | sort); do ts_finalize_subtest done +modprobe --dry-run --quiet scsi_debug +[ "$?" == 0 ] || ts_skip "missing scsi_debug module" + +rmmod scsi_debug &> /dev/null +modprobe scsi_debug dev_size_mb=50 +[ "$?" == 0 ] || ts_die "Cannot init device" + +sleep 3 + +DEVNAME=$(grep scsi_debug /sys/block/*/device/model | awk -F '/' '{print $4}') +[ "x${DEVNAME}" == "x" ] && ts_die "Cannot find device" + +DEVICE="/dev/${DEVNAME}" + +ts_init_subtest "addpart" +$TS_CMD_ADDPART ${DEVICE} 1 0 1 +[ "$?" == 0 ] && echo OK &>$TS_OUTPUT || ts_die "Unable to add partition"a &>$TS_OUTPUT +ts_finalize_subtest + +sleep 1 + +ts_init_subtest "delpart" +$TS_CMD_DELPART ${DEVICE} 1 +[ "$?" == 0 ] && echo OK >> $TS_OUTPUT 2>&1 || ts_die "Unable to remove partition" >> $TS_OUTPUT 2>&1 +ts_finalize_subtest + +rmmod scsi_debug &> /dev/null +modprobe scsi_debug dev_size_mb=50 num_parts=$PARTS +[ "$?" == 0 ] || ts_die "Cannot init device" + +sleep 3 + +DEVNAME=$(grep scsi_debug /sys/block/*/device/model | awk -F '/' '{print $4}') +[ "x${DEVNAME}" == "x" ] && ts_die "Cannot find device" + +DEVICE="/dev/${DEVNAME}" + +ts_init_subtest "detect-parts" +#detect PARTS partitions +$TS_CMD_PARTX --show --noheadings $DEVICE &> $TS_OUTPUT +ts_finalize_subtest + +ts_init_subtest "delete-all" +#delete partinfo +$TS_CMD_PARTX --delete $DEVICE &> $TS_OUTPUT +[ $? -eq 0 ] && echo "partitions deleted" &> $TS_OUTPUT || + echo "Unable to delete partitions on $DEVICE" &> $TS_OUTPUT +ls -d "/sys/block/${DEVNAME}/${DEVNAME}*" 2>/dev/null && ts_die +ts_finalize_subtest + +ts_init_subtest "add-all" +#read DEVICE and restore the partinfo +$TS_CMD_PARTX --add $DEVICE &> $TS_OUTPUT +[ $(ls -d /sys/block/${DEVNAME}/${DEVNAME}* 2>/dev/null | wc -l) -eq $PARTS ] && + echo "partitions added" >> $TS_OUTPUT 2>&1 || + echo "Unable to add partitions for $DEVICE" >> $TS_OUTPUT 2>&1 +ts_finalize_subtest + +sleep 1 + +ts_init_subtest "delete-one" +#remove last partition only +$TS_CMD_PARTX -d --nr -1 $DEVICE >> $TS_OUTPUT 2>&1 +[ $(ls -d /sys/block/${DEVNAME}/${DEVNAME}* 2>/dev/null | +wc -l) -eq $((PARTS-1)) ] && + echo "last partition removed" >> $TS_OUTPUT 2>&1 || + echo "Unable to remove a partition on $DEVICE" >> $TS_OUTPUT 2>&1 +ts_finalize_subtest + +ts_init_subtest "delete-non-existent" +#attempt to remove it again +$TS_CMD_PARTX -d $PARTS $DEVICE && echo "partx failed: removed non-existing partition" &>$TS_OUTPUT || echo "partx: OK" &>$TS_OUTPUT +ts_finalize_subtest + +ts_init_subtest "add-existing" +#try adding an existing partition +$TS_CMD_PARTX -a --nr 1 $DEVICE &>/dev/null && echo "partx failed: re-added an existing partition" &> $TS_OUTPUT || echo "partx: OK" &> $TS_OUTPUT +ts_finalize_subtest + +ts_init_subtest "change-by-range" +# {-a|-d} --nr 0 should handle all partitions +$TS_CMD_PARTX -d --nr 0 $DEVICE +ls -d /sys/block/${DEVNAME}/${DEVNAME}* 2>/dev/null && echo "Unable to delete partitions on $DEVICE" >> $TS_OUTPUT 2>&1 || echo "partitions deleted" >> $TS_OUTPUT 2>&1 +$TS_CMD_PARTX -a --nr 0 $DEVICE +[ $(ls -d /sys/block/${DEVNAME}/${DEVNAME}* 2>/dev/null | wc -l) -eq $PARTS ] && echo "partitions added" >> $TS_OUTPUT 2>&1 || echo "Failed to add $DEVICE partitions" >> $TS_OUTPUT 2>&1 +ts_finalize_subtest + +sleep 3 +rmmod scsi_debug + ts_finalize |