summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2014-03-12 11:16:17 -0500
committerDavid Teigland <teigland@redhat.com>2014-03-12 11:19:27 -0500
commitbc0f5684c93278c6083b50d71bb4cf8c2e7a4fb4 (patch)
treee1f536b1c388d179024ce6591da3100cb2948ed8
parent64a8fb13ab49653bc4b69822c3206b5295628256 (diff)
downloadlvm2-dev-dct-process-v8.tar.gz
test: add process-each-vguuiddev-dct-process-v8
-rw-r--r--test/shell/process-each-vguuid.sh350
1 files changed, 350 insertions, 0 deletions
diff --git a/test/shell/process-each-vguuid.sh b/test/shell/process-each-vguuid.sh
new file mode 100644
index 000000000..9173a3405
--- /dev/null
+++ b/test/shell/process-each-vguuid.sh
@@ -0,0 +1,350 @@
+#!/bin/sh
+# Copyright (C) 2008-2013 Red Hat, Inc. All rights reserved.
+#
+# This copyrighted material is made available to anyone wishing to use,
+# modify, copy, or redistribute it subject to the terms and conditions
+# of the GNU General Public License v.2.
+
+test_description='Test vg uuids as command args to process_each_vg commands'
+
+# TODO: test uuid args with other process_each_vg commands beyond vgs
+
+. lib/test
+
+aux prepare_devs 7
+
+pvcreate $dev1
+pvcreate $dev2
+pvcreate $dev3
+
+vgcreate $vg1 $dev1
+UUID1=$(vgs --noheading -o vg_uuid $vg1 | sed s/' '//g)
+
+vgcreate $vg2 $dev2
+UUID2=$(vgs --noheading -o vg_uuid $vg2 | sed s/' '//g)
+
+vgcreate $vg3 $dev3
+UUID3=$(vgs --noheading -o vg_uuid $vg3 | sed s/' '//g)
+
+vgs -o+vg_uuid >err
+cat err
+grep $vg1 err
+grep $vg2 err
+grep $vg3 err
+grep $UUID1 err
+grep $UUID2 err
+grep $UUID3 err
+
+vgs -o+vg_uuid $vg1 >err
+grep $vg1 err
+grep $UUID1 err
+not grep $vg2 err
+not grep $UUID2 err
+not grep $vg3 err
+not grep $UUID3 err
+
+vgs -o+vg_uuid $UUID1 >err
+grep $vg1 err
+grep $UUID1 err
+not grep $vg2 err
+not grep $UUID2 err
+not grep $vg3 err
+not grep $UUID3 err
+
+vgs -o+vg_uuid $vg2 >err
+grep $vg2 err
+grep $UUID2 err
+not grep $vg1 err
+not grep $UUID1 err
+not grep $vg3 err
+not grep $UUID3 err
+
+vgs -o+vg_uuid $UUID2 >err
+grep $vg2 err
+grep $UUID2 err
+not grep $vg1 err
+not grep $UUID1 err
+not grep $vg3 err
+not grep $UUID3 err
+
+vgs -o+vg_uuid $UUID1 $UUID2 >err
+grep $vg1 err
+grep $vg2 err
+grep $UUID1 err
+grep $UUID2 err
+not grep $vg3 err
+not grep $UUID3 err
+
+UUID1B=$(echo $UUID1 | sed s/-//g)
+vgs -o+vg_uuid $UUID1B >err
+grep $vg1 err
+grep $UUID1 err
+not grep $UUID1B err
+not grep $vg2 err
+not grep $UUID2 err
+not grep $vg3 err
+not grep $UUID3 err
+
+
+# create a vg with a uuid for a name
+
+NAME4=`uuidgen`
+vgcreate $NAME4 $dev4
+UUID4=$(vgs --noheading -o vg_uuid $NAME4 | sed s/' '//g)
+UUID4B=$(echo $UUID4 | sed s/-//g)
+
+vgs -o+vg_uuid >err
+grep $vg1 err
+grep $vg2 err
+grep $vg3 err
+grep $NAME4 err
+grep $UUID1 err
+grep $UUID2 err
+grep $UUID3 err
+grep $UUID4 err
+
+vgs -o+vg_uuid $NAME4 >err
+cat err
+not grep $vg1 err
+not grep $vg2 err
+not grep $vg3 err
+grep $NAME4 err
+not grep $UUID1 err
+not grep $UUID2 err
+not grep $UUID3 err
+grep $UUID4 err
+
+vgs -o+vg_uuid $UUID4 >err
+cat err
+not grep $vg1 err
+not grep $vg2 err
+not grep $vg3 err
+grep $NAME4 err
+not grep $UUID1 err
+not grep $UUID2 err
+not grep $UUID3 err
+grep $UUID4 err
+
+# after the vg is selected with NAME4, no vg is found to match UUID4
+not vgs -o name,vg_uuid --separator ',' $NAME4 $UUID4 | sed s/' '//g >err
+cat err
+not grep $vg1 err
+not grep $vg2 err
+not grep $vg3 err
+grep $NAME4,$UUID4 err
+not grep $UUID1 err
+not grep $UUID2 err
+not grep $UUID3 err
+
+vgs -o+vg_uuid $UUID4B >err
+cat err
+not grep $vg1 err
+not grep $vg2 err
+not grep $vg3 err
+grep $NAME4 err
+not grep $UUID1 err
+not grep $UUID2 err
+not grep $UUID3 err
+grep $UUID4 err
+not grep $UUID4B err
+
+vgs -o+vg_uuid $vg3 $UUID4 >err
+cat err
+not grep $vg1 err
+not grep $vg2 err
+grep $vg3 err
+grep $NAME4 err
+not grep $UUID1 err
+not grep $UUID2 err
+grep $UUID3 err
+grep $UUID4 err
+
+vgs -o+vg_uuid $UUID3 $UUID4 >err
+cat err
+not grep $vg1 err
+not grep $vg2 err
+grep $vg3 err
+grep $NAME4 err
+not grep $UUID1 err
+not grep $UUID2 err
+grep $UUID3 err
+grep $UUID4 err
+
+
+# create a vg with a name from the uuid of an existing vg
+
+NAME5=$vg5
+
+vgcreate $NAME5 $dev5
+UUID5=$(vgs --noheading -o vg_uuid $NAME5 | sed s/' '//g)
+
+NAME6=$UUID5
+vgcreate $NAME6 $dev6
+
+# get UUID6 for NAME6 while avoiding confusion with NAME5/UUID5
+vgs --noheading -o name,vg_uuid > lines.0
+cat lines.0
+grep -v $vg1 lines.0 > lines.1
+grep -v $vg2 lines.1 > lines.2
+grep -v $vg3 lines.2 > lines.3
+grep -v $NAME4 lines.3 > lines.4
+grep -v $NAME5 lines.4 > lines.5
+cat lines.5
+UUID6=$(cat lines.5 | awk '{print $2}')
+
+echo NAME4 is $NAME4
+echo UUID4 is $UUID4
+echo NAME5 is $NAME5
+echo UUID5 is $UUID5
+echo NAME6 is $NAME6
+echo UUID6 is $UUID6
+
+vgs >err
+cat err
+grep $vg1 err
+grep $vg2 err
+grep $vg3 err
+grep $NAME4 err
+grep $NAME5 err
+grep $NAME6 err
+
+vgs -o vg_uuid >err
+cat err
+grep $UUID1 err
+grep $UUID2 err
+grep $UUID3 err
+grep $UUID4 err
+grep $UUID5 err
+grep $UUID6 err
+
+vgs -o name,vg_uuid --separator ',' | sed s/' '//g >err
+cat err
+grep $vg1,$UUID1 err
+grep $vg2,$UUID2 err
+grep $vg3,$UUID3 err
+grep $NAME4,$UUID4 err
+grep $NAME5,$UUID5 err
+grep $NAME6,$UUID6 err
+
+# If a uuid string matches one vg's name and
+# another vg's uuid, then select the vg with
+# the matching name.
+#
+# name,uuid
+# X,Y
+# Y,Z
+# vgs Y shows Y,Z
+#
+# NAME5=X
+# UUID5=Y
+# NAME6=Y
+# UUID6=Z
+
+vgs -o name,vg_uuid --separator ',' $NAME5 | sed s/' '//g >err
+cat err
+not grep $vg1,$UUID1 err
+not grep $vg2,$UUID2 err
+not grep $vg3,$UUID3 err
+not grep $NAME4,$UUID4 err
+grep $NAME5,$UUID5 err
+not grep $NAME6,$UUID6 err
+
+vgs -o name,vg_uuid --separator ',' $NAME6 | sed s/' '//g >err
+cat err
+not grep $vg1,$UUID1 err
+not grep $vg2,$UUID2 err
+not grep $vg3,$UUID3 err
+not grep $NAME4,$UUID4 err
+not grep $NAME5,$UUID5 err
+grep $NAME6,$UUID6 err
+
+vgs -o name,vg_uuid --separator ',' $UUID5 | sed s/' '//g >err
+cat err
+not grep $vg1,$UUID1 err
+not grep $vg2,$UUID2 err
+not grep $vg3,$UUID3 err
+not grep $NAME4,$UUID4 err
+not grep $NAME5,$UUID5 err
+grep $NAME6,$UUID6 err
+
+vgs -o name,vg_uuid --separator ',' $UUID6 | sed s/' '//g >err
+cat err
+not grep $vg1,$UUID1 err
+not grep $vg2,$UUID2 err
+not grep $vg3,$UUID3 err
+not grep $NAME4,$UUID4 err
+not grep $NAME5,$UUID5 err
+grep $NAME6,$UUID6 err
+
+vgs -o name --separator ',' $NAME5 $NAME6 | sed s/' '//g >err
+cat err
+not grep $vg1 err
+not grep $vg2 err
+not grep $vg3 err
+not grep $NAME4 err
+grep $NAME5 err
+grep $NAME6 err
+
+# UUID5 and NAME6 are the same, and the command line processing
+# of vg names removes duplicate names, so only one is processed.
+# NAME6 is selected because uuids match vg names before vg uuids.
+vgs -o name --separator ',' $UUID5 $NAME6 | sed s/' '//g >err
+cat err
+not grep $vg1 err
+not grep $vg2 err
+not grep $vg3 err
+not grep $NAME4 err
+not grep $NAME5 err
+grep $NAME6 err
+
+# UUID5 selects the vg with NAME6, then UUID6 matches no vgs
+not vgs -o name --separator ',' $UUID5 $UUID6 | sed s/' '//g >err
+cat err
+not grep $vg1 err
+not grep $vg2 err
+not grep $vg3 err
+not grep $NAME4 err
+not grep $NAME5 err
+grep $NAME6 err
+
+
+# vg name is a uuid without dashes
+
+NAME7=`uuidgen`
+NAME7B=$(echo $NAME7 | sed s/-//g)
+vgcreate $NAME7B $dev7
+UUID7=$(vgs --noheading -o vg_uuid $NAME7B | sed s/' '//g)
+UUID7B=$(echo $UUID7 | sed s/-//g)
+
+vgs -o name $NAME7 >err
+cat err
+grep $NAME7B err
+not grep $NAME7 err
+
+vgs -o name $NAME7B >err
+cat err
+grep $NAME7B err
+not grep $NAME7 err
+
+vgs -o vg_uuid $UUID7 >err
+cat err
+grep $UUID7 err
+not grep $UUID7B err
+
+vgs -o vg_uuid $UUID7B >err
+cat err
+grep $UUID7 err
+not grep $UUID7B err
+
+
+# reporting unknown uuid should produce an error
+#
+# uuidgen and vgs put dashes in difference
+# locations in the uuid string, so we can't
+# grep for the full not found error string.
+
+UUIDBAD=`uuidgen`
+not vgs $UUIDBAD 2>err
+cat err
+grep "not found" err
+