From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32125 invoked by alias); 28 Aug 2008 10:24:56 -0000 Received: (qmail 32109 invoked by uid 9664); 28 Aug 2008 10:24:56 -0000 Date: Thu, 28 Aug 2008 10:24:00 -0000 Message-ID: <20080828102456.32107.qmail@sourceware.org> From: mbroz@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2/test t-pvremove-usage.sh Mailing-List: contact lvm2-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: lvm2-cvs-owner@sourceware.org X-SW-Source: 2008-08/txt/msg00022.txt.bz2 CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: mbroz@sourceware.org 2008-08-28 10:24:55 Added files: test : t-pvremove-usage.sh Log message: Add pvremove usage test (Jaroslav Stava) Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-pvremove-usage.sh.diff?cvsroot=lvm2&r1=NONE&r2=1.1 /cvs/lvm2/LVM2/test/t-pvremove-usage.sh,v --> standard output revision 1.1 --- LVM2/test/t-pvremove-usage.sh +++ - 2008-08-28 10:24:56.045564000 +0000 @@ -0,0 +1,111 @@ +#!/bin/sh +# 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 +# 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 pvremove' +privileges_required_=1 + +. ./test-lib.sh + +cleanup_() +{ + test -n "$d1" && losetup -d "$d1" + test -n "$d2" && losetup -d "$d2" + test -n "$d3" && losetup -d "$d3" + rm -f "$f1" "$f2" +} + +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") && + vg=$(this_test_)-test-vg-$$ && + pvcreate "$d1" && + pvcreate --metadatacopies 0 "$d2" && + pvcreate --metadatacopies 2 "$d3" +' + +test_expect_success "check pvremove fails when bogus pv given" ' + pvremove "$d2" bogus; + status=$?; echo $status; test $status != 0 +' + +#failing, but still removing everything what can be removed +#is somewhat odd as default, what do we have -f for? +test_expect_failure "but still removes the valid pv that was given too :-/" ' + pvs | grep "$d2"; status=$?; + pvcreate --metadatacopies 0 "$d2"; + echo $status; test $status = 0 +' + +test_expect_success "check pvremove refuses to remove pv in a vg" ' + vgcreate -c n "$vg" "$d1" "$d2" && + { pvremove "$d2" "$d3"; + status=$?; echo $status; test $status != 0 + } +' + +for mdacp in 0 1 2; do +test_expect_success \ + "check pvremove truly wipes the label (pvscan wont find) (---metadatacopies $mdacp)" ' + pvcreate --metadatacopies $mdacp "$d3" && + pvremove "$d3" && + { pvscan |grep "$d3"; + status=$?; echo $status; test $status != 0 + } +' + +test_expect_success "reset setup" ' + vgremove -ff $vg && + pvcreate --metadatacopies $mdacp "$d1" && + pvcreate "$d2" && + vgcreate $vg $d1 $d2 +' +test_expect_success "pvremove -f fails when pv in a vg (---metadatacopies $mdacp)" ' + pvremove -f $d1; + status=$?; echo $status; test $status != 0 && + pvs $d1 +' +test_expect_success \ + "pvremove -ff fails without confirmation when pv in a vg (---metadatacopies $mdacp)" ' + echo n|eval pvremove -ff $d1; + status=$?; echo $status; test $status != 0 +' +test_expect_success \ + "pvremove -ff succeds with confirmation when pv in a vg (---metadatacopies $mdacp)" ' + yes | pvremove -ff $d1 && + pvs $d1; + status=$?; echo $status; test $status != 0 +' +test_expect_success "cleanup & setup" ' + vgreduce --removemissing $vg && + pvcreate --metadatacopies $mdacp "$d1" && + vgextend $vg $d1 +' +test_expect_success \ + "pvremove -ff -y is sufficient when pv in a vg (---metadatacopies $mdacp)" ' + echo n | pvremove -ff -y $d1 +' +test_expect_success "cleanup & setup" ' + vgreduce --removemissing $vg && + pvcreate --metadatacopies $mdacp "$d1" && + vgextend $vg $d1 +' +done + +test_expect_success "cleanup" ' + vgremove -ff "$vg" +' + +test_done + +# Local Variables: +# indent-tabs-mode: nil +# End: