public inbox for lvm2-cvs@sourceware.org
help / color / mirror / Atom feed
* LVM2/test t-lvcreate-pvtags.sh t-lvmcache-exer ...
@ 2008-09-29 16:02 mornfall
0 siblings, 0 replies; only message in thread
From: mornfall @ 2008-09-29 16:02 UTC (permalink / raw)
To: lvm-devel, lvm2-cvs
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: mornfall@sourceware.org 2008-09-29 16:02:50
Modified files:
test : t-lvcreate-pvtags.sh t-lvmcache-exercise.sh
t-lvresize-usage.sh t-mirror-lvconvert.sh
t-mirror-vgreduce-removemissing.sh
t-000-basic.sh t-pool-labels.sh t-metadata.sh
t-covercmd.sh t-pvcreate-operation.sh
t-vgrename-usage.sh
Log message:
Update a bunch of tests to use functionality from test-utils.sh.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvcreate-pvtags.sh.diff?cvsroot=lvm2&r1=1.3&r2=1.4
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvmcache-exercise.sh.diff?cvsroot=lvm2&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvresize-usage.sh.diff?cvsroot=lvm2&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-mirror-lvconvert.sh.diff?cvsroot=lvm2&r1=1.3&r2=1.4
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-mirror-vgreduce-removemissing.sh.diff?cvsroot=lvm2&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-000-basic.sh.diff?cvsroot=lvm2&r1=1.3&r2=1.4
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-pool-labels.sh.diff?cvsroot=lvm2&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-metadata.sh.diff?cvsroot=lvm2&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-covercmd.sh.diff?cvsroot=lvm2&r1=1.3&r2=1.4
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-pvcreate-operation.sh.diff?cvsroot=lvm2&r1=1.9&r2=1.10
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-vgrename-usage.sh.diff?cvsroot=lvm2&r1=1.2&r2=1.3
--- LVM2/test/t-lvcreate-pvtags.sh 2007/10/09 13:13:06 1.3
+++ LVM2/test/t-lvcreate-pvtags.sh 2008/09/29 16:02:49 1.4
@@ -1,5 +1,4 @@
-#!/bin/sh
-# Copyright (C) 2007 Red Hat, Inc. All rights reserved.
+# Copyright (C) 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
@@ -9,81 +8,33 @@
# 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="ensure that lvcreate's select-by-tag code works"
-privileges_required_=1
+. ./test-utils.sh
-. ./test-lib.sh
+aux prepare_pvs 3
-dmsetup_has_dm_devdir_support_ ||
-{
- say "Your version of dmsetup lacks support for changing DM_DEVDIR."
- say "Skipping this test"
- exit 0
-}
-
-cleanup_()
-{
- test -n "$vg" && {
- lvremove -ff $vg
- vgremove $vg
- } > /dev/null
- test -n "$pvs" && {
- pvremove $pvs > /dev/null
- for d in $pvs; do
- dmsetup remove $(basename $d)
- done
- }
- losetup -d $lodev
- rm -f $lofile
-}
-
-nr_pvs=3
-pvsize=$((200 * 1024 * 2))
-
-test_expect_success \
- 'set up temp file and loopback device' \
- 'lofile=$(pwd)/lofile && lodev=$(loop_setup_ "$lofile")'
-
-offset=0
-pvs=
-for n in $(seq 1 $nr_pvs); do
- test_expect_success \
- "create pv$n" \
- 'echo "0 $pvsize linear $lodev $offset" > in &&
- dmsetup create pv$n < in'
- offset=$(($offset + $pvsize))
-done
-
-for n in $(seq 1 $nr_pvs); do
- pvs="$pvs $G_dev_/mapper/pv$n"
-done
-
-test_expect_success \
- "Run this: pvcreate $pvs" \
- 'pvcreate $pvs'
-
-vg=lvcreate-pvtags-vg-$$
-test_expect_success \
- 'set up a VG with tagged PVs' \
- 'vgcreate $vg $pvs &&
- pvchange --addtag fast $pvs'
-
-test_expect_success '3 stripes with 3 PVs (selected by tag, @fast) is fine' \
- 'lvcreate -l3 -i3 $vg @fast'
-test_expect_failure 'too many stripes(4) for 3 PVs' \
- 'lvcreate -l4 -i4 $vg @fast'
-test_expect_failure '2 stripes is too many with just one PV' \
- 'lvcreate -l2 -i2 $vg $G_dev_/mapper/pv1'
-
-test_expect_success 'lvcreate mirror' \
- 'lvcreate -l1 -m1 $vg @fast'
-test_expect_success 'lvcreate mirror w/corelog' \
- 'lvcreate -l1 -m2 --corelog $vg @fast'
-test_expect_failure 'lvcreate mirror w/no free PVs' \
- 'lvcreate -l1 -m2 $vg @fast'
-test_expect_failure 'lvcreate mirror (corelog, w/no free PVs)' \
- 'lvcreate -l1 -m3 --corelog $vg @fast'
-test_expect_failure 'lvcreate mirror with a single PV arg' \
- 'lvcreate -l1 -m1 --corelog $vg $G_dev_/mapper/pv1'
+vgcreate $vg $devs
+pvchange --addtag fast $devs
-test_done
+# 3 stripes with 3 PVs (selected by tag, @fast) is fine
+lvcreate -l3 -i3 $vg @fast
+
+# too many stripes(4) for 3 PVs
+not lvcreate -l4 -i4 $vg @fast
+
+# 2 stripes is too many with just one PV
+not lvcreate -l2 -i2 $vg $G_dev_/mapper/pv1
+
+# lvcreate mirror
+lvcreate -l1 -m1 $vg @fast
+
+# lvcreate mirror w/corelog
+lvcreate -l1 -m2 --corelog $vg @fast
+
+# lvcreate mirror w/no free PVs
+not lvcreate -l1 -m2 $vg @fast
+
+# lvcreate mirror (corelog, w/no free PVs)
+not lvcreate -l1 -m3 --corelog $vg @fast
+
+# lvcreate mirror with a single PV arg
+not lvcreate -l1 -m1 --corelog $vg $dev1
--- LVM2/test/t-lvmcache-exercise.sh 2008/06/09 15:31:58 1.1
+++ LVM2/test/t-lvmcache-exercise.sh 2008/09/29 16:02:49 1.2
@@ -1,5 +1,4 @@
-#!/bin/sh
-# Copyright (C) 2007 Red Hat, Inc. All rights reserved.
+# Copyright (C) 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
@@ -9,53 +8,16 @@
# 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 lvmcache operation'
-privileges_required_=1
+. ./test-utils.sh
-. ./test-lib.sh
+aux prepare_pvs 5
-cleanup_()
-{
- test -n "$d1" && losetup -d "$d1"
- test -n "$d2" && losetup -d "$d2"
- test -n "$d3" && losetup -d "$d3"
- test -n "$d4" && losetup -d "$d4"
- test -n "$d5" && losetup -d "$d5"
- rm -f "$f1" "$f2" "$f3" "$f4" "$f5"
-}
+vgcreate $vg1 $dev1
+vgcreate $vg2 $dev3
-# FIXME: paramaterize lvm1 vs lvm2 metadata; most of these tests should run
-# fine with lvm1 metadata as well; for now, just add disks 5 and 6 as lvm1
-# metadata
-test_expect_success \
- 'set up temp files, loopback devices, PVs, vgnames' \
- 'f1=$(pwd)/1 && d1=$(loop_setup_ "$f1") &&
- f2=$(pwd)/2 && d2=$(loop_setup_ "$f2") &&
- f3=$(pwd)/3 && d3=$(loop_setup_ "$f3") &&
- f4=$(pwd)/4 && d4=$(loop_setup_ "$f4") &&
- f5=$(pwd)/5 && d5=$(loop_setup_ "$f5") &&
- vg1=$(this_test_)-test-vg1-$$ &&
- vg2=$(this_test_)-test-vg2-$$ &&
- lv1=$(this_test_)-test-lv1-$$ &&
- lv2=$(this_test_)-test-lv2-$$ &&
- lv3=$(this_test_)-test-lv3-$$ &&
- pvcreate $d1 $d2 $d3 $d4 $d5'
-
-#
-# Duplicate vg name should cause warnings (but not segfault!)
-#
-test_expect_success \
- "Duplicate vg name might cause warnings but should succeed" \
- 'vgcreate $vg1 $d1 &&
- vgcreate $vg2 $d3 &&
- losetup -d $d1 &&
- vgcreate $vg1 $d2 &&
- losetup $d1 $f1 &&
- pvs &&
- pvs'
-
-test_done
-
-# Local Variables:
-# indent-tabs-mode: nil
-# End:
+disable_dev $dev1
+pvscan
+vgcreate $vg1 $dev2
+enable_dev $dev1
+pvs
+pvs
--- LVM2/test/t-lvresize-usage.sh 2008/04/10 19:59:43 1.2
+++ LVM2/test/t-lvresize-usage.sh 2008/09/29 16:02:49 1.3
@@ -1,4 +1,3 @@
-#!/bin/sh
# Copyright (C) 2007-2008 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing to use,
@@ -9,47 +8,13 @@
# 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 lvresize command options for validity'
-privileges_required_=1
+. ./test-utils.sh
-. ./test-lib.sh
+aux prepare_vg 2
-cleanup_()
-{
- test -n "$vg" && {
- vgchange -an "$vg"
- lvremove -ff "$vg"
- vgremove "$vg"
- } > "$test_dir_/cleanup.log"
- test -n "$d1" && losetup -d "$d1"
- test -n "$d2" && losetup -d "$d2"
- rm -f "$f1" "$f2"
-}
+lvcreate -L 10M -n lv -i2 $vg
+lvresize -l +4 $vg/lv
+lvremove -ff $vg
-test_expect_success \
- 'set up temp files, loopback devices, PVs, and a VG' \
- 'f1=$(pwd)/1 && d1=$(loop_setup_ "$f1") &&
- f2=$(pwd)/2 && d2=$(loop_setup_ "$f2") &&
- pvcreate $d1 $d2 &&
- vg=$(this_test_)-test-vg-$$ &&
- vgcreate $vg $d1 $d2'
-
-lv=lvresize-usage-$$
-
-test_expect_success \
- 'lvresize normal operation succeeds' \
- 'lvcreate -L 64M -n $lv -i2 $vg &&
- lvresize -l +4 $vg/$lv &&
- lvremove -ff $vg'
-
-test_expect_success \
- 'lvresize rejects an invalid vgname' \
- 'lvcreate -L 64M -n $lv -i2 $vg &&
- lvresize -v -l +4 xxx/$lv &&
- echo status=$?; test $? = 5 &&
- lvremove -ff $vg'
-
-test_done
-# Local Variables:
-# indent-tabs-mode: nil
-# End:
+lvcreate -L 64M -n $lv -i2 $vg
+not lvresize -v -l +4 xxx/$lv
--- LVM2/test/t-mirror-lvconvert.sh 2008/04/23 18:27:59 1.3
+++ LVM2/test/t-mirror-lvconvert.sh 2008/09/29 16:02:49 1.4
@@ -1,4 +1,3 @@
-#!/bin/sh
# Copyright (C) 2007 Red Hat, Inc. All rights reserved.
# Copyright (C) 2007 NEC Corporation
#
@@ -10,57 +9,9 @@
# 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="ensure that lvconvert for mirrored LV works"
-privileges_required_=1
+. ./test-utils.sh
-. ./test-lib.sh
-
-dmsetup_has_dm_devdir_support_ ||
-{
- say "Your version of dmsetup lacks support for changing DM_DEVDIR."
- say "Skipping this test"
- exit 0
-}
-
-cleanup_()
-{
- test -n "$vg" && {
- lvremove -ff $vg
- vgremove $vg
- } > /dev/null
- test -n "$pvs" && {
- pvremove $pvs > /dev/null
- for d in $pvs; do
- dmsetup remove $(basename $d)
- done
- }
- losetup -d $lodev
- rm -f $lofile
-}
-
-# ---------------------------------------------------------------------
-# config
-
-nr_pvs=5
-pvsize=$((80 * 1024 * 2))
-
-vg=mirror-lvconvert-vg-$$
-lv1=lv1
-lv2=lv2
-lv3=lv3
-
-# ---------------------------------------------------------------------
-# Utilities
-
-pv_()
-{
- echo "$G_dev_/mapper/pv$1"
-}
-
-lvdev_()
-{
- echo "$G_dev_/$1/$2"
-}
+dmsetup_has_dm_devdir_support_ || exit 200
mimages_are_redundant_ ()
{
@@ -90,17 +41,6 @@
return 0
}
-lv_is_clung_ ()
-{
- local lv=$1
-
- # if any duplication is found, it's not redundant
- [ $(lvs -a -odevices --noheadings $lv | sed 's/([^)]*)//g' | \
- sort | uniq | wc -l) -ne 1 ] && return 1
-
- return 0
-}
-
mimages_are_contiguous_ ()
{
local vg=$1
@@ -114,26 +54,13 @@
return 0
}
-mimages_are_clung_ ()
-{
- local vg=$1
- local lv=$vg/$2
- local i
-
- for i in $(lvs -odevices --noheadings $lv | sed 's/([^)]*)//g; s/,/ /g'); do
- lv_is_clung_ $vg/$i || return 1
- done
-
- return 0
-}
-
mirrorlog_is_on_()
{
local lv="$1"_mlog
shift 1
lvs -a -odevices --noheadings $lv | sed 's/,/\n/g' > out
for d in $*; do grep "$d(" out || return 1; done
- for d in $*; do grep -v "$d(" out > out2; mv out2 out; done
+ for d in $*; do grep -v "$d(" out > out2 || true; mv out2 out; done
grep . out && return 1
return 0
}
@@ -176,53 +103,24 @@
! grep tmp out
}
-# ---------------------------------------------------------------------
-# Initialize PVs and VGs
-
-test_expect_success \
- 'set up temp file and loopback device' \
- 'lofile=$(pwd)/lofile && lodev=$(loop_setup_ "$lofile")'
-
-offset=0
-pvs=
-for n in $(seq 1 $nr_pvs); do
- test_expect_success \
- "create pv$n" \
- 'echo "0 $pvsize linear $lodev $offset" > in &&
- dmsetup create pv$n < in'
- offset=$(($offset + $pvsize))
-done
-
-for n in $(seq 1 $nr_pvs); do
- pvs="$pvs $(pv_ $n)"
-done
-
-test_expect_success \
- "Run this: pvcreate $pvs" \
- 'pvcreate $pvs'
-
-test_expect_success \
- 'set up a VG' \
- 'vgcreate $vg $pvs'
+aux prepare_vg 5
# ---------------------------------------------------------------------
# Common environment setup/cleanup for each sub testcases
prepare_lvs_()
{
- lvremove -ff $vg;
- :
+ lvremove -ff $vg
}
check_and_cleanup_lvs_()
{
- lvs -a -o+devices $vg &&
+ lvs -a -o+devices $vg
lvremove -ff $vg
}
-test_expect_success "check environment setup/cleanup" \
- 'prepare_lvs_ &&
- check_and_cleanup_lvs_'
+prepare_lvs_
+check_and_cleanup_lvs_
# ---------------------------------------------------------------------
# mirrored LV tests
@@ -230,48 +128,48 @@
# ---
# add mirror to mirror
-test_expect_success "add 1 mirror" \
- 'prepare_lvs_ &&
- lvcreate -l2 -m1 -n $lv1 $vg $(pv_ 1) $(pv_ 2) $(pv_ 3):0-1 &&
- check_mirror_count_ $vg/$lv1 2 &&
- check_mirror_log_ $vg/$lv1 &&
- lvconvert -m+1 -i1 $vg/$lv1 $(pv_ 4) &&
- check_no_tmplvs_ $vg/$lv1 &&
- check_mirror_count_ $vg/$lv1 3 &&
- mimages_are_redundant_ $vg $lv1 &&
- mirrorlog_is_on_ $vg/$lv1 $(pv_ 3) &&
- check_and_cleanup_lvs_'
-
-test_expect_success "add 2 mirrors" \
- 'prepare_lvs_ &&
- lvcreate -l2 -m1 -n $lv1 $vg $(pv_ 1) $(pv_ 2) $(pv_ 3):0-1 &&
- check_mirror_count_ $vg/$lv1 2 &&
- check_mirror_log_ $vg/$lv1 &&
- lvconvert -m+2 -i1 $vg/$lv1 $(pv_ 4) $(pv_ 5) &&
- check_no_tmplvs_ $vg/$lv1 &&
- check_mirror_count_ $vg/$lv1 4 &&
- mimages_are_redundant_ $vg $lv1 &&
- mirrorlog_is_on_ $vg/$lv1 $(pv_ 3) &&
- check_and_cleanup_lvs_'
-
-test_expect_success "add 1 mirror to core log mirror" \
- 'prepare_lvs_ &&
- lvcreate -l2 -m1 --mirrorlog core -n $lv1 $vg $(pv_ 1) $(pv_ 2) &&
- check_mirror_count_ $vg/$lv1 2 &&
- !(check_mirror_log_ $vg/$lv1) &&
- lvconvert -m+1 -i1 --mirrorlog core $vg/$lv1 $(pv_ 4) &&
- check_no_tmplvs_ $vg/$lv1 &&
- check_mirror_count_ $vg/$lv1 3 &&
- !(check_mirror_log_ $vg/$lv1) &&
- mimages_are_redundant_ $vg $lv1 &&
- check_and_cleanup_lvs_'
+# add 1 mirror
+prepare_lvs_
+lvcreate -l2 -m1 -n $lv1 $vg $dev1 $dev2 $dev3:0-1
+check_mirror_count_ $vg/$lv1 2
+check_mirror_log_ $vg/$lv1
+lvconvert -m+1 -i1 $vg/$lv1 $dev4
+check_no_tmplvs_ $vg/$lv1
+check_mirror_count_ $vg/$lv1 3
+mimages_are_redundant_ $vg $lv1
+mirrorlog_is_on_ $vg/$lv1 $dev3
+check_and_cleanup_lvs_
+
+# add 2 mirrors
+prepare_lvs_
+lvcreate -l2 -m1 -n $lv1 $vg $dev1 $dev2 $dev3:0-1
+check_mirror_count_ $vg/$lv1 2
+check_mirror_log_ $vg/$lv1
+lvconvert -m+2 -i1 $vg/$lv1 $dev4 $dev5
+check_no_tmplvs_ $vg/$lv1
+check_mirror_count_ $vg/$lv1 4
+mimages_are_redundant_ $vg $lv1
+mirrorlog_is_on_ $vg/$lv1 $dev3
+check_and_cleanup_lvs_
+
+# add 1 mirror to core log mirror
+prepare_lvs_
+lvcreate -l2 -m1 --mirrorlog core -n $lv1 $vg $dev1 $dev2
+check_mirror_count_ $vg/$lv1 2
+!(check_mirror_log_ $vg/$lv1)
+lvconvert -m+1 -i1 --mirrorlog core $vg/$lv1 $dev4 &&
+check_no_tmplvs_ $vg/$lv1 &&
+check_mirror_count_ $vg/$lv1 3 &&
+!(check_mirror_log_ $vg/$lv1) &&
+mimages_are_redundant_ $vg $lv1 &&
+check_and_cleanup_lvs_
test_expect_success "add 2 mirrors to core log mirror" \
'prepare_lvs_ &&
- lvcreate -l2 -m1 --mirrorlog core -n $lv1 $vg $(pv_ 1) $(pv_ 2) &&
+ lvcreate -l2 -m1 --mirrorlog core -n $lv1 $vg $dev1 $dev2 &&
check_mirror_count_ $vg/$lv1 2 &&
!(check_mirror_log_ $vg/$lv1) &&
- lvconvert -m+2 -i1 --mirrorlog core $vg/$lv1 $(pv_ 4) $(pv_ 5) &&
+ lvconvert -m+2 -i1 --mirrorlog core $vg/$lv1 $dev4 $dev5 &&
check_no_tmplvs_ $vg/$lv1 &&
check_mirror_count_ $vg/$lv1 4 &&
!(check_mirror_log_ $vg/$lv1) &&
@@ -281,118 +179,118 @@
# ---
# add to converting mirror
-test_expect_success "add 1 mirror then add 1 more mirror during conversion" \
- 'prepare_lvs_ &&
- lvcreate -l2 -m1 -n $lv1 $vg $(pv_ 1) $(pv_ 2) $(pv_ 3):0-1 &&
- check_mirror_count_ $vg/$lv1 2 &&
- check_mirror_log_ $vg/$lv1 &&
- lvconvert -m+1 -b -i100 $vg/$lv1 $(pv_ 4) &&
- lvconvert -m+1 -i3 $vg/$lv1 $(pv_ 5) &&
- check_no_tmplvs_ $vg/$lv1 &&
- check_mirror_count_ $vg/$lv1 4 &&
- mimages_are_redundant_ $vg $lv1 &&
- mirrorlog_is_on_ $vg/$lv1 $(pv_ 3) &&
- check_and_cleanup_lvs_'
+# add 1 mirror then add 1 more mirror during conversion
+prepare_lvs_
+lvcreate -l2 -m1 -n $lv1 $vg $dev1 $dev2 $dev3:0-1
+check_mirror_count_ $vg/$lv1 2
+check_mirror_log_ $vg/$lv1
+lvconvert -m+1 -b -i100 $vg/$lv1 $dev4
+lvconvert -m+1 -i3 $vg/$lv1 $dev5
+check_no_tmplvs_ $vg/$lv1
+check_mirror_count_ $vg/$lv1 4
+mimages_are_redundant_ $vg $lv1
+mirrorlog_is_on_ $vg/$lv1 $dev3
+check_and_cleanup_lvs_
# ---
# add mirror and disk log
test_expect_success "add 1 mirror and disk log" \
'prepare_lvs_ &&
- lvcreate -l2 -m1 --mirrorlog core -n $lv1 $vg $(pv_ 1) $(pv_ 2) &&
+ lvcreate -l2 -m1 --mirrorlog core -n $lv1 $vg $dev1 $dev2 &&
check_mirror_count_ $vg/$lv1 2 &&
!(check_mirror_log_ $vg/$lv1) &&
- lvconvert -m+1 --mirrorlog disk -i1 $vg/$lv1 $(pv_ 4) $(pv_ 3):0-1 &&
+ lvconvert -m+1 --mirrorlog disk -i1 $vg/$lv1 $dev4 $dev3:0-1 &&
check_no_tmplvs_ $vg/$lv1 &&
check_mirror_count_ $vg/$lv1 3 &&
check_mirror_log_ $vg/$lv1 &&
mimages_are_redundant_ $vg $lv1 &&
- mirrorlog_is_on_ $vg/$lv1 $(pv_ 3) &&
+ mirrorlog_is_on_ $vg/$lv1 $dev3 &&
check_and_cleanup_lvs_'
# ---
# check polldaemon restarts
-test_expect_success "convert inactive mirror and start polling" \
- 'prepare_lvs_ &&
- lvcreate -l2 -m1 -n $lv1 $vg $(pv_ 1) $(pv_ 2) $(pv_ 3):0-1 &&
- check_mirror_count_ $vg/$lv1 2 &&
- lvchange -an $vg/$lv1 &&
- lvconvert -m+1 $vg/$lv1 $(pv_ 4) &&
- lvchange -ay $vg/$lv1 &&
- wait_conversion_ $vg/$lv1 &&
- lvs -a &&
- check_no_tmplvs_ $vg/$lv1 &&
- check_and_cleanup_lvs_'
+# convert inactive mirror and start polling
+prepare_lvs_
+lvcreate -l2 -m1 -n $lv1 $vg $dev1 $dev2 $dev3:0-1
+check_mirror_count_ $vg/$lv1 2
+lvchange -an $vg/$lv1
+lvconvert -m+1 $vg/$lv1 $dev4
+lvchange -ay $vg/$lv1
+wait_conversion_ $vg/$lv1
+lvs -a
+check_no_tmplvs_ $vg/$lv1
+check_and_cleanup_lvs_
# ---------------------------------------------------------------------
# removal during conversion
test_expect_success "remove newly added mirror" \
'prepare_lvs_ &&
- lvcreate -l2 -m1 -n $lv1 $vg $(pv_ 1) $(pv_ 2) $(pv_ 3):0-1 &&
+ lvcreate -l2 -m1 -n $lv1 $vg $dev1 $dev2 $dev3:0-1 &&
check_mirror_count_ $vg/$lv1 2 &&
check_mirror_log_ $vg/$lv1 &&
- lvconvert -m+1 -b -i100 $vg/$lv1 $(pv_ 4) &&
- lvconvert -m-1 $vg/$lv1 $(pv_ 4) &&
+ lvconvert -m+1 -b -i100 $vg/$lv1 $dev4 &&
+ lvconvert -m-1 $vg/$lv1 $dev4 &&
wait_conversion_ $vg/$lv1 &&
check_no_tmplvs_ $vg/$lv1 &&
check_mirror_count_ $vg/$lv1 2 &&
mimages_are_redundant_ $vg $lv1 &&
- mirrorlog_is_on_ $vg/$lv1 $(pv_ 3) &&
+ mirrorlog_is_on_ $vg/$lv1 $dev3 &&
check_and_cleanup_lvs_'
test_expect_success "remove one of newly added mirrors" \
'prepare_lvs_ &&
- lvcreate -l2 -m1 -n $lv1 $vg $(pv_ 1) $(pv_ 2) $(pv_ 3):0-1 &&
+ lvcreate -l2 -m1 -n $lv1 $vg $dev1 $dev2 $dev3:0-1 &&
check_mirror_count_ $vg/$lv1 2 &&
check_mirror_log_ $vg/$lv1 &&
- lvconvert -m+2 -b -i100 $vg/$lv1 $(pv_ 4) $(pv_ 5) &&
- lvconvert -m-1 $vg/$lv1 $(pv_ 4) &&
+ lvconvert -m+2 -b -i100 $vg/$lv1 $dev4 $dev5 &&
+ lvconvert -m-1 $vg/$lv1 $dev4 &&
lvconvert -i1 $vg/$lv1 &&
wait_conversion_ $vg/$lv1 &&
check_no_tmplvs_ $vg/$lv1 &&
check_mirror_count_ $vg/$lv1 3 &&
mimages_are_redundant_ $vg $lv1 &&
- mirrorlog_is_on_ $vg/$lv1 $(pv_ 3) &&
+ mirrorlog_is_on_ $vg/$lv1 $dev3 &&
check_and_cleanup_lvs_'
test_expect_success "remove from original mirror (the original is still mirror)" \
'prepare_lvs_ &&
- lvcreate -l2 -m2 -n $lv1 $vg $(pv_ 1) $(pv_ 2) $(pv_ 5) $(pv_ 3):0-1 &&
+ lvcreate -l2 -m2 -n $lv1 $vg $dev1 $dev2 $dev5 $dev3:0-1 &&
check_mirror_count_ $vg/$lv1 3 &&
check_mirror_log_ $vg/$lv1 &&
- lvconvert -m+1 -b -i100 $vg/$lv1 $(pv_ 4) &&
- lvconvert -m-1 $vg/$lv1 $(pv_ 2) &&
+ lvconvert -m+1 -b -i100 $vg/$lv1 $dev4 &&
+ lvconvert -m-1 $vg/$lv1 $dev2 &&
lvconvert -i1 $vg/$lv1 &&
wait_conversion_ $vg/$lv1 &&
check_no_tmplvs_ $vg/$lv1 &&
check_mirror_count_ $vg/$lv1 3 &&
mimages_are_redundant_ $vg $lv1 &&
- mirrorlog_is_on_ $vg/$lv1 $(pv_ 3) &&
+ mirrorlog_is_on_ $vg/$lv1 $dev3 &&
check_and_cleanup_lvs_'
test_expect_success "remove from original mirror (the original becomes linear)" \
'prepare_lvs_ &&
- lvcreate -l2 -m1 -n $lv1 $vg $(pv_ 1) $(pv_ 2) $(pv_ 3):0-1 &&
+ lvcreate -l2 -m1 -n $lv1 $vg $dev1 $dev2 $dev3:0-1 &&
check_mirror_count_ $vg/$lv1 2 &&
check_mirror_log_ $vg/$lv1 &&
- lvconvert -m+1 -b -i100 $vg/$lv1 $(pv_ 4) &&
- lvconvert -m-1 $vg/$lv1 $(pv_ 2) &&
+ lvconvert -m+1 -b -i100 $vg/$lv1 $dev4 &&
+ lvconvert -m-1 $vg/$lv1 $dev2 &&
lvconvert -i1 $vg/$lv1 &&
wait_conversion_ $vg/$lv1 &&
check_no_tmplvs_ $vg/$lv1 &&
check_mirror_count_ $vg/$lv1 2 &&
mimages_are_redundant_ $vg $lv1 &&
- mirrorlog_is_on_ $vg/$lv1 $(pv_ 3) &&
+ mirrorlog_is_on_ $vg/$lv1 $dev3 &&
check_and_cleanup_lvs_'
test_expect_success "rhbz440405: lvconvert -m0 incorrectly fails if all PEs allocated" \
'prepare_lvs_ &&
- lvcreate -l`pvs --noheadings -ope_count $(pv_ 1)` -m1 -n $lv1 $vg $(pv_ 1) $(pv_ 2) $(pv_ 3):0 &&
+ lvcreate -l`pvs --noheadings -ope_count $dev1` -m1 -n $lv1 $vg $dev1 $dev2 $dev3:0 &&
check_mirror_count_ $vg/$lv1 2 &&
check_mirror_log_ $vg/$lv1 &&
- lvconvert -m0 $vg/$lv1 $(pv_ 1) &&
+ lvconvert -m0 $vg/$lv1 $dev1 &&
check_no_tmplvs_ $vg/$lv1 &&
check_mirror_count_ $vg/$lv1 1 &&
check_and_cleanup_lvs_'
--- LVM2/test/t-mirror-vgreduce-removemissing.sh 2008/09/19 16:10:46 1.2
+++ LVM2/test/t-mirror-vgreduce-removemissing.sh 2008/09/29 16:02:49 1.3
@@ -1,4 +1,3 @@
-#!/bin/sh
# Copyright (C) 2007 Red Hat, Inc. All rights reserved.
# Copyright (C) 2007 NEC Corporation
#
@@ -10,80 +9,12 @@
# 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="ensure that 'vgreduce --removemissing' works on mirrored LV"
-privileges_required_=1
+. ./test-utils.sh
-. ./test-lib.sh
+dmsetup_has_dm_devdir_support_ || exit 200
-dmsetup_has_dm_devdir_support_ ||
-{
- say "Your version of dmsetup lacks support for changing DM_DEVDIR."
- say "Skipping this test"
- exit 0
-}
-
-cleanup_()
-{
- test -n "$vg" && {
- lvremove -ff $vg
- vgremove $vg
- } > /dev/null
- test -n "$pvs" && {
- pvremove $pvs > /dev/null
- for d in $pvs; do
- dmsetup remove $(basename $d)
- done
- }
- losetup -d $lodev
- rm -f $lofile
-}
-
-# ---------------------------------------------------------------------
-# config
-
-nr_pvs=5
-pvsize=$((80 * 1024 * 2))
-
-vg=mirror-vgreduce-removemissing-vg-$$
-lv1=lv1
-lv2=lv2
-lv3=lv3
-
-# ---------------------------------------------------------------------
-# Utilities
-
-pv_()
-{
- echo "$G_dev_/mapper/pv$1"
-}
-
-fail_pv_()
-{
- local map
- local p
- for p in $*; do
- map=$(basename $p)
- echo "Fail $map"
- [ -e map_$map ] && return
- dmsetup table "$map" > "map_$map"
- echo "0 $pvsize error" | dmsetup load "$map"
- dmsetup resume "$map"
- done
-}
-
-recover_pv_()
-{
- local map
- local p
-
- for p in $*; do
- map=$(basename $p)
- echo "Recover $map"
- [ ! -e "map_$map" ] && return
- cat "map_$map" | dmsetup load "$map"
- dmsetup resume "$map"
- rm "map_$map"
- done
+pv_() {
+ eval "echo \$dev$1"
}
lv_is_on_ ()
@@ -106,7 +37,7 @@
{
local lv=$1
shift
- local pvs=$*
+ local pvs="$*"
local mimages
local i
@@ -135,6 +66,7 @@
lv_is_linear_()
{
echo "Check if $1 is linear LV (i.e. not a mirror)"
+ lvs -o stripes,attr --noheadings $vg/$1 | sed 's/ //g'
lvs -o stripes,attr --noheadings $vg/$1 | sed 's/ //g' | grep -q '^1-'
}
@@ -155,31 +87,7 @@
# ---------------------------------------------------------------------
# Initialize PVs and VGs
-test_expect_success \
- 'set up temp file and loopback device' \
- 'lofile=$(pwd)/lofile && lodev=$(loop_setup_ "$lofile")'
-
-offset=1
-pvs=
-for n in $(seq 1 $nr_pvs); do
- test_expect_success \
- "create pv$n" \
- 'echo "0 $pvsize linear $lodev $offset" > in &&
- dmsetup create pv$n < in'
- offset=$(($offset + $pvsize))
-done
-
-for n in $(seq 1 $nr_pvs); do
- pvs="$pvs $(pv_ $n)"
-done
-
-test_expect_success \
- "Run this: pvcreate $pvs" \
- 'pvcreate $pvs'
-
-test_expect_success \
- 'set up a VG' \
- 'vgcreate $vg $pvs'
+aux prepare_vg 5
# ---------------------------------------------------------------------
# Common environment setup/cleanup for each sub testcases
@@ -198,7 +106,7 @@
recover_vg_()
{
- recover_pv_ $* &&
+ enable_dev $* &&
pvcreate -ff $* &&
vgextend $vg $* &&
check_and_cleanup_lvs_
@@ -211,16 +119,17 @@
# ---------------------------------------------------------------------
# one of mirror images has failed
-test_expect_success "basic: fail the 2nd mirror image of 2-way mirrored LV" \
- 'prepare_lvs_ &&
- lvcreate -l2 -m1 -n $lv1 $vg $(pv_ 1) $(pv_ 2) $(pv_ 3):0-1 &&
- lvchange -an $vg/$lv1 &&
- mimages_are_on_ $lv1 $(pv_ 1) $(pv_ 2) &&
- mirrorlog_is_on_ $lv1 $(pv_ 3) &&
- fail_pv_ $(pv_ 2) &&
- vgreduce --removemissing --force $vg &&
- lv_is_linear_ $lv1 &&
- lv_is_on_ $lv1 $(pv_ 1)'
+# basic: fail the 2nd mirror image of 2-way mirrored LV
+prepare_lvs_
+lvcreate -l2 -m1 -n $lv1 $vg $(pv_ 1) $(pv_ 2) $(pv_ 3):0-1
+lvchange -an $vg/$lv1
+aux mimages_are_on_ $lv1 $(pv_ 1) $(pv_ 2)
+mirrorlog_is_on_ $lv1 $(pv_ 3)
+disable_dev $(pv_ 2)
+vgreduce --removemissing --force $vg
+lv_is_linear_ $lv1
+lv_is_on_ $lv1 $(pv_ 1)
+
test_expect_success "cleanup" \
'recover_vg_ $(pv_ 2)'
@@ -233,23 +142,23 @@
{
local index=$1
- lvcreate -l2 -m2 -n $lv1 $vg $(pv_ 1) $(pv_ 2) $(pv_ 3) $(pv_ 4):0-1 &&
- lvchange -an $vg/$lv1 &&
- mimages_are_on_ $lv1 $(pv_ 1) $(pv_ 2) $(pv_ 3) &&
- mirrorlog_is_on_ $lv1 $(pv_ 4) &&
- fail_pv_ $(pv_ $index) &&
- vgreduce --removemissing --force $vg &&
- lvs -a -o+devices $vg &&
- mimages_are_on_ $lv1 $(rest_pvs_ $index 3) &&
+ lvcreate -l2 -m2 -n $lv1 $vg $(pv_ 1) $(pv_ 2) $(pv_ 3) $(pv_ 4):0-1
+ lvchange -an $vg/$lv1
+ aux mimages_are_on_ $lv1 $(pv_ 1) $(pv_ 2) $(pv_ 3)
+ mirrorlog_is_on_ $lv1 $(pv_ 4)
+ disable_dev $(pv_ $index)
+ vgreduce --removemissing --force $vg
+ lvs -a -o+devices $vg
+ cat $G_root_/etc/lvm.conf
+ mimages_are_on_ $lv1 $(rest_pvs_ $index 3)
mirrorlog_is_on_ $lv1 $(pv_ 4)
}
for n in $(seq 1 3); do
- test_expect_success "fail mirror image $(($n - 1)) of 3-way mirrored LV" \
- "prepare_lvs_ &&
- test_3way_mirror_fail_1_ $n"
- test_expect_success "cleanup" \
- "recover_vg_ $(pv_ $n)"
+ # fail mirror image $(($n - 1)) of 3-way mirrored LV" \
+ prepare_lvs_
+ test_3way_mirror_fail_1_ $n
+ recover_vg_ $(pv_ $n)
done
# ---------------------------------------------------------------------
@@ -261,23 +170,23 @@
{
local index=$1
- lvcreate -l2 -m2 -n $lv1 $vg $(pv_ 1) $(pv_ 2) $(pv_ 3) $(pv_ 4):0-1 &&
- lvchange -an $vg/$lv1 &&
- mimages_are_on_ $lv1 $(pv_ 1) $(pv_ 2) $(pv_ 3) &&
- mirrorlog_is_on_ $lv1 $(pv_ 4) &&
- fail_pv_ $(rest_pvs_ $index 3) &&
- vgreduce --removemissing --force $vg &&
- lvs -a -o+devices $vg &&
- lv_is_linear_ $lv1 &&
+ lvcreate -l2 -m2 -n $lv1 $vg $(pv_ 1) $(pv_ 2) $(pv_ 3) $(pv_ 4):0-1
+ lvchange -an $vg/$lv1
+ mimages_are_on_ $lv1 $(pv_ 1) $(pv_ 2) $(pv_ 3)
+ mirrorlog_is_on_ $lv1 $(pv_ 4)
+ rest_pvs_ $index 3
+ disable_dev $(rest_pvs_ $index 3)
+ vgreduce --force --removemissing $vg
+ lvs -a -o+devices $vg
+ aux lv_is_linear_ $lv1
lv_is_on_ $lv1 $(pv_ $index)
}
for n in $(seq 1 3); do
- test_expect_success "fail mirror images other than mirror image $(($n - 1)) of 3-way mirrored LV" \
- "prepare_lvs_ &&
- test_3way_mirror_fail_2_ $n"
- test_expect_success "cleanup" \
- "recover_vg_ $(rest_pvs_ $n 3)"
+ # fail mirror images other than mirror image $(($n - 1)) of 3-way mirrored LV
+ prepare_lvs_
+ test_3way_mirror_fail_2_ $n
+ recover_vg_ $(rest_pvs_ $n 3)
done
# ---------------------------------------------------------------------
@@ -294,7 +203,7 @@
lvconvert -m+1 $vg/$lv1 $(pv_ 4) &&
mimages_are_on_ $lv1 $(pv_ 1) $(pv_ 2) $(pv_ 3) $(pv_ 4) &&
mirrorlog_is_on_ $lv1 $(pv_ 5) &&
- fail_pv_ $(pv_ $index) &&
+ disable_dev $(pv_ $index) &&
vgreduce --removemissing --force $vg &&
lvs -a -o+devices $vg &&
mimages_are_on_ $lv1 $(rest_pvs_ $index 4) &&
@@ -323,7 +232,7 @@
lvconvert -m+1 $vg/$lv1 $(pv_ 4) &&
mimages_are_on_ $lv1 $(pv_ 1) $(pv_ 2) $(pv_ 3) $(pv_ 4) &&
mirrorlog_is_on_ $lv1 $(pv_ 5) &&
- fail_pv_ $(rest_pvs_ $index 4) &&
+ disable_dev $(rest_pvs_ $index 4) &&
vgreduce --removemissing --force $vg &&
lvs -a -o+devices $vg &&
(mimages_are_on_ $lv1 $(pv_ $index) || lv_is_on_ $lv1 $(pv_ $index)) &&
@@ -352,7 +261,7 @@
lvconvert -m+2 $vg/$lv1 $(pv_ 3) $(pv_ 4) &&
mimages_are_on_ $lv1 $(pv_ 1) $(pv_ 2) $(pv_ 3) $(pv_ 4) &&
mirrorlog_is_on_ $lv1 $(pv_ 5) &&
- fail_pv_ $(pv_ $index) &&
+ disable_dev $(pv_ $index) &&
vgreduce --removemissing --force $vg &&
lvs -a -o+devices $vg &&
mimages_are_on_ $lv1 $(rest_pvs_ $index 4) &&
@@ -381,7 +290,7 @@
lvconvert -m+2 $vg/$lv1 $(pv_ 3) $(pv_ 4) &&
mimages_are_on_ $lv1 $(pv_ 1) $(pv_ 2) $(pv_ 3) $(pv_ 4) &&
mirrorlog_is_on_ $lv1 $(pv_ 5) &&
- fail_pv_ $(rest_pvs_ $index 4) &&
+ disable_dev $(rest_pvs_ $index 4) &&
vgreduce --removemissing --force $vg &&
lvs -a -o+devices $vg &&
(mimages_are_on_ $lv1 $(pv_ $index) || lv_is_on_ $lv1 $(pv_ $index)) &&
@@ -405,7 +314,7 @@
lvchange -an $vg/$lv1 &&
mimages_are_on_ $lv1 $(pv_ 1) $(pv_ 2) &&
mirrorlog_is_on_ $lv1 $(pv_ 5) &&
- fail_pv_ $(pv_ 5) &&
+ disable_dev $(pv_ 5) &&
vgreduce --removemissing --force $vg &&
mimages_are_on_ $lv1 $(pv_ 1) $(pv_ 2) &&
! mirrorlog_is_on_ $lv1 $(pv_ 5)'
@@ -419,7 +328,7 @@
lvconvert -m+1 $vg/$lv1 $(pv_ 3) &&
mimages_are_on_ $lv1 $(pv_ 1) $(pv_ 2) $(pv_ 3) &&
mirrorlog_is_on_ $lv1 $(pv_ 5) &&
- fail_pv_ $(pv_ 5) &&
+ disable_dev $(pv_ 5) &&
vgreduce --removemissing --force $vg &&
mimages_are_on_ $lv1 $(pv_ 1) $(pv_ 2) $(pv_ 3) &&
! mirrorlog_is_on_ $lv1 $(pv_ 5)'
@@ -435,7 +344,7 @@
lvchange -an $vg/$lv1 &&
mimages_are_on_ $lv1 $(pv_ 1) $(pv_ 2) &&
mirrorlog_is_on_ $lv1 $(pv_ 5) &&
- fail_pv_ $(pv_ 1) $(pv_ 2) &&
+ disable_dev $(pv_ 1) $(pv_ 2) &&
vgreduce --removemissing --force $vg &&
! lvs $vg/$lv1'
test_expect_success "cleanup" \
@@ -448,7 +357,7 @@
lvconvert -m+1 $vg/$lv1 $(pv_ 3) &&
mimages_are_on_ $lv1 $(pv_ 1) $(pv_ 2) $(pv_ 3) &&
mirrorlog_is_on_ $lv1 $(pv_ 5) &&
- fail_pv_ $(pv_ 1) $(pv_ 2) $(pv_ 3) &&
+ disable_dev $(pv_ 1) $(pv_ 2) $(pv_ 3) &&
vgreduce --removemissing --force $vg &&
! lvs $vg/$lv1'
test_expect_success "cleanup" \
@@ -467,7 +376,7 @@
mimages_are_on_ $lv2 $(pv_ 3) $(pv_ 4) &&
mirrorlog_is_on_ $lv1 $(pv_ 5) &&
mirrorlog_is_on_ $lv2 $(pv_ 5) &&
- fail_pv_ $(pv_ 2) &&
+ disable_dev $(pv_ 2) &&
vgreduce --removemissing --force $vg &&
mimages_are_on_ $lv2 $(pv_ 3) $(pv_ 4) &&
mirrorlog_is_on_ $lv2 $(pv_ 5) &&
@@ -486,8 +395,8 @@
mimages_are_on_ $lv2 $(pv_ 3) $(pv_ 4) &&
mirrorlog_is_on_ $lv1 $(pv_ 5) &&
mirrorlog_is_on_ $lv2 $(pv_ 5) &&
- fail_pv_ $(pv_ 2) &&
- fail_pv_ $(pv_ 4) &&
+ disable_dev $(pv_ 2) &&
+ disable_dev $(pv_ 4) &&
vgreduce --removemissing --force $vg &&
lv_is_linear_ $lv1 &&
lv_is_on_ $lv1 $(pv_ 1) &&
--- LVM2/test/t-000-basic.sh 2008/07/29 21:05:02 1.3
+++ LVM2/test/t-000-basic.sh 2008/09/29 16:02:49 1.4
@@ -1,4 +1,3 @@
-#!/bin/sh
# Copyright (C) 2007 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing to use,
@@ -9,32 +8,18 @@
# 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='Basics: see if tools are built, etc.'
+. ./test-utils.sh
-. ./test-lib.sh
-
-lvm version >/dev/null 2>&1
-if test $? != 0; then
- echo >&2 'You do not seem to have built lvm yet.'
- exit 1
-fi
+lvm version
v=$abs_top_srcdir/tools/version.h
-test_expect_success \
- "get version string from $v" \
- 'sed -n "/#define LVM_VERSION ./s///p" '"$v"'|sed "s/ .*//" > expected'
-
-test_expect_success \
- 'get version of a just-built binary, ensuring PATH is set properly' \
- 'lvm pvmove --version|sed -n "1s/.*: *\([0-9][^ ]*\) .*/\1/p" > actual'
-
-test_expect_success \
- 'ensure they are the same' \
- 'diff -u actual expected'
+sed -n "/#define LVM_VERSION ./s///p" "$v" | sed "s/ .*//" > expected
-# Need mdadm for some pvcreate tests
-test_expect_success \
- 'verify mdadm is installed and in path (needed for pvcreate tests)' \
- 'which mdadm'
+lvm pvmove --version|sed -n "1s/.*: *\([0-9][^ ]*\) .*/\1/p" > actual
-test_done
+# ensure they are the same
+diff -u actual expected
+
+# Need mdadm for some pvcreate tests
+# verify mdadm is installed and in path (needed for pvcreate tests) ... is it?
+which mdadm
--- LVM2/test/t-pool-labels.sh 2008/08/05 12:33:41 1.1
+++ LVM2/test/t-pool-labels.sh 2008/09/29 16:02:49 1.2
@@ -1,4 +1,3 @@
-#!/bin/sh
# Copyright (C) 2007 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing to use,
@@ -9,41 +8,30 @@
# 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 lvm functionality with GFS pool labels'
-privileges_required_=1
-
-. ./test-lib.sh
-
-cleanup_()
-{
- test -n "$d1" && losetup -d "$d1"
- rm -f "$f1" "$f2"
-}
+. ./test-utils.sh
# create the old GFS pool labeled linear devices
create_pool_label_()
{
- echo -en "\x01\x16\x70\x06\x5f\xcf\xff\xb9\xf8\x24\x8apool1" | dd of=$2 bs=5 seek=1 conv=notrunc
- echo -en "\x04\x01\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0$1\x68\x01\x16\x70\x00\x00\x00\x00\x00\x06\x5f\xd0" | dd of=$2 bs=273 seek=1 conv=notrunc
+ # FIXME
+ # echo -e is bashism, dash builtin sh doesn't do \xNN in printf either
+ # printf comes from coreutils, and is probably not posix either
+ env printf "\x01\x16\x70\x06\x5f\xcf\xff\xb9\xf8\x24\x8apool1" | dd of=$2 bs=5 seek=1 conv=notrunc
+ env printf "\x04\x01\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0$1\x68\x01\x16\x70\x00\x00\x00\x00\x00\x06\x5f\xd0" | dd of=$2 bs=273 seek=1 conv=notrunc
}
-test_expect_success "set up temp files, loopback devices, pool labels" \
- 'f1=$(pwd)/0 && d1=$(loop_setup_ "$f1") &&
- f2=$(pwd)/1 && d2=$(loop_setup_ "$f2") &&
- create_pool_label_ 0 "$d1" &&
- create_pool_label_ 1 "$d2"'
-
-test_expect_failure "check that pvcreate fails without -ff on the pool device" \
- 'pvcreate "$d1"'
-
-test_expect_success "check that vgdisplay and pvcreate -ff works with the pool device" \
- 'vgdisplay &&
- test -n "$d2" && losetup -d "$d2" &&
- vgdisplay &&
- pvcreate -ff -y "$d1"'
-
-test_done
-
-# Local Variables:
-# indent-tabs-mode: nil
-# End:
+env printf "" || exit 200 # skip if printf is not available
+
+aux prepare_devs 2
+
+create_pool_label_ 0 "$dev1"
+create_pool_label_ 1 "$dev2"
+
+# check that pvcreate fails without -ff on the pool device
+not pvcreate "$dev1"
+
+# check that vgdisplay and pvcreate -ff works with the pool device
+vgdisplay
+disable_dev "$dev2"
+vgdisplay
+pvcreate -ff -y "$dev1"
--- LVM2/test/t-metadata.sh 2008/08/13 13:49:07 1.1
+++ LVM2/test/t-metadata.sh 2008/09/29 16:02:49 1.2
@@ -1,5 +1,4 @@
-#!/bin/sh
-# Copyright (C) 2007 Red Hat, Inc. All rights reserved.
+# Copyright (C) 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
@@ -9,60 +8,28 @@
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-# tests basic functionality of read-ahead and ra regressions
-#
-
-test_description='Test --metadatatype 1'
-privileges_required_=1
+. ./test-utils.sh
-. ./test-lib.sh
+aux prepare_devs 5
-cleanup_()
-{
- vgremove -f "$vg"
- test -n "$d1" && losetup -d "$d1"
- test -n "$d2" && losetup -d "$d2"
- test -n "$d3" && losetup -d "$d3"
- test -n "$d4" && losetup -d "$d4"
- test -n "$d5" && losetup -d "$d5"
- rm -f "$f1" "$f2" "$f3" "$f4" "$f5"
-}
-
-test_expect_success "set up temp files, loopback devices" \
- 'f1=$(pwd)/1 && d1=$(loop_setup_ "$f1") &&
- f2=$(pwd)/2 && d2=$(loop_setup_ "$f2") &&
- f3=$(pwd)/3 && d3=$(loop_setup_ "$f3") &&
- f4=$(pwd)/4 && d4=$(loop_setup_ "$f4") &&
- f5=$(pwd)/5 && d5=$(loop_setup_ "$f5") &&
- vg=$(this_test_)-test-vg-$$ &&
- lv=$(this_test_)-test-lv-$$
- pvcreate "$d1" &&
- pvcreate --metadatacopies 0 "$d2" &&
- pvcreate --metadatacopies 0 "$d3" &&
- pvcreate "$d4" &&
- pvcreate --metadatacopies 0 "$d5" &&
- vgcreate -c n "$vg" "$d1" "$d2" "$d3" "$d4" "$d5" &&
- lvcreate -n "$lv" -l 1%FREE -i5 -I256 "$vg"'
-
-test_expect_success "test medatasize 0" \
- 'pvchange -x n "$d1" &&
- pvchange -x y "$d1" &&
- vgchange -a n "$vg" &&
- pvchange --uuid "$d1" &&
- pvchange --uuid "$d2" &&
- vgremove -f "$vg"'
-
-
-test_expect_success "test metadatatype 1" \
- 'pvcreate -M1 "$d1" &&
- pvcreate -M1 "$d2" &&
- pvcreate -M1 "$d3" &&
- vgcreate -M1 "$vg" "$d1" "$d2" "$d3" &&
- pvchange --uuid "$d1"'
-
-test_done
-
-# Local Variables:
-# indent-tabs-mode: nil
-# End:
+pvcreate $dev1
+pvcreate --metadatacopies 0 $dev2
+pvcreate --metadatacopies 0 $dev3
+pvcreate $dev4
+pvcreate --metadatacopies 0 $dev5
+
+vgcreate -c n "$vg" $devs
+lvcreate -n $lv -l 1 -i5 -I256 $vg
+
+pvchange -x n $dev1
+pvchange -x y $dev1
+vgchange -a n $vg
+pvchange --uuid $dev1
+pvchange --uuid $dev2
+vgremove -f $vg
+
+pvcreate -M1 $dev1
+pvcreate -M1 $dev2
+pvcreate -M1 $dev3
+vgcreate -M1 $vg $dev1 $dev2 $dev3
+pvchange --uuid $dev1
--- LVM2/test/t-covercmd.sh 2008/08/20 13:34:33 1.3
+++ LVM2/test/t-covercmd.sh 2008/09/29 16:02:50 1.4
@@ -1,4 +1,3 @@
-#!/bin/sh
# Copyright (C) 2007 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing to use,
@@ -13,21 +12,7 @@
# tests basic functionality of read-ahead and ra regressions
#
-test_description='Test coverage'
-privileges_required_=1
-
-. ./test-lib.sh
-
-cleanup_()
-{
- vgremove -f "$vg" 2>/dev/null || true
- test -n "$d1" && losetup -d "$d1"
- test -n "$d2" && losetup -d "$d2"
- test -n "$d3" && losetup -d "$d3"
- test -n "$d4" && losetup -d "$d4"
- test -n "$d5" && losetup -d "$d5"
- rm -f "$f1" "$f2" "$f3" "$f4" "$f5"
-}
+. ./test-utils.sh
get_lvs_()
{
@@ -37,63 +22,56 @@
esac
}
-test_expect_success "set up temp files, loopback devices" \
- 'f1=$(pwd)/1 && d1=$(loop_setup_ "$f1") &&
- f2=$(pwd)/2 && d2=$(loop_setup_ "$f2") &&
- f3=$(pwd)/3 && d3=$(loop_setup_ "$f3") &&
- f4=$(pwd)/4 && d4=$(loop_setup_ "$f4") &&
- f5=$(pwd)/5 && d5=$(loop_setup_ "$f5") &&
- vg=$(this_test_)-test-vg-$$ &&
- lv=$(this_test_)-test-lv-$$
- pvcreate "$d1" &&
- pvcreate --metadatacopies 0 "$d2" &&
- pvcreate --metadatacopies 0 "$d3" &&
- pvcreate "$d4" &&
- pvcreate --metadatacopies 0 "$d5" &&
- vgcreate -c n "$vg" "$d1" "$d2" "$d3" "$d4" "$d5" &&
- lvcreate -n "$lv" -l 1%FREE -i5 -I256 "$vg"'
-
-test_expect_success "test *scan and *display tools" \
- 'pvscan &&
- vgscan &&
- lvscan &&
- lvmdiskscan &&
- vgdisplay --units k &&
- lvdisplay --units g &&
- for i in b k m g t p e H B K M G T P E ; do \
- pvdisplay --units "$i" "$d1" || return $? ; done'
-
-test_expect_success "test vgexport vgimport tools" \
- 'vgchange -an "$vg" &&
- vgexport "$vg" &&
- vgimport "$vg" &&
- vgchange -ay "$vg"'
+prepare_devs 5
+
+pvcreate $dev1
+pvcreate --metadatacopies 0 $dev2
+pvcreate --metadatacopies 0 $dev3
+pvcreate $dev4
+pvcreate --metadatacopies 0 $dev5
+vgcreate -c n $vg $devs
+lvcreate -n $lv -l 5 -i5 -I256 $vg
+
+# test *scan and *display tools
+pvscan
+vgscan
+lvscan
+lvmdiskscan
+vgdisplay --units k
+lvdisplay --units g
+for i in b k m g t p e H B K M G T P E ; do
+ pvdisplay --units "$i" "$dev1"
+done
+
+# test vgexport vgimport tools
+vgchange -an $vg
+vgexport $vg
+vgimport $vg
+vgchange -ay $vg
# "-persistent y --major 254 --minor 20"
# "-persistent n"
-test_expect_success "test various lvm utils" \
- 'for i in dumpconfig formats segtypes
- do lvm "$i" || return $? ; done &&
- for i in pr "p rw" an ay "-monitor y" "-monitor n" \
- -resync -refresh "-addtag MYTAG" "-deltag MYETAG"
- do lvchange -$i "$vg"/"$lv" || return $? ; done &&
- pvck "$d1" &&
- vgck "$vg" &&
- lvrename "$vg" "$lv" "$lv-rename" &&
- vgcfgbackup -f "$(pwd)/backup.$$" "$vg" &&
- vgchange -an "$vg" &&
- vgcfgrestore -f "$(pwd)/backup.$$" "$vg" &&
- vgremove -f "$vg" &&
- pvresize --setphysicalvolumesize 10M "$d1"'
-
-test_expect_failure "test various errors and obsoleted tools" \
- 'lvmchange ||
- lvrename "$vg" ||
- lvrename "$vg-xxx" ||
- lvrename "$vg" "$vg"/"$lv-rename" "$vg"/"$lv"'
-
-test_done
-
-# Local Variables:
-# indent-tabs-mode: nil
-# End:
+# test various lvm utils
+for i in dumpconfig formats segtypes; do
+ lvm "$i"
+done
+
+for i in pr "p rw" an ay "-monitor y" "-monitor n" \
+ -resync -refresh "-addtag MYTAG" "-deltag MYETAG"; do
+ lvchange -$i "$vg"/"$lv"
+done
+
+pvck "$d1"
+vgck "$vg"
+lvrename "$vg" "$lv" "$lv-rename"
+vgcfgbackup -f "$(pwd)/backup.$$" "$vg"
+vgchange -an "$vg"
+vgcfgrestore -f "$(pwd)/backup.$$" "$vg"
+vgremove -f "$vg"
+pvresize --setphysicalvolumesize 10M "$dev1"
+
+# test various errors and obsoleted tools
+not lvmchange
+not lvrename "$vg"
+not lvrename "$vg-xxx"
+not lvrename "$vg" "$vg"/"$lv-rename" "$vg"/"$lv"
--- LVM2/test/t-pvcreate-operation.sh 2008/08/28 10:07:34 1.9
+++ LVM2/test/t-pvcreate-operation.sh 2008/09/29 16:02:50 1.10
@@ -1,5 +1,4 @@
-#!/bin/sh
-# Copyright (C) 2007 Red Hat, Inc. All rights reserved.
+# Copyright (C) 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
@@ -9,134 +8,96 @@
# 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 pvcreate logic operation'
-privileges_required_=1
+. ./test-utils.sh
-. ./test-lib.sh
-
-cleanup_()
-{
- test -n "$d1" && losetup -d "$d1"
- test -n "$d2" && losetup -d "$d2"
- test -n "$d3" && losetup -d "$d3"
- test -n "$d4" && losetup -d "$d4"
- rm -f "$f1" "$f2" "$f3" "$f4"
-}
-
-test_expect_success \
- 'set up temp files, loopback devices, PVs, vgname' \
- 'f1=$(pwd)/1 && d1=$(loop_setup_ "$f1") &&
- f2=$(pwd)/2 && d2=$(loop_setup_ "$f2") &&
- f3=$(pwd)/3 && d3=$(loop_setup_ "$f3") &&
- f4=$(pwd)/4 && d4=$(loop_setup_ "$f4") &&
- vg1=$(this_test_)-test-vg1-$$'
+aux prepare_devs 4
for mdatype in 1 2
do
-test_expect_success \
- "pvcreate (lvm$mdatype) succeeds when run repeatedly (pv not in a vg)" '
- pvcreate -M$mdatype $d1 &&
- pvcreate -M$mdatype $d1 &&
- pvremove -f $d1
-'
-
-test_expect_success \
- "pvcreate (lvm$mdatype) fails when PV belongs to VG" \
- 'pvcreate -M$mdatype $d1 &&
- vgcreate -M$mdatype $vg1 $d1 &&
- pvcreate -M$mdatype $d1;
- status=$?; echo status=$status; test $status != 0 &&
- vgremove -f $vg1 &&
- pvremove -f $d1'
-
-test_expect_success \
- "pvcreate (lvm$mdatype) fails when PV1 does and PV2 does not belong to VG" \
- 'pvcreate -M$mdatype $d1 &&
- pvcreate -M$mdatype $d2 &&
- vgcreate -M$mdatype $vg1 $d1 &&
- echo pvcreate a second time on $d2 and $d1 &&
- pvcreate -M$mdatype $d2 $d1;
- status=$?; echo status=$status; test $status != 0 &&
- vgremove -f $vg1 &&
- pvremove -f $d2 &&
- pvremove -f $d1'
+# pvcreate (lvm$mdatype) succeeds when run repeatedly (pv not in a vg)
+ pvcreate -M$mdatype $dev1
+ pvcreate -M$mdatype $dev1
+ pvremove -f $dev1
+
+# pvcreate (lvm$mdatype) fails when PV belongs to VG" \
+ pvcreate -M$mdatype $dev1
+ vgcreate -M$mdatype $vg1 $dev1
+ not pvcreate -M$mdatype $dev1
+
+ vgremove -f $vg1
+ pvremove -f $dev1
+
+# pvcreate (lvm$mdatype) fails when PV1 does and PV2 does not belong to VG
+ pvcreate -M$mdatype $dev1
+ pvcreate -M$mdatype $dev2
+ vgcreate -M$mdatype $vg1 $dev1
+
+# pvcreate a second time on $dev2 and $dev1
+ not pvcreate -M$mdatype $dev2 $dev1
+
+ vgremove -f $vg1
+ pvremove -f $dev2
+ pvremove -f $dev1
# NOTE: Force pvcreate after test completion to ensure clean device
#test_expect_success \
# "pvcreate (lvm$mdatype) fails on md component device" \
-# 'mdadm -C -l raid0 -n 2 /dev/md0 $d1 $d2 &&
-# pvcreate -M$mdatype $d1;
+# 'mdadm -C -l raid0 -n 2 /dev/md0 $dev1 $dev2 &&
+# pvcreate -M$mdatype $dev1;
# status=$?; echo status=$status; test $status != 0 &&
# mdadm --stop /dev/md0 &&
-# pvcreate -ff -y -M$mdatype $d1 $d2 &&
-# pvremove -f $d1 $d2'
+# pvcreate -ff -y -M$mdatype $dev1 $dev2 &&
+# pvremove -f $dev1 $dev2'
done
-test_expect_success \
- 'pvcreate (lvm2) fails without -ff when PV with metadatacopies=0 belongs to VG' \
- 'pvcreate --metadatacopies 0 $d1 &&
- pvcreate --metadatacopies 1 $d2 &&
- vgcreate $vg1 $d1 $d2 &&
- pvcreate $d1;
- status=$?; echo status=$status; test $status != 0 &&
- vgremove -f $vg1 &&
- pvremove -f $d2 &&
- pvremove -f $d1'
+# pvcreate (lvm2) fails without -ff when PV with metadatacopies=0 belongs to VG
+pvcreate --metadatacopies 0 $dev1
+pvcreate --metadatacopies 1 $dev2
+vgcreate $vg1 $dev1 $dev2
+not pvcreate $dev1
+vgremove -f $vg1
+pvremove -f $dev2
+pvremove -f $dev1
test_expect_success \
'pvcreate (lvm2) succeeds with -ff when PV with metadatacopies=0 belongs to VG' \
- 'pvcreate --metadatacopies 0 $d1 &&
- pvcreate --metadatacopies 1 $d2 &&
- vgcreate $vg1 $d1 $d2 &&
- pvcreate -ff -y $d1 &&
+ 'pvcreate --metadatacopies 0 $dev1 &&
+ pvcreate --metadatacopies 1 $dev2 &&
+ vgcreate $vg1 $dev1 $dev2 &&
+ pvcreate -ff -y $dev1 &&
vgreduce --removemissing $vg1 &&
vgremove -ff $vg1 &&
- pvremove -f $d2 &&
- pvremove -f $d1'
+ pvremove -f $dev2 &&
+ pvremove -f $dev1'
for i in 0 1 2 3
do
- test_expect_success \
- "pvcreate (lvm2) succeeds writing LVM label at sector $i" \
- 'pvcreate --labelsector $i $d1 &&
- dd if=$d1 bs=512 skip=$i count=1 status=noxfer 2>&1 | strings | grep -q LABELONE;
- test $? == 0 &&
- pvremove -f $d1'
+# pvcreate (lvm2) succeeds writing LVM label at sector $i
+ pvcreate --labelsector $i $dev1
+ dd if=$dev1 bs=512 skip=$i count=1 status=noxfer 2>&1 | strings | grep -q LABELONE;
+ pvremove -f $dev1
done
-test_expect_failure \
- "pvcreate (lvm2) fails writing LVM label at sector 4" \
- 'pvcreate --labelsector 4 $d1'
+# pvcreate (lvm2) fails writing LVM label at sector 4
+not pvcreate --labelsector 4 $dev1
backupfile=mybackupfile-$(this_test_)
uuid1=freddy-fred-fred-fred-fred-fred-freddy
uuid2=freddy-fred-fred-fred-fred-fred-fredie
bogusuuid=fred
-test_expect_failure \
- 'pvcreate rejects uuid option with less than 32 characters' \
- 'pvcreate --uuid $bogusuuid $d1'
-
-test_expect_success \
- 'pvcreate rejects uuid already in use' \
- 'pvcreate --uuid $uuid1 $d1 &&
- pvcreate --uuid $uuid1 $d2;
- status=$?; echo status=$status; test $status != 0'
+# pvcreate rejects uuid option with less than 32 characters
+not pvcreate --uuid $bogusuuid $dev1
-test_expect_success \
- 'pvcreate rejects non-existent file given with restorefile' \
- 'pvcreate --uuid $uuid1 --restorefile $backupfile $d1;
- status=$?; echo status=$status; test $status != 0'
-
-test_expect_success \
- 'pvcreate rejects restorefile with uuid not found in file' \
- 'pvcreate --uuid $uuid1 $d1 &&
- vgcfgbackup -f $backupfile &&
- pvcreate --uuid $uuid2 --restorefile $backupfile $d2;
- status=$?; echo status=$status; test $status != 0'
-
-test_done
-# Local Variables:
-# indent-tabs-mode: nil
-# End:
+# pvcreate rejects uuid already in use
+pvcreate --uuid $uuid1 $dev1
+not pvcreate --uuid $uuid1 $dev2
+
+# pvcreate rejects non-existent file given with restorefile
+not pvcreate --uuid $uuid1 --restorefile $backupfile $dev1
+
+# pvcreate rejects restorefile with uuid not found in file
+pvcreate --uuid $uuid1 $dev1
+vgcfgbackup -f $backupfile
+not pvcreate --uuid $uuid2 --restorefile $backupfile $dev2
--- LVM2/test/t-vgrename-usage.sh 2008/08/28 10:59:10 1.2
+++ LVM2/test/t-vgrename-usage.sh 2008/09/29 16:02:50 1.3
@@ -1,5 +1,4 @@
-#!/bin/sh
-# Copyright (C) 2007 Red Hat, Inc. All rights reserved.
+# Copyright (C) 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
@@ -9,49 +8,22 @@
# 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 some vgrename diagnostics'
-privileges_required_=1
+. ./test-utils.sh
-. ./test-lib.sh
-
-cleanup_()
-{
- test -n "$d1" && losetup -d "$d1"
- test -n "$d2" && losetup -d "$d2"
- test -n "$d3" && losetup -d "$d3"
- test -n "$d4" && losetup -d "$d4"
- rm -f "$f1" "$f2" "$f3" "$f4"
-}
-
-test_expect_success \
- 'set up temp files, loopback devices, PVs, vgnames' \
- 'f1=$(pwd)/1 && d1=$(loop_setup_ "$f1") &&
- f2=$(pwd)/2 && d2=$(loop_setup_ "$f2") &&
- f3=$(pwd)/3 && d3=$(loop_setup_ "$f3") &&
- f4=$(pwd)/4 && d4=$(loop_setup_ "$f4") &&
- vg1=$(this_test_)-1-$$ &&
- vg2=$(this_test_)-2-$$ &&
- pvcreate $d1 $d2 &&
- pvcreate --metadatacopies 0 $d3 $d4'
-
-test_expect_success \
- 'vgrename normal operation - rename vg1 to vg2' \
- 'vgcreate $vg1 $d1 $d2 &&
- vgrename $vg1 $vg2 &&
- check_vg_field_ $vg2 vg_name $vg2 &&
- vgremove $vg2'
-
-test_expect_success \
- "vgrename by uuid (bz231187)" '
- vgcreate $vg1 $d1 $d3 &&
- UUID=$(vgs --noheading -o vg_uuid $vg1) &&
- check_vg_field_ $vg1 vg_uuid $UUID &&
- vgrename $UUID $vg2 &&
- check_vg_field_ $vg2 vg_name $vg2 &&
- vgremove $vg2
-'
-
-test_done
-# Local Variables:
-# indent-tabs-mode: nil
-# End:
+aux prepare_devs 4
+pvcreate $dev1 $dev2
+pvcreate --metadatacopies 0 $dev3 $dev4
+
+# vgrename normal operation - rename vg1 to vg2
+vgcreate $vg1 $dev1 $dev2
+vgrename $vg1 $vg2
+check_vg_field_ $vg2 vg_name $vg2
+vgremove $vg2
+
+# vgrename by uuid (bz231187)
+vgcreate $vg1 $dev1 $dev3
+UUID=$(vgs --noheading -o vg_uuid $vg1)
+check_vg_field_ $vg1 vg_uuid $UUID
+vgrename $UUID $vg2
+check_vg_field_ $vg2 vg_name $vg2
+vgremove $vg2
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2008-09-29 16:02 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-09-29 16:02 LVM2/test t-lvcreate-pvtags.sh t-lvmcache-exer mornfall
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).