summaryrefslogtreecommitdiffstats
path: root/tests/ts/partx
diff options
context:
space:
mode:
authorOndrej Oprala2013-04-10 15:27:59 +0200
committerKarel Zak2013-04-26 10:03:37 +0200
commit3a8f26bdcc6cb2242cb92718fcdfc195760cab51 (patch)
treecbe71e81675711f9c8a23015da0d7090f5e1aa38 /tests/ts/partx
parentbuild-sys: release++ (v2.23) (diff)
downloadkernel-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-xtests/ts/partx/partx92
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