diff options
Diffstat (limited to 'test/shell/process-each-vg.sh')
-rw-r--r-- | test/shell/process-each-vg.sh | 264 |
1 files changed, 264 insertions, 0 deletions
diff --git a/test/shell/process-each-vg.sh b/test/shell/process-each-vg.sh new file mode 100644 index 000000000..90c0dbc74 --- /dev/null +++ b/test/shell/process-each-vg.sh @@ -0,0 +1,264 @@ +#!/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. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +test_description='Exercise toollib process_each_vg' + +. lib/test + +aux prepare_devs 6 + +# +# process_each_vg is used by a number of vg commands; +# use 'vgremove' and 'vgs' to test it. +# +# The logic in process_each_vg is mainly related to +# selecting which vg's to process. +# + +# +# set up four vgs that we will remove +# +vgcreate $vg1 "$dev1" +vgcreate $vg2 "$dev2" +vgcreate $vg3 "$dev3" +vgcreate $vg4 "$dev4" + +# these two vgs will not be removed +vgcreate $vg5 "$dev5" +vgchange --addtag tagvg5 $vg5 +lvcreate -l 4 -n $lv1 $vg5 +vgcreate $vg6 "$dev6" +lvcreate -l 4 -n $lv2 $vg6 + +# should fail without any arg +not vgremove + +# should succeed +vgremove $vg1 +vgremove $vg2 $vg3 $vg4 + +# these should fail because they are already removed +not vgremove $vg1 +not vgremove $vg2 +not vgremove $vg3 +not vgremove $vg4 + +# these should fail because they have lvs in them +not vgremove $vg5 +not vgremove $vg6 + +# check that the vgs we removed are gone +not vgs $vg1 +not vgs $vg2 +not vgs $vg3 +not vgs $vg4 + + +# +# set up four vgs that we will remove +# +vgcreate --addtag tagfoo $vg1 "$dev1" +vgcreate --addtag tagfoo $vg2 "$dev2" +vgcreate --addtag tagfoo2 $vg3 "$dev3" +vgcreate --addtag tagbar $vg4 "$dev4" +vgchange --addtag foo $vg4 + +# should do nothing and fail +not vgremove garbage + +# should find nothing to remove +vgremove @garbage + +# should find nothing to remove +vgremove @$vg1 + +# should succeed +vgremove $vg1 +not vgs $vg1 + +vgremove $vg2 $vg3 $vg4 +not vgs $vg2 +not vgs $vg3 +not vgs $vg4 + + +# +# set up four vgs that we will remove +# +vgcreate --addtag tagfoo $vg1 "$dev1" +vgcreate --addtag tagfoo $vg2 "$dev2" +vgcreate --addtag tagfoo2 $vg3 "$dev3" +vgcreate --addtag tagbar $vg4 "$dev4" +vgchange --addtag foo $vg4 + +vgremove @tagfoo +not vgs $vg1 +not vgs $vg2 + +vgremove @tagfoo2 @tagbar +not vgs $vg3 +not vgs $vg4 + + +# +# set up four vgs that we will remove +# +vgcreate --addtag tagfoo $vg1 "$dev1" +vgcreate --addtag tagfoo $vg2 "$dev2" +vgcreate --addtag tagfoo2 $vg3 "$dev3" +vgcreate --addtag tagbar $vg4 "$dev4" +vgchange --addtag foo $vg4 + +vgremove $vg1 @tagfoo2 +not vgs $vg1 +not vgs $vg3 + +vgremove @tagbar $vg2 +not vgs $vg2 +not vgs $vg4 + + +# +# set up four vgs that we will remove +# +vgcreate --addtag tagfoo $vg1 "$dev1" +vgcreate --addtag tagfoo $vg2 "$dev2" +vgcreate --addtag tagfoo2 $vg3 "$dev3" +vgcreate --addtag tagbar $vg4 "$dev4" +vgchange --addtag foo $vg4 + +vgremove @foo @tagfoo2 $vg1 $vg2 +not vgs $vg1 +not vgs $vg2 +not vgs $vg3 +not vgs $vg4 + + +# +# set up four vgs that we will remove +# +vgcreate --addtag tagfoo $vg1 "$dev1" +vgcreate --addtag tagfoo $vg2 "$dev2" +vgcreate --addtag tagfoo2 $vg3 "$dev3" +vgcreate --addtag tagbar $vg4 "$dev4" +vgchange --addtag foo $vg4 + +vgremove @tagfoo $vg1 @tagfoo @tagfoo2 $vg3 @tagbar +not vgs $vg1 +not vgs $vg2 +not vgs $vg3 +not vgs $vg4 + + +# +# set up four vgs that we will remove +# +vgcreate --addtag tagfoo $vg1 "$dev1" +vgcreate --addtag tagfoo $vg2 "$dev2" +vgcreate --addtag tagfoo2 $vg3 "$dev3" +vgcreate --addtag tagbar $vg4 "$dev4" +vgchange --addtag foo $vg4 + +not vgremove garbage $vg1 +not vgs $vg1 + +not vgremove $vg2 garbage +not vgs $vg2 + +vgremove $vg3 @garbage +not vgs $vg3 + +vgremove @garbage $vg4 +not vgs $vg4 + + +# +# end vgremove tests +# check that the two vgs we did not intend to remove +# are still there, and then remove them +# +vgs $vg5 +vgs $vg6 +vgremove -f $vg5 +vgremove -f $vg6 +not vgs $vg5 +not vgs $vg6 + + +# +# set up four vgs that we will report +# +vgcreate --addtag tagfoo $vg1 "$dev1" +vgcreate --addtag tagfoo $vg2 "$dev2" +vgcreate --addtag tagfoo2 $vg3 "$dev3" +vgcreate --addtag tagbar $vg4 "$dev4" +vgchange --addtag foo $vg4 + +vgs >err +grep $vg1 err +grep $vg2 err +grep $vg3 err +grep $vg4 err + +vgs $vg1 $vg2 >err +grep $vg1 err +grep $vg2 err +not grep $vg3 err +not grep $vg4 err + +vgs @tagfoo >err +grep $vg1 err +grep $vg2 err +not grep $vg3 err +not grep $vg4 err + +vgs @tagfoo2 >err +grep $vg3 err +not grep $vg1 err +not grep $vg2 err +not grep $vg4 err + +vgs @tagfoo2 @tagbar >err +grep $vg3 err +grep $vg4 err +not grep $vg1 err +not grep $vg2 err + +vgs $vg1 @tagbar >err +grep $vg1 err +grep $vg4 err +not grep $vg2 err +not grep $vg3 err + +vgs $vg1 @tagfoo >err +grep $vg1 err +grep $vg2 err +not grep $vg3 err +not grep $vg4 err + +not vgs garbage >err +not grep $vg1 err +not grep $vg2 err +not grep $vg3 err +not grep $vg4 err + +not vgs garbage $vg1 >err +grep $vg1 err +not grep $vg2 err +not grep $vg3 err +not grep $vg4 err + +vgs @garbage @foo >err +grep $vg4 err +not grep $vg1 err +not grep $vg2 err +not grep $vg3 err + |