From: mornfall@sourceware.org <mornfall@sourceware.org>
To: lvm-devel@redhat.com
Subject: LVM2/test Makefile.in lvm-utils.sh t-000-basic ...
Date: 7 Apr 2010 14:46:29 -0000 [thread overview]
Message-ID: <20100407144629.29115.qmail@sourceware.org> (raw)
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: mornfall at sourceware.org 2010-04-07 14:46:27
Modified files:
test : Makefile.in lvm-utils.sh t-000-basic.sh
t-fsadm.sh t-lvcreate-operation.sh
t-lvcreate-pvtags.sh t-mirror-basic.sh
t-pvcreate-operation.sh t-pvmove-basic.sh
t-read-ahead.sh t-snapshot-merge.sh
t-topology-support.sh t-vgsplit-stacked.sh
test-utils.sh
Removed files:
test : test-lib.sh
Log message:
Refactor the test utilities, dropping the legacy test-lib.sh and curtailing
lvm-utils.sh. Clears up lots of unused code, should have little observable
impact (it does change test directory layout slightly).
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/Makefile.in.diff?cvsroot=lvm2&r1=1.33&r2=1.34
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/lvm-utils.sh.diff?cvsroot=lvm2&r1=1.23&r2=1.24
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-000-basic.sh.diff?cvsroot=lvm2&r1=1.7&r2=1.8
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-fsadm.sh.diff?cvsroot=lvm2&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvcreate-operation.sh.diff?cvsroot=lvm2&r1=1.4&r2=1.5
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvcreate-pvtags.sh.diff?cvsroot=lvm2&r1=1.6&r2=1.7
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-mirror-basic.sh.diff?cvsroot=lvm2&r1=1.7&r2=1.8
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-pvcreate-operation.sh.diff?cvsroot=lvm2&r1=1.17&r2=1.18
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-pvmove-basic.sh.diff?cvsroot=lvm2&r1=1.6&r2=1.7
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-read-ahead.sh.diff?cvsroot=lvm2&r1=1.11&r2=1.12
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-snapshot-merge.sh.diff?cvsroot=lvm2&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-topology-support.sh.diff?cvsroot=lvm2&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-vgsplit-stacked.sh.diff?cvsroot=lvm2&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/test-utils.sh.diff?cvsroot=lvm2&r1=1.29&r2=1.30
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/test-lib.sh.diff?cvsroot=lvm2&r1=1.5&r2=NONE
--- LVM2/test/Makefile.in 2010/03/31 23:05:20 1.33
+++ LVM2/test/Makefile.in 2010/04/07 14:46:26 1.34
@@ -30,7 +30,7 @@
SCRIPTS := $(wildcard $(srcdir)/t-*.sh) \
$(srcdir)/test-utils.sh \
- $(srcdir)/test-lib.sh
+ $(srcdir)/lvm-utils.sh
ifeq ("@UDEV_SYNC@", "yes")
dm_udev_synchronisation = 1
--- LVM2/test/lvm-utils.sh 2010/03/26 13:21:28 1.23
+++ LVM2/test/lvm-utils.sh 2010/04/07 14:46:26 1.24
@@ -16,40 +16,6 @@
ME=$(basename "$0")
warn() { echo >&2 "$ME: $@"; }
-unsafe_losetup_()
-{
- f=$1
-
- test -n "$G_dev_" \
- || error "Internal error: unsafe_losetup_ called before init_root_dir_"
-
- # Iterate through $G_dev_/loop{,/}{0,1,2,3,4,5,6,7,8,9}
- for slash in '' /; do
- for i in 0 1 2 3 4 5 6 7 8 9; do
- dev=$G_dev_/loop$slash$i
- losetup $dev > /dev/null 2>&1 && continue;
- losetup "$dev" "$f" > /dev/null && { echo "$dev"; return 0; }
- break
- done
- done
-
- return 1
-}
-
-loop_setup_()
-{
- file=$1
- dd if=/dev/zero of="$file" bs=1M count=1 seek=1000 > /dev/null 2>&1 \
- || { warn "loop_setup_ failed: Unable to create tmp file $file"; return 1; }
-
- # NOTE: this requires a new enough version of losetup
- dev=$(unsafe_losetup_ "$file" 2>/dev/null) \
- || { warn "loop_setup_ failed: Unable to create loopback device"; return 1; }
-
- echo "$dev"
- return 0;
-}
-
compare_two_fields_()
{
local cmd1=$1;
@@ -176,61 +142,3 @@
test "$?:$out" = "1:Invalid DM_DEV_DIR envvar value." -o \
"$?:$out" = "1:Invalid DM_DEV_DIR environment variable value."
}
-
-# set up private /dev and /etc
-init_root_dir_()
-{
- test -n "$test_dir_rand_" \
- || error "Internal error: called init_root_dir_ before" \
- "defining \$test_dir_rand_"
-
- # Define these two globals.
- G_root_=$test_dir_rand_/root
- G_dev_=$G_root_/dev
-
- export LVM_SYSTEM_DIR=$G_root_/etc
- export DM_DEV_DIR=$G_dev_
-
- # Only the first caller does anything.
- mkdir -p $G_root_/etc $G_dev_ $G_dev_/mapper $G_root_/lib
- for i in 0 1 2 3 4 5 6 7; do
- mknod $G_root_/dev/loop$i b 7 $i
- done
- for i in $abs_top_builddir/daemons/dmeventd/plugins/*/*.so
- do
- # NOTE: This check is necessary because the loop above will give us the value
- # "$abs_top_builddir/daemons/dmeventd/plugins/*/*.so" if no files ending in 'so' exist.
- # This is the best way I could quickly determine to skip over this bogus value.
- if [ -f $i ]; then
- echo Setting up symlink from $i to $G_root_/lib
- ln -s $i $G_root_/lib
- fi
- done
- cat > $G_root_/etc/lvm.conf <<-EOF
- devices {
- dir = "$G_dev_"
- scan = "$G_dev_"
- filter = [ "a/loop/", "a/mirror/", "a/mapper/", "r/.*/" ]
- cache_dir = "$G_root_/etc"
- sysfs_scan = 0
- }
- log {
- verbose = $verboselevel
- syslog = 0
- indent = 1
- }
- backup {
- backup = 0
- archive = 0
- }
- global {
- library_dir = "$G_root_/lib"
- }
- activation {
- udev_sync = 1
- udev_rules = 1
- }
-EOF
-}
-
-init_root_dir_
--- LVM2/test/t-000-basic.sh 2009/07/13 12:42:26 1.7
+++ LVM2/test/t-000-basic.sh 2010/04/07 14:46:26 1.8
@@ -20,7 +20,7 @@
# ensure they are the same
diff -u actual expected
-mknod $G_root_/dev/null c 1 3 ||
+mknod $DM_DEV_DIR/null c 1 3 ||
error "Can't create nodes on filesystem"
-echo >$G_root_/dev/null ||
+echo >$DM_DEV_DIR/null ||
error "Filesystem for tests does not allow using device nodes (check nodev)"
--- LVM2/test/t-fsadm.sh 2009/01/15 17:14:38 1.1
+++ LVM2/test/t-fsadm.sh 2010/04/07 14:46:26 1.2
@@ -19,7 +19,7 @@
# Test for block sizes != 1024 (rhbz #480022)
lvcreate -n$lv1 -L 64M $vg
-mke2fs -b4096 -j $G_dev_/$vg/$lv1
-e2fsck -f -y $G_dev_/$vg/$lv1
-fsadm --lvresize resize $G_dev_/$vg/$lv1 128M
+mke2fs -b4096 -j $DM_DEV_DIR/$vg/$lv1
+e2fsck -f -y $DM_DEV_DIR/$vg/$lv1
+fsadm --lvresize resize $DM_DEV_DIR/$vg/$lv1 128M
vgremove -ff $vg
--- LVM2/test/t-lvcreate-operation.sh 2010/04/06 14:24:13 1.4
+++ LVM2/test/t-lvcreate-operation.sh 2010/04/07 14:46:26 1.5
@@ -21,7 +21,7 @@
fi
}
-aux prepare_pvs 2
+prepare_pvs 2
aux pvcreate --metadatacopies 0 $dev1
aux vgcreate -c n $vg $devs
--- LVM2/test/t-lvcreate-pvtags.sh 2009/12/28 18:33:04 1.6
+++ LVM2/test/t-lvcreate-pvtags.sh 2010/04/07 14:46:26 1.7
@@ -24,7 +24,7 @@
not lvcreate -l4 -i4 $vg @fast
# 2 stripes is too many with just one PV
-not lvcreate -l2 -i2 $vg $G_dev_/mapper/pv1
+not lvcreate -l2 -i2 $vg $DM_DEV_DIR/mapper/pv1
# lvcreate mirror
lvcreate -l1 -m1 $vg @fast
--- LVM2/test/t-mirror-basic.sh 2010/02/17 15:41:28 1.7
+++ LVM2/test/t-mirror-basic.sh 2010/04/07 14:46:26 1.8
@@ -21,7 +21,7 @@
lvdev_()
{
- echo "$G_dev_/$1/$2"
+ echo "$DM_DEV_DIR/$1/$2"
}
mimages_are_redundant_ ()
--- LVM2/test/t-pvcreate-operation.sh 2010/02/22 14:47:55 1.17
+++ LVM2/test/t-pvcreate-operation.sh 2010/04/07 14:46:26 1.18
@@ -15,9 +15,9 @@
for mdatype in 1 2
do
# pvcreate (lvm$mdatype) refuses to overwrite an mounted filesystem (bz168330)
- test ! -d $G_root_/mnt && mkdir $G_root_/mnt
+ test ! -d $TESTDIR/mnt && mkdir $TESTDIR/mnt
if mke2fs $dev1; then
- mount $dev1 $G_root_/mnt
+ mount $dev1 $TESTDIR/mnt
not pvcreate -M$mdatype $dev1 2>err
grep "Can't open $dev1 exclusively. Mounted filesystem?" err
umount $dev1
@@ -89,7 +89,7 @@
# pvcreate (lvm2) fails writing LVM label at sector 4
not pvcreate --labelsector 4 $dev1
-backupfile=mybackupfile-$(this_test_)
+backupfile=$PREFIX.mybackupfile
uuid1=freddy-fred-fred-fred-fred-fred-freddy
uuid2=freddy-fred-fred-fred-fred-fred-fredie
bogusuuid=fred
--- LVM2/test/t-pvmove-basic.sh 2009/12/28 18:33:04 1.6
+++ LVM2/test/t-pvmove-basic.sh 2010/04/07 14:46:26 1.7
@@ -20,7 +20,7 @@
# Utilities
lvdev_() {
- echo "$G_dev_/$1/$2"
+ echo "$DM_DEV_DIR/$1/$2"
}
lv_is_on_() {
--- LVM2/test/t-read-ahead.sh 2010/02/17 15:41:28 1.11
+++ LVM2/test/t-read-ahead.sh 2010/04/07 14:46:26 1.12
@@ -47,7 +47,7 @@
blockdev --setra 768 $dev1
vgscan
lvcreate -n $lv -L4m $vg $dev1
-test $(blockdev --getra $G_dev_/$vg/$lv) -eq 768
+test $(blockdev --getra $DM_DEV_DIR/$vg/$lv) -eq 768
lvremove -ff $vg
# Check default, active/inactive values for read_ahead / kernel_read_ahead
--- LVM2/test/t-snapshot-merge.sh 2010/02/05 22:44:38 1.2
+++ LVM2/test/t-snapshot-merge.sh 2010/04/07 14:46:26 1.3
@@ -16,7 +16,7 @@
lvdev_()
{
- echo "$G_dev_/$1/$2"
+ echo "$DM_DEV_DIR/$1/$2"
}
snap_lv_name_() {
--- LVM2/test/t-topology-support.sh 2010/01/19 17:06:50 1.2
+++ LVM2/test/t-topology-support.sh 2010/04/07 14:46:27 1.3
@@ -31,7 +31,7 @@
lvdev_()
{
- echo "$G_dev_/$1/$2"
+ echo "$DM_DEV_DIR/$1/$2"
}
test_snapshot_mount()
--- LVM2/test/t-vgsplit-stacked.sh 2010/03/17 14:44:19 1.2
+++ LVM2/test/t-vgsplit-stacked.sh 2010/04/07 14:46:27 1.3
@@ -8,8 +8,8 @@
lvcreate -n $lv1 -l 100%FREE $vg1
#top VG
-pvcreate $G_dev_/$vg1/$lv1
-vgcreate $vg $G_dev_/$vg1/$lv1 $dev3
+pvcreate $DM_DEV_DIR/$vg1/$lv1
+vgcreate $vg $DM_DEV_DIR/$vg1/$lv1 $dev3
vgchange -a n $vg
vgchange -a n $vg1
--- LVM2/test/test-utils.sh 2010/04/06 17:36:43 1.29
+++ LVM2/test/test-utils.sh 2010/04/07 14:46:27 1.30
@@ -8,9 +8,6 @@
# 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="foo" # silence test-lib for now
-. ./test-lib.sh
-
aux() {
# use just "$@" for verbose operation
"$@" > /dev/null 2> /dev/null
@@ -71,12 +68,30 @@
# skip if we don't have our own clvmd...
(which clvmd | grep $abs_builddir) || exit 200
- trap 'aux teardown_' EXIT # don't forget to clean up
+ trap_teardown
clvmd -Isinglenode -d 1 &
LOCAL_CLVMD="$!"
}
+prepare_testroot() {
+ PWD="`pwd`"
+ PREFIX="LVMTEST$$"
+
+ trap_teardown
+ TESTDIR=$($abs_srcdir/mkdtemp ${LVM_TEST_DIR-$(pwd)} $PREFIX.XXXXXXXXXX) \
+ || { echo "failed to create temporary directory in $test_dir_"; exit 1; }
+
+ export LVM_SYSTEM_DIR=$TESTDIR/etc
+ export DM_DEV_DIR=$TESTDIR/dev
+ mkdir $LVM_SYSTEM_DIR $DM_DEV_DIR $DM_DEV_DIR/mapper $TESTDIR/lib
+
+ for i in `find $abs_top_builddir/daemons/dmeventd/plugins/ -name \*.so`; do
+ echo Setting up symlink from $i to $TESTDIR/lib
+ ln -s $i $TESTDIR/lib
+ done
+}
+
teardown() {
echo $LOOP
echo $PREFIX
@@ -84,12 +99,12 @@
test -n "$LOCAL_CLVMD" && kill -9 "$LOCAL_CLVMD"
test -n "$PREFIX" && {
- rm -rf $G_root_/dev/$PREFIX*
+ rm -rf $TESTDIR/dev/$PREFIX*
init_udev_transaction
while dmsetup table | grep -q ^$PREFIX; do
- for s in `dmsetup table | grep ^$PREFIX| awk '{ print substr($1,1,length($1)-1) }'`; do
- dmsetup remove $s 2>/dev/null > /dev/null || true
+ for s in `dmsetup info -c -o name --noheading | grep ^$PREFIX`; do
+ dmsetup remove $s >& /dev/null || true
done
done
finish_udev_transaction
@@ -105,27 +120,35 @@
test -n "$LOOPFILE" && rm -f $LOOPFILE
fi
unset devs # devs is set in prepare_devs()
+
+ test -n "$TESTDIR" && {
+ cd $PWD
+ rm -rf $TESTDIR || echo BLA
+ }
}
-teardown_() {
- teardown
- cleanup_ # user-overridable cleanup
- testlib_cleanup_ # call test-lib cleanup routine, too
+trap_teardown() {
+ trap 'set +vex; STACKTRACE; set -vex' ERR
+ trap 'aux teardown' EXIT # don't forget to clean up
}
make_ioerror() {
echo 0 10000000 error | dmsetup create ioerror
- ln -s $G_dev_/mapper/ioerror $G_dev_/ioerror
+ ln -s $DM_DEV_DIR/mapper/ioerror $DM_DEV_DIR/ioerror
}
prepare_loop() {
size=$1
test -n "$size" || size=32
- test -n "$LOOP" && return 0
- trap 'aux teardown_' EXIT # don't forget to clean up
- trap 'set +vex; STACKTRACE; set -vex' ERR
- #trap - ERR
+ test -z "$LOOP"
+ test -n "$DM_DEV_DIR"
+
+ trap_teardown
+
+ for i in 0 1 2 3 4 5 6 7; do
+ mknod $DM_DEV_DIR/loop$i b 7 $i
+ done
LOOPFILE="$PWD/test.img"
dd if=/dev/zero of="$LOOPFILE" bs=$((1024*1024)) count=1 seek=$(($size-1))
@@ -136,10 +159,10 @@
return 0
else
# no -f support
- # Iterate through $G_dev_/loop{,/}{0,1,2,3,4,5,6,7}
+ # Iterate through $DM_DEV_DIR/loop{,/}{0,1,2,3,4,5,6,7}
for slash in '' /; do
for i in 0 1 2 3 4 5 6 7; do
- local dev=$G_dev_/loop$slash$i
+ local dev=$DM_DEV_DIR/loop$slash$i
! losetup $dev >/dev/null 2>&1 || continue
# got a free
losetup "$dev" "$LOOPFILE"
@@ -174,8 +197,7 @@
local SCSI_DEBUG_PARAMS="$@"
test -n "$SCSI_DEBUG_DEV" && return 0
- trap 'aux teardown_' EXIT # don't forget to clean up
- trap 'set +vex; STACKTRACE; set -vex' ERR
+ trap_teardown
# Skip test if awk isn't available (required for get_sd_devs_)
which awk || exit 200
@@ -201,8 +223,8 @@
fi
done
if [ $FOUND -eq 0 ]; then
- # Create symlink to scsi_debug device in $G_dev_
- SCSI_DEBUG_DEV=$G_dev_/$(basename $dev1)
+ # Create symlink to scsi_debug device in $DM_DEV_DIR
+ SCSI_DEBUG_DEV=$DM_DEV_DIR/$(basename $dev1)
# Setting $LOOP provides means for prepare_devs() override
LOOP=$SCSI_DEBUG_DEV
ln -snf $dev1 $SCSI_DEBUG_DEV
@@ -228,8 +250,6 @@
prepare_loop $(($n*$devsize))
- PREFIX="LVMTEST$$"
-
if ! loopsz=`blockdev --getsz $LOOP 2>/dev/null`; then
loopsz=`blockdev --getsize $LOOP 2>/dev/null`
fi
@@ -239,7 +259,7 @@
init_udev_transaction
for i in `seq 1 $n`; do
local name="${PREFIX}$pvname$i"
- local dev="$G_dev_/mapper/$name"
+ local dev="$DM_DEV_DIR/mapper/$name"
eval "dev$i=$dev"
devs="$devs $dev"
echo 0 $size linear $LOOP $((($i-1)*$size)) > $name.table
@@ -325,13 +345,13 @@
filter='[ "a/dev\/mirror/", "a/dev\/mapper\/.*pv[0-9_]*$/", "r/.*/" ]'
locktype=
if test -n "$LVM_TEST_LOCKING"; then locktype="locking_type = $LVM_TEST_LOCKING"; fi
- cat > $G_root_/etc/lvm.conf <<-EOF
+ cat > $TESTDIR/etc/lvm.conf <<-EOF
$LVM_TEST_CONFIG
devices {
- dir = "$G_dev_"
- scan = "$G_dev_"
+ dir = "$DM_DEV_DIR"
+ scan = "$DM_DEV_DIR"
filter = $filter
- cache_dir = "$G_root_/etc"
+ cache_dir = "$TESTDIR/etc"
sysfs_scan = 0
}
log {
@@ -344,8 +364,8 @@
}
global {
abort_on_internal_errors = 1
- library_dir = "$G_root_/lib"
- locking_dir = "$G_root_/var/lock/lvm"
+ library_dir = "$TESTDIR/lib"
+ locking_dir = "$TESTDIR/var/lock/lvm"
$locktype
}
activation {
@@ -353,9 +373,22 @@
udev_rules = 1
}
EOF
+ cat $TESTDIR/etc/lvm.conf
}
-set -vexE -o pipefail
-aux prepare_lvmconf
-prepare_clvmd
+prepare() {
+ prepare_testroot
+ prepare_lvmconf
+ prepare_clvmd
+ source ./lvm-utils.sh
+}
+
+LANG=C
+LC_ALL=C
+TZ=UTC
+unset CDPATH
+. ./init.sh || { echo >&2 you must run make first; exit 1; }
+
+set -vexE -o pipefail
+aux prepare
reply other threads:[~2010-04-07 14:46 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100407144629.29115.qmail@sourceware.org \
--to=mornfall@sourceware.org \
--cc=lvm-devel@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.