summaryrefslogtreecommitdiffstats
path: root/test/shell/vgmerge-operation.sh
diff options
context:
space:
mode:
authorPetr Rockai <prockai@redhat.com>2011-11-21 00:15:42 +0000
committerPetr Rockai <prockai@redhat.com>2011-11-21 00:15:42 +0000
commitf2a3f0fe3dfb34b9d7344fae51083c392cfba8a8 (patch)
tree9009837b943364a498499117934d47c9439db3d6 /test/shell/vgmerge-operation.sh
parentcfe1ec8d1faa249fa86d0be27b41ac2b26736fe8 (diff)
downloadlvm2-f2a3f0fe3dfb34b9d7344fae51083c392cfba8a8.tar.gz
lvm2-f2a3f0fe3dfb34b9d7344fae51083c392cfba8a8.tar.xz
lvm2-f2a3f0fe3dfb34b9d7344fae51083c392cfba8a8.zip
Tidy the shell tests into their own subdir. We now have:
- test/lib -- infrastructure and helper code - test/api -- liblvm2app API tests - test/unit -- C-based unit tests - test/shell -- shell-based functional tests
Diffstat (limited to 'test/shell/vgmerge-operation.sh')
-rw-r--r--test/shell/vgmerge-operation.sh81
1 files changed, 81 insertions, 0 deletions
diff --git a/test/shell/vgmerge-operation.sh b/test/shell/vgmerge-operation.sh
new file mode 100644
index 00000000..73099b2e
--- /dev/null
+++ b/test/shell/vgmerge-operation.sh
@@ -0,0 +1,81 @@
+#!/bin/sh
+# Copyright (C) 2007-2008 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='Test vgmerge operation'
+
+. lib/test
+
+aux prepare_pvs 4 64
+
+# 'vgmerge succeeds with single linear LV in source VG'
+vgcreate -c n $vg1 $dev1 $dev2
+vgcreate -c n $vg2 $dev3 $dev4
+lvcreate -l 4 -n $lv1 $vg1 $dev1
+vgchange -an $vg1
+check pvlv_counts $vg1 2 1 0
+check pvlv_counts $vg2 2 0 0
+vgmerge $vg2 $vg1
+check pvlv_counts $vg2 4 1 0
+vgremove -f $vg2
+
+# 'vgmerge succeeds with single linear LV in source and destination VG'
+vgcreate -c n $vg1 $dev1 $dev2
+vgcreate -c n $vg2 $dev3 $dev4
+lvcreate -l 4 -n $lv1 $vg1
+lvcreate -l 4 -n $lv2 $vg2
+vgchange -an $vg1
+vgchange -an $vg2
+check pvlv_counts $vg1 2 1 0
+check pvlv_counts $vg2 2 1 0
+vgmerge $vg2 $vg1
+check pvlv_counts $vg2 4 2 0
+vgremove -f $vg2
+
+# 'vgmerge succeeds with linear LV + snapshots in source VG'
+vgcreate -c n $vg1 $dev1 $dev2
+vgcreate -c n $vg2 $dev3 $dev4
+lvcreate -l 16 -n $lv1 $vg1
+lvcreate -l 4 -s -n $lv2 $vg1/$lv1
+vgchange -an $vg1
+check pvlv_counts $vg1 2 2 1
+check pvlv_counts $vg2 2 0 0
+vgmerge $vg2 $vg1
+check pvlv_counts $vg2 4 2 1
+lvremove -f $vg2/$lv2
+vgremove -f $vg2
+
+# 'vgmerge succeeds with mirrored LV in source VG'
+vgcreate -c n $vg1 $dev1 $dev2 $dev3
+vgcreate -c n $vg2 $dev4
+lvcreate -l 4 -n $lv1 -m1 $vg1
+vgchange -an $vg1
+check pvlv_counts $vg1 3 1 0
+check pvlv_counts $vg2 1 0 0
+vgmerge $vg2 $vg1
+check pvlv_counts $vg2 4 1 0
+lvremove -f $vg2/$lv1
+vgremove -f $vg2
+
+# 'vgmerge rejects LV name collision'
+vgcreate -c n $vg1 $dev1 $dev2
+vgcreate -c n $vg2 $dev3 $dev4
+lvcreate -l 4 -n $lv1 $vg1
+lvcreate -l 4 -n $lv1 $vg2
+vgchange -an $vg1
+check pvlv_counts $vg1 2 1 0
+check pvlv_counts $vg2 2 1 0
+not vgmerge $vg2 $vg1 2>err
+grep "Duplicate logical volume name \"$lv1\" in \"$vg2\" and \"$vg1" err
+check pvlv_counts $vg1 2 1 0
+check pvlv_counts $vg2 2 1 0
+vgremove -f $vg1
+vgremove -f $vg2
+