All of lore.kernel.org
 help / color / mirror / Atom feed
From: mornfall@sourceware.org <mornfall@sourceware.org>
To: lvm-devel@redhat.com
Subject: LVM2/test Makefile.in t-000-basic.sh t-activat ...
Date: 5 Jan 2011 00:16:41 -0000	[thread overview]
Message-ID: <20110105001641.3640.qmail@sourceware.org> (raw)

CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	mornfall at sourceware.org	2011-01-05 00:16:21

Modified files:
	test           : Makefile.in t-000-basic.sh 
	                 t-activate-missing.sh t-activate-partial.sh 
	                 t-covercmd.sh t-dmeventd-restart.sh t-fsadm.sh 
	                 t-inconsistent-metadata.sh t-listings.sh 
	                 t-lock-blocking.sh t-lvchange-mirror.sh 
	                 t-lvconvert-mirror-basic.sh 
	                 t-lvconvert-mirror.sh 
	                 t-lvconvert-repair-dmeventd.sh 
	                 t-lvconvert-repair-policy.sh 
	                 t-lvconvert-repair-replace.sh 
	                 t-lvconvert-repair-transient.sh 
	                 t-lvconvert-repair.sh t-lvconvert-twostep.sh 
	                 t-lvcreate-mirror.sh t-lvcreate-operation.sh 
	                 t-lvcreate-pvtags.sh t-lvcreate-small-snap.sh 
	                 t-lvcreate-usage.sh 
	                 t-lvextend-percent-extents.sh 
	                 t-lvextend-snapshot-dmeventd.sh 
	                 t-lvextend-snapshot-policy.sh t-lvm-init.sh 
	                 t-lvmcache-exercise.sh t-lvresize-mirror.sh 
	                 t-lvresize-usage.sh t-mdata-strings.sh 
	                 t-metadata-balance.sh t-metadata.sh 
	                 t-mirror-names.sh 
	                 t-mirror-vgreduce-removemissing.sh 
	                 t-nomda-missing.sh t-pool-labels.sh 
	                 t-pv-range-overflow.sh t-pvchange-usage.sh 
	                 t-pvcreate-metadata0.sh 
	                 t-pvcreate-operation-md.sh 
	                 t-pvcreate-operation.sh t-pvcreate-usage.sh 
	                 t-pvmove-basic.sh t-pvremove-usage.sh 
	                 t-read-ahead.sh 
	                 t-snapshot-autoumount-dmeventd.sh 
	                 t-snapshot-merge.sh t-snapshots-of-mirrors.sh 
	                 t-tags.sh t-test-partition.sh 
	                 t-topology-support.sh t-unknown-segment.sh 
	                 t-unlost-pv.sh t-vgcfgbackup-usage.sh 
	                 t-vgchange-maxlv.sh t-vgchange-usage.sh 
	                 t-vgcreate-usage.sh 
	                 t-vgextend-restoremissing.sh 
	                 t-vgextend-usage.sh t-vgmerge-operation.sh 
	                 t-vgmerge-usage.sh t-vgreduce-usage.sh 
	                 t-vgrename-usage.sh t-vgsplit-operation.sh 
	                 t-vgsplit-stacked.sh t-vgsplit-usage.sh 
	test/api       : percent.sh vgtest.sh 
Added files:
	test/lib       : aux.sh check.sh get.sh harness.c lvm-wrapper.sh 
	                 not.c test.sh utils.sh 
Removed files:
	test           : check.sh harness.c not.c 

Log message:
	Substantial rework of the functional test support code. Some new features:
	
	- somewhat neater, more consistent and more readable output
	- possible to set any lvm.conf value: aux lvmconf "section/key = value"
	- LVM_TEST_NODEBUG to suppress the (lengthy) "## DEBUG" output
	- back-substitution on test output ($TESTDIR/$PREFIX -> @TESTDIR@/@PREFIX@)
	- support code moved from test/ to test/lib/ --> less clutter

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/Makefile.in.diff?cvsroot=lvm2&r1=1.49&r2=1.50
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-000-basic.sh.diff?cvsroot=lvm2&r1=1.10&r2=1.11
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-activate-missing.sh.diff?cvsroot=lvm2&r1=1.3&r2=1.4
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-activate-partial.sh.diff?cvsroot=lvm2&r1=1.4&r2=1.5
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-covercmd.sh.diff?cvsroot=lvm2&r1=1.9&r2=1.10
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-dmeventd-restart.sh.diff?cvsroot=lvm2&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-fsadm.sh.diff?cvsroot=lvm2&r1=1.4&r2=1.5
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-inconsistent-metadata.sh.diff?cvsroot=lvm2&r1=1.4&r2=1.5
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-listings.sh.diff?cvsroot=lvm2&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lock-blocking.sh.diff?cvsroot=lvm2&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvchange-mirror.sh.diff?cvsroot=lvm2&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvconvert-mirror-basic.sh.diff?cvsroot=lvm2&r1=1.4&r2=1.5
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvconvert-mirror.sh.diff?cvsroot=lvm2&r1=1.8&r2=1.9
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvconvert-repair-dmeventd.sh.diff?cvsroot=lvm2&r1=1.3&r2=1.4
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvconvert-repair-policy.sh.diff?cvsroot=lvm2&r1=1.5&r2=1.6
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvconvert-repair-replace.sh.diff?cvsroot=lvm2&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvconvert-repair-transient.sh.diff?cvsroot=lvm2&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvconvert-repair.sh.diff?cvsroot=lvm2&r1=1.8&r2=1.9
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvconvert-twostep.sh.diff?cvsroot=lvm2&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvcreate-mirror.sh.diff?cvsroot=lvm2&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvcreate-operation.sh.diff?cvsroot=lvm2&r1=1.5&r2=1.6
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvcreate-pvtags.sh.diff?cvsroot=lvm2&r1=1.7&r2=1.8
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvcreate-small-snap.sh.diff?cvsroot=lvm2&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvcreate-usage.sh.diff?cvsroot=lvm2&r1=1.18&r2=1.19
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvextend-percent-extents.sh.diff?cvsroot=lvm2&r1=1.9&r2=1.10
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvextend-snapshot-dmeventd.sh.diff?cvsroot=lvm2&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvextend-snapshot-policy.sh.diff?cvsroot=lvm2&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvm-init.sh.diff?cvsroot=lvm2&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvmcache-exercise.sh.diff?cvsroot=lvm2&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvresize-mirror.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.3&r2=1.4
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-mdata-strings.sh.diff?cvsroot=lvm2&r1=1.5&r2=1.6
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-metadata-balance.sh.diff?cvsroot=lvm2&r1=1.4&r2=1.5
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-metadata.sh.diff?cvsroot=lvm2&r1=1.6&r2=1.7
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-mirror-names.sh.diff?cvsroot=lvm2&r1=1.7&r2=1.8
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-mirror-vgreduce-removemissing.sh.diff?cvsroot=lvm2&r1=1.9&r2=1.10
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-nomda-missing.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.3&r2=1.4
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-pv-range-overflow.sh.diff?cvsroot=lvm2&r1=1.4&r2=1.5
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-pvchange-usage.sh.diff?cvsroot=lvm2&r1=1.5&r2=1.6
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-pvcreate-metadata0.sh.diff?cvsroot=lvm2&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-pvcreate-operation-md.sh.diff?cvsroot=lvm2&r1=1.10&r2=1.11
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-pvcreate-operation.sh.diff?cvsroot=lvm2&r1=1.19&r2=1.20
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-pvcreate-usage.sh.diff?cvsroot=lvm2&r1=1.16&r2=1.17
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-pvmove-basic.sh.diff?cvsroot=lvm2&r1=1.11&r2=1.12
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-pvremove-usage.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.12&r2=1.13
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-snapshot-autoumount-dmeventd.sh.diff?cvsroot=lvm2&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-snapshot-merge.sh.diff?cvsroot=lvm2&r1=1.7&r2=1.8
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-snapshots-of-mirrors.sh.diff?cvsroot=lvm2&r1=1.5&r2=1.6
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-tags.sh.diff?cvsroot=lvm2&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-test-partition.sh.diff?cvsroot=lvm2&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-topology-support.sh.diff?cvsroot=lvm2&r1=1.5&r2=1.6
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-unknown-segment.sh.diff?cvsroot=lvm2&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-unlost-pv.sh.diff?cvsroot=lvm2&r1=1.3&r2=1.4
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-vgcfgbackup-usage.sh.diff?cvsroot=lvm2&r1=1.6&r2=1.7
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-vgchange-maxlv.sh.diff?cvsroot=lvm2&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-vgchange-usage.sh.diff?cvsroot=lvm2&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-vgcreate-usage.sh.diff?cvsroot=lvm2&r1=1.17&r2=1.18
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-vgextend-restoremissing.sh.diff?cvsroot=lvm2&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-vgextend-usage.sh.diff?cvsroot=lvm2&r1=1.5&r2=1.6
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-vgmerge-operation.sh.diff?cvsroot=lvm2&r1=1.6&r2=1.7
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-vgmerge-usage.sh.diff?cvsroot=lvm2&r1=1.7&r2=1.8
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-vgreduce-usage.sh.diff?cvsroot=lvm2&r1=1.6&r2=1.7
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-vgrename-usage.sh.diff?cvsroot=lvm2&r1=1.5&r2=1.6
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-vgsplit-operation.sh.diff?cvsroot=lvm2&r1=1.26&r2=1.27
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-vgsplit-stacked.sh.diff?cvsroot=lvm2&r1=1.4&r2=1.5
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-vgsplit-usage.sh.diff?cvsroot=lvm2&r1=1.14&r2=1.15
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/check.sh.diff?cvsroot=lvm2&r1=1.6&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/harness.c.diff?cvsroot=lvm2&r1=1.14&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/not.c.diff?cvsroot=lvm2&r1=1.5&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/api/percent.sh.diff?cvsroot=lvm2&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/api/vgtest.sh.diff?cvsroot=lvm2&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/lib/aux.sh.diff?cvsroot=lvm2&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/lib/check.sh.diff?cvsroot=lvm2&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/lib/get.sh.diff?cvsroot=lvm2&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/lib/harness.c.diff?cvsroot=lvm2&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/lib/lvm-wrapper.sh.diff?cvsroot=lvm2&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/lib/not.c.diff?cvsroot=lvm2&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/lib/test.sh.diff?cvsroot=lvm2&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/lib/utils.sh.diff?cvsroot=lvm2&r1=NONE&r2=1.1

--- LVM2/test/Makefile.in	2010/12/14 23:23:45	1.49
+++ LVM2/test/Makefile.in	2011/01/05 00:16:18	1.50
@@ -34,94 +34,73 @@
 # Shell quote;
 SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
 
-SUPPORT := $(srcdir)/test-utils.sh \
-           $(srcdir)/lvm-utils.sh
-
 ifeq ("@UDEV_SYNC@", "yes")
 dm_udev_synchronisation = 1
 endif
 
-all check: init.sh
+all check: .tests-stamp
 	make -C api tests
 	@echo Testing with locking_type 1
-	VERBOSE=$(VERBOSE) ./bin/harness $(RUN_BASE)
+	VERBOSE=$(VERBOSE) ./lib/harness $(RUN_BASE)
 	@echo Testing with locking_type 3
-	VERBOSE=$(VERBOSE) LVM_TEST_LOCKING=3 ./bin/harness $(RUN_BASE)
+	VERBOSE=$(VERBOSE) LVM_TEST_LOCKING=3 ./lib/harness $(RUN_BASE)
 
-check_cluster: init.sh
+check_cluster: .tests-stamp
 	make -C api tests
 	@echo Testing with locking_type 3
-	VERBOSE=$(VERBOSE) LVM_TEST_LOCKING=3 ./bin/harness $(RUN_BASE)
+	VERBOSE=$(VERBOSE) LVM_TEST_LOCKING=3 ./lib/harness $(RUN_BASE)
 
-check_local: init.sh
+check_local: .tests-stamp
 	make -C api tests
 	@echo Testing with locking_type 1
-	VERBOSE=$(VERBOSE) LVM_TEST_LOCKING=1 ./bin/harness $(RUN_BASE)
+	VERBOSE=$(VERBOSE) LVM_TEST_LOCKING=1 ./lib/harness $(RUN_BASE)
 
-bin/not: $(srcdir)/not.c .bin-dir-stamp
-	$(CC) -o bin/not $<
-	ln -sf not bin/should
+lib/should: lib/not
+	ln -sf not lib/should
 
-bin/harness: $(srcdir)/harness.c .bin-dir-stamp
-	$(CC) -o bin/harness $<
+lib/%: $(srcdir)/lib/%.c .lib-dir-stamp
+	$(CC) -o $@ $<
 
-bin/check: $(srcdir)/check.sh .bin-dir-stamp
-	cp $< bin/check
-	chmod +x bin/check
+lib/%: $(srcdir)/lib/%.sh .lib-dir-stamp
+	cp $< $@
+	chmod +x $@
 
-init.sh: $(srcdir)/Makefile.in .bin-dir-stamp bin/not bin/check bin/harness $(RUN) $(SUPPORT) $(UNIT)
-	rm -f $@-t $@
+lib/paths: $(srcdir)/Makefile.in .lib-dir-stamp
+	rm -f $@-t
 	echo 'top_srcdir=$(top_srcdir)' >> $@-t
 	echo 'abs_top_builddir=$(abs_top_builddir)' >> $@-t
 	echo 'abs_top_srcdir=$(abs_top_builddir)' >> $@-t
-	echo 'PATH=$$abs_top_builddir/test/bin:$$PATH' >> $@-t
-	LDLPATH="\$$abs_top_builddir/libdm"; \
-	LDLPATH="$$LDLPATH:\$$abs_top_builddir/tools"; \
-	LDLPATH="$$LDLPATH:\$$abs_top_builddir/liblvm"; \
-	LDLPATH="$$LDLPATH:\$$abs_top_builddir/daemons/dmeventd"; \
-	LDLPATH="$$LDLPATH:\$$abs_top_builddir/daemons/dmeventd/plugins/lvm2"; \
-	LDLPATH="$$LDLPATH:\$$abs_top_builddir/daemons/dmeventd/plugins/mirror"; \
-	LDLPATH="$$LDLPATH:\$$abs_top_builddir/daemons/dmeventd/plugins/snapshot"; \
-	echo "export LD_LIBRARY_PATH=\"$$LDLPATH\"" >> $@-t
-	echo 'top_srcdir=$(top_srcdir)' >> $@-t
 	echo 'abs_srcdir=$(abs_srcdir)' >> $@-t
 	echo 'abs_builddir=$(abs_builddir)' >> $@-t
-	echo 'export PATH' >> $@-t
 	echo 'export DM_UDEV_SYNCHRONISATION=$(dm_udev_synchronisation)' >> $@-t
-	chmod a-w $@-t
 	mv $@-t $@
+
+LIB = lib/not lib/should lib/harness \
+      lib/check lib/aux lib/test lib/utils lib/get lib/lvm-wrapper \
+      lib/paths
+
+.tests-stamp: $(RUN) $(LIB)
 	@if test "$(srcdir)" != . ; then \
 	    echo "Copying tests to builddir."; \
-	    cp $(SUPPORT) .; \
 	    for f in $(RUN); do cp $$f `echo $$f | sed -e s,^$(srcdir)/,,`; done; \
 	fi
+	touch .tests-stamp
 
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 
-.bin-dir-stamp: lvm-wrapper
-	rm -rf bin
-	mkdir bin
+.lib-dir-stamp:
+	mkdir -p lib
 	for i in lvm $$(cat ../tools/.commands); do \
-	  ln -s ../lvm-wrapper bin/$$i; \
+	  ln -fs lvm-wrapper lib/$$i; \
 	done
-	ln -s "$(abs_top_builddir)/tools/dmsetup" bin/dmsetup
-	ln -s "$(abs_top_builddir)/daemons/clvmd/clvmd" bin/clvmd
-	ln -s "$(abs_top_builddir)/daemons/dmeventd/dmeventd" bin/dmeventd
+	ln -s "$(abs_top_builddir)/tools/dmsetup" lib/dmsetup
+	ln -s "$(abs_top_builddir)/daemons/clvmd/clvmd" lib/clvmd
+	ln -s "$(abs_top_builddir)/daemons/dmeventd/dmeventd" lib/dmeventd
 	touch $@
 
-lvm-wrapper: Makefile
-	rm -f $@-t $@
-	echo '#!/bin/sh'                                          >  $@-t
-	echo 'cmd=$$(echo ./$$0|sed "s,.*/,,")'                   >> $@-t
-	echo 'test "$$cmd" = lvm &&'                              >> $@-t
-	echo 'exec "$(abs_top_builddir)/tools/lvm" "$$@"'         >> $@-t
-	echo 'exec "$(abs_top_builddir)/tools/lvm" "$$cmd" "$$@"' >> $@-t
-	chmod a-w,a+x $@-t
-	mv $@-t $@
-
 clean:
-	rm -rf init.sh lvm-wrapper bin .bin-dir-stamp
+	rm -rf bin .lib-dir-stamp .test-stamp
 	if test "$(srcdir)" != . ; then rm -f $(subst $(srcdir)/, ,$(RUN)) lvm2app.sh ; fi
 
 distclean: clean
--- LVM2/test/t-000-basic.sh	2010/08/02 13:18:02	1.10
+++ LVM2/test/t-000-basic.sh	2011/01/05 00:16:20	1.11
@@ -8,7 +8,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 lvm version
 
--- LVM2/test/t-activate-missing.sh	2010/07/28 12:20:41	1.3
+++ LVM2/test/t-activate-missing.sh	2011/01/05 00:16:20	1.4
@@ -17,9 +17,9 @@
 #   instead lvconvert --repair them?)
 # - linear LVs with bits missing are not activated
 
-. ./test-utils.sh
+. lib/test
 
-prepare_vg 4
+aux prepare_vg 4
 
 lvcreate -l1 -n linear1 $vg $dev1
 lvcreate -l1 -n linear2 $vg $dev2
@@ -32,7 +32,7 @@
 lvcreate -l1 -m1 -n mirror123 $vg $dev1 $dev2 $dev3
 
 vgchange -a n $vg
-disable_dev $dev1
+aux disable_dev $dev1
 not vgchange -a y $vg
 not vgck $vg
 
@@ -45,8 +45,8 @@
 check inactive $vg mirror123
 
 vgchange -a n $vg
-enable_dev $dev1
-disable_dev $dev2
+aux enable_dev $dev1
+aux disable_dev $dev2
 not vgchange -a y $vg
 not vgck $vg
 
@@ -59,8 +59,8 @@
 check inactive $vg mirror123
 
 vgchange -a n $vg
-enable_dev $dev2
-disable_dev $dev3
+aux enable_dev $dev2
+aux disable_dev $dev3
 not vgchange -a y $vg
 not vgck $vg
 
@@ -73,8 +73,8 @@
 check active $vg mirror12
 
 vgchange -a n $vg
-enable_dev $dev3
-disable_dev $dev4
+aux enable_dev $dev3
+aux disable_dev $dev4
 vgchange -a y $vg
 not vgck $vg
 
--- LVM2/test/t-activate-partial.sh	2010/07/28 12:20:41	1.4
+++ LVM2/test/t-activate-partial.sh	2011/01/05 00:16:20	1.5
@@ -8,13 +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-utils.sh
+. lib/test
 
 aux prepare_vg 3
 
 lvcreate -m 1 -l 1 -n mirror $vg
 lvchange -a n $vg/mirror
-disable_dev $dev1
+aux disable_dev $dev1
 
 not vgreduce --removemissing $vg
 not lvchange -v -a y $vg/mirror
--- LVM2/test/t-covercmd.sh	2010/08/12 04:09:00	1.9
+++ LVM2/test/t-covercmd.sh	2011/01/05 00:16:20	1.10
@@ -12,7 +12,7 @@
 # tests basic functionality of read-ahead and ra regressions
 #
 
-. ./test-utils.sh
+. lib/test
 
 TEST_UUID="aaaaaa-aaaa-aaaa-aaaa-aaaa-aaaa-aaaaaa"
 
@@ -31,7 +31,7 @@
 pvcreate --metadatacopies 0 $dev3
 pvcreate $dev4
 pvcreate --norestorefile -u $TEST_UUID --metadatacopies 0 $dev5
-vgcreate -c n $vg $devs
+vgcreate -c n $vg $(cat DEVICES)
 lvcreate -n $lv -l 5 -i5 -I256 $vg
 
 # test *scan and *display tools
--- LVM2/test/t-dmeventd-restart.sh	2010/10/27 09:16:31	1.1
+++ LVM2/test/t-dmeventd-restart.sh	2011/01/05 00:16:20	1.2
@@ -9,10 +9,10 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
-prepare_vg 5
-prepare_dmeventd
+aux prepare_vg 5
+aux prepare_dmeventd
 
 which mkfs.ext2 || exit 200
 
@@ -22,7 +22,7 @@
 lvchange --monitor y $vg/3way
 
 dmeventd -R -f &
-LOCAL_DMEVENTD="$!"
+echo "$!" > LOCAL_DMEVENTD
 
 sleep 1 # wait a bit, so we talk to the new dmeventd later
 
--- LVM2/test/t-fsadm.sh	2010/10/13 09:44:52	1.4
+++ LVM2/test/t-fsadm.sh	2011/01/05 00:16:20	1.5
@@ -12,7 +12,7 @@
 test_description='Exercise fsadm filesystem resize'
 exit 200
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_vg 1 100
 
--- LVM2/test/t-inconsistent-metadata.sh	2010/07/07 14:43:57	1.4
+++ LVM2/test/t-inconsistent-metadata.sh	2011/01/05 00:16:20	1.5
@@ -9,7 +9,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_vg 3
 
@@ -17,14 +17,14 @@
 lvcreate -l 1 -n resized $vg
 lvchange -a n $vg/mirror
 
-backup_dev $devs
+aux backup_dev $(cat DEVICES)
 
 init() {
-	restore_dev $devs
+	aux restore_dev $(cat DEVICES)
 	lvs -o lv_name,lv_size --units k $vg | tee lvs.out
 	grep resized lvs.out | not grep 8192
 	lvresize -L 8192K $vg/resized
-	restore_dev $dev1
+	aux restore_dev $dev1
 }
 
 check() {
@@ -66,10 +66,10 @@
 
 echo Check auto-repair of failed vgextend - metadata written to original pv but not new pv
 vgremove -f $vg
-pvremove -ff $devs
-pvcreate $devs
-backup_dev $dev2
+pvremove -ff $(cat DEVICES)
+pvcreate $(cat DEVICES)
+aux backup_dev $dev2
 vgcreate $vg $dev1
 vgextend $vg $dev2
-restore_dev $dev2
-should compare_two_fields_ vgs $vg vg_mda_count pvs $dev2 vg_mda_count
+aux restore_dev $dev2
+should check compare_fields vgs $vg vg_mda_count pvs $dev2 vg_mda_count
--- LVM2/test/t-listings.sh	2009/04/21 12:59:18	1.2
+++ LVM2/test/t-listings.sh	2011/01/05 00:16:20	1.3
@@ -12,7 +12,7 @@
 # tests functionality of lvs, pvs, vgs, *display tools
 #
 
-. ./test-utils.sh
+. lib/test
 
 get_lvs_()
 {
@@ -38,16 +38,16 @@
 pvs --noheadings -o  seg_all,pv_all,lv_all,vg_all | tee out
 test $(wc -l <out) -eq 5
 
-vgcreate -c n $vg $devs
+vgcreate -c n $vg $(cat DEVICES)
 
 #COMM pvs and vgs report mda_count, mda_free (bz202886, bz247444)
-pvs -o +pv_mda_count,pv_mda_free $devs
+pvs -o +pv_mda_count,pv_mda_free $(cat DEVICES)
 for I in $dev2 $dev3 $dev5; do
-	aux check_pv_field_ $I pv_mda_count 0
-	aux check_pv_field_ $I pv_mda_free 0
+	check pv_field $I pv_mda_count 0
+	check pv_field $I pv_mda_free 0
 done
 vgs -o +vg_mda_count,vg_mda_free $vg
-aux check_vg_field_ $vg vg_mda_count 2
+check vg_field $vg vg_mda_count 2
 
 #COMM pvs doesn't display --metadatacopies 0 PVs as orphans (bz409061)
 pvdisplay $dev2|grep "VG Name.*$vg"
@@ -77,7 +77,7 @@
 # would complain if not
 
 #COMM pvdisplay --maps feature (bz149814)
-pvdisplay $devs >out
-pvdisplay --maps $devs >out2
+pvdisplay $(cat DEVICES) >out
+pvdisplay --maps $(cat DEVICES) >out2
 not diff out out2
 
--- LVM2/test/t-lock-blocking.sh	2010/08/02 13:23:01	1.2
+++ LVM2/test/t-lock-blocking.sh	2011/01/05 00:16:20	1.3
@@ -11,7 +11,7 @@
 
 test_description='test some blocking / non-blocking multi-vg operations'
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_devs 3
 test -n "$LOCAL_CLVMD" && exit 200
--- LVM2/test/t-lvchange-mirror.sh	2010/04/12 19:16:24	1.1
+++ LVM2/test/t-lvchange-mirror.sh	2011/01/05 00:16:20	1.2
@@ -9,7 +9,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 aux prepare_vg 3
 
 # force resync 2-way active mirror
--- LVM2/test/t-lvconvert-mirror-basic.sh	2010/07/28 12:20:41	1.4
+++ LVM2/test/t-lvconvert-mirror-basic.sh	2011/01/05 00:16:20	1.5
@@ -8,7 +8,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 log_name_to_count()
 {
@@ -83,7 +83,7 @@
 		max_log_count=$start_log_count
 	fi
 
-	prepare_vg 5
+	aux prepare_vg 5
 
 	if [ $start_count -gt 0 ]; then
 		# Are there extra devices for the log or do we overlap
--- LVM2/test/t-lvconvert-mirror.sh	2010/11/30 11:35:32	1.8
+++ LVM2/test/t-lvconvert-mirror.sh	2011/01/05 00:16:20	1.9
@@ -9,7 +9,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 # convert from linear to 2-way mirror
 aux prepare_vg 5
--- LVM2/test/t-lvconvert-repair-dmeventd.sh	2010/10/26 12:53:07	1.3
+++ LVM2/test/t-lvconvert-repair-dmeventd.sh	2011/01/05 00:16:20	1.4
@@ -9,18 +9,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-utils.sh
+. lib/test
 
-prepare_vg 5
-prepare_dmeventd
+aux prepare_vg 5
+aux prepare_dmeventd
 
 which mkfs.ext2 || exit 200
 
 lvcreate -m 3 --ig -L 1 -n 4way $vg
 lvchange --monitor y $vg/4way
-disable_dev $dev2 $dev4
+aux disable_dev $dev2 $dev4
 mkfs.ext2 $DM_DEV_DIR/$vg/4way
 sleep 10 # FIXME: need a "poll" utility, akin to "check"
-enable_dev $dev2 $dev4
+aux enable_dev $dev2 $dev4
 check mirror $vg 4way
 check mirror_legs $vg 4way 2
--- LVM2/test/t-lvconvert-repair-policy.sh	2010/05/24 15:32:21	1.5
+++ LVM2/test/t-lvconvert-repair-policy.sh	2011/01/05 00:16:20	1.6
@@ -9,16 +9,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-utils.sh
+. lib/test
 
-prepare_vg 4
+aux prepare_vg 4
 
 # Clean-up and create a 2-way mirror, where the the
 # leg devices are always on $dev[12] and the log
 # is always on $dev3.  ($dev4 behaves as a spare)
 cleanup() {
 	vgreduce --removemissing $vg
-	for d in "$@"; do enable_dev $d; done
+	for d in "$@"; do aux enable_dev $d; done
 	for d in "$@"; do vgextend $vg $d; done
 	lvremove -ff $vg/mirror
 	lvcreate -m 1 --ig -l 2 -n mirror $vg $dev1 $dev2 $dev3:0
@@ -36,7 +36,7 @@
 lvchange --partial -a y $vg/mirror
 repair 'activation { mirror_image_fault_policy = "remove" }'
 check linear $vg mirror
-aux cleanup $dev1
+cleanup $dev1
 
 # Fail a leg of a mirror.
 # Expected result: Mirror (leg replaced)
@@ -44,7 +44,7 @@
 repair 'activation { mirror_image_fault_policy = "replace" }'
 check mirror $vg mirror
 lvs | grep mirror_mlog
-aux cleanup $dev1
+cleanup $dev1
 
 # Fail a leg of a mirror (use old name for policy specification)
 # Expected result: Mirror (leg replaced)
@@ -52,7 +52,7 @@
 repair 'activation { mirror_device_fault_policy = "replace" }'
 check mirror $vg mirror
 lvs | grep mirror_mlog
-aux cleanup $dev1
+cleanup $dev1
 
 # Fail a leg of a mirror w/ no available spare
 # Expected result: 2-way with corelog
@@ -60,7 +60,7 @@
 repair 'activation { mirror_image_fault_policy = "replace" }'
 check mirror $vg mirror
 lvs | not grep mirror_mlog
-aux cleanup $dev2 $dev4
+cleanup $dev2 $dev4
 
 # Fail the log device of a mirror w/ no available spare
 # Expected result: mirror w/ corelog
@@ -68,7 +68,7 @@
 repair 'activation { mirror_image_fault_policy = "replace" }' $vg/mirror
 check mirror $vg mirror
 lvs | not grep mirror_mlog
-aux cleanup $dev3 $dev4
+cleanup $dev3 $dev4
 
 # Fail the log device with a remove policy
 # Expected result: mirror w/ corelog
--- LVM2/test/t-lvconvert-repair-replace.sh	2010/04/14 13:51:58	1.1
+++ LVM2/test/t-lvconvert-repair-replace.sh	2011/01/05 00:16:20	1.2
@@ -9,43 +9,43 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
-prepare_vg 6
+aux prepare_vg 6
 
 # multiple failures, full replace
 lvcreate --mirrorlog disk -m 2 --ig -L 1 -n 3way $vg $dev1 $dev2 $dev3 $dev4:0-1
-disable_dev $dev1 $dev2
+aux disable_dev $dev1 $dev2
 echo y | lvconvert --repair $vg/3way 2>&1 | tee 3way.out
 lvs -a -o +devices | not grep unknown
 not grep "WARNING: Failed" 3way.out
 vgreduce --removemissing $vg
 check mirror $vg 3way
-enable_dev $dev1 $dev2
+aux enable_dev $dev1 $dev2
 
 vgremove -ff $vg; vgcreate -c n $vg $dev1 $dev2 $dev3 $dev4 $dev5
 
 # multiple failures, partial replace
 lvcreate --mirrorlog disk -m 2 --ig -L 1 -n 3way $vg $dev1 $dev2 $dev3 $dev4
-disable_dev $dev1 $dev2
+aux disable_dev $dev1 $dev2
 echo y | lvconvert --repair $vg/3way 2>&1 | tee 3way.out
 grep "WARNING: Failed" 3way.out
 lvs -a -o +devices | not grep unknown
 vgreduce --removemissing $vg
 check mirror $vg 3way
-enable_dev $dev1 $dev2
+aux enable_dev $dev1 $dev2
 lvchange -a n $vg/3way
 
 vgremove -ff $vg; vgcreate -c n $vg $dev1 $dev2 $dev3
 
 lvcreate --mirrorlog disk -m 1 --ig -L 1 -n 2way $vg $dev1 $dev2 $dev3
-disable_dev $dev1
+aux disable_dev $dev1
 echo y | lvconvert --repair $vg/2way 2>&1 | tee 2way.out
 grep "WARNING: Failed" 2way.out
 lvs -a -o +devices | not grep unknown
 vgreduce --removemissing $vg
 check mirror $vg 2way
-enable_dev $dev1 $dev2
+aux enable_dev $dev1 $dev2
 lvchange -a n $vg/2way
 
 vgremove -ff $vg; vgcreate -c n $vg $dev1 $dev2 $dev3 $dev4
--- LVM2/test/t-lvconvert-repair-transient.sh	2010/05/24 16:33:21	1.2
+++ LVM2/test/t-lvconvert-repair-transient.sh	2011/01/05 00:16:20	1.3
@@ -9,18 +9,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-utils.sh
-
-prepare_vg 5
+. lib/test
 
 exit 200 # this breaks upstream .33 and RHEL6 kernel :(
 
+aux prepare_vg 5
+
 # fail multiple devices
 
 lvcreate -m 3 --ig -L 1 -n 4way $vg
-disable_dev $dev2 $dev4
+aux disable_dev $dev2 $dev4
 mkfs.ext3 $DM_DEV_DIR/$vg/4way
-enable_dev $dev2 $dev4
+aux enable_dev $dev2 $dev4
 echo n | lvconvert --repair $vg/4way 2>&1 | tee 4way.out
 lvs -a -o +devices | not grep unknown
 vgreduce --removemissing $vg
--- LVM2/test/t-lvconvert-repair.sh	2010/05/24 15:32:21	1.8
+++ LVM2/test/t-lvconvert-repair.sh	2011/01/05 00:16:20	1.9
@@ -9,54 +9,54 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 
 # fail multiple devices
 
 aux prepare_vg 5
 lvcreate -m 3 --ig -L 1 -n 4way $vg $dev1 $dev2 $dev3 $dev4 $dev5:0
-disable_dev $dev2 $dev4
+aux disable_dev $dev2 $dev4
 echo n | lvconvert --repair $vg/4way 2>&1 | tee 4way.out
 lvs -a -o +devices | not grep unknown
 vgreduce --removemissing $vg
-enable_dev $dev2 $dev4
+aux enable_dev $dev2 $dev4
 check mirror $vg 4way $dev5
 
 aux prepare_vg 5
 lvcreate -m 2 --ig -L 1 -n 3way $vg
-disable_dev $dev1 $dev2
+aux disable_dev $dev1 $dev2
 echo n | lvconvert --repair $vg/3way
 check linear $vg 3way
 lvs -a -o +devices | not grep unknown
 lvs -a -o +devices | not grep mlog
 dmsetup ls | grep $PREFIX | not grep mlog
 vgreduce --removemissing $vg
-enable_dev $dev1 $dev2
+aux enable_dev $dev1 $dev2
 check linear $vg 3way
 
 # fail just log and get it removed
 
 aux prepare_vg 5
 lvcreate -m 2 --ig -L 1 -n 3way $vg $dev1 $dev2 $dev3 $dev4:0
-disable_dev $dev4
+aux disable_dev $dev4
 echo n | lvconvert --repair $vg/3way
 check mirror $vg 3way core
 lvs -a -o +devices | not grep unknown
 lvs -a -o +devices | not grep mlog
 dmsetup ls | grep $PREFIX | not grep mlog
 vgreduce --removemissing $vg
-enable_dev $dev4
+aux enable_dev $dev4
 
 aux prepare_vg 5
 lvcreate -m 1 --ig -L 1 -n 2way $vg $dev1 $dev2 $dev3:0
-disable_dev $dev3
+aux disable_dev $dev3
 echo n | lvconvert --repair $vg/2way
 check mirror $vg 2way core
 lvs -a -o +devices | not grep unknown
 lvs -a -o +devices | not grep mlog
 vgreduce --removemissing $vg
-enable_dev $dev3
+aux enable_dev $dev3
 
 # fail single devices
 
@@ -66,24 +66,24 @@
 lvcreate -m 1 --ig -L 1 -n mirror $vg
 lvchange -a n $vg/mirror
 vgextend $vg $dev4
-disable_dev $dev1
+aux disable_dev $dev1
 lvchange --partial -a y $vg/mirror
 
 not vgreduce -v --removemissing $vg
 lvconvert -y --repair $vg/mirror
 vgreduce --removemissing $vg
 
-enable_dev $dev1
+aux enable_dev $dev1
 vgextend $vg $dev1
-disable_dev $dev2
+aux disable_dev $dev2
 lvconvert -y --repair $vg/mirror
 vgreduce --removemissing $vg
 
-enable_dev $dev2
+aux enable_dev $dev2
 vgextend $vg $dev2
-disable_dev $dev3
+aux disable_dev $dev3
 lvconvert -y --repair $vg/mirror
 vgreduce --removemissing $vg
-enable_dev $dev3
+aux enable_dev $dev3
 vgextend $vg $dev3
 lvremove -ff $vg
--- LVM2/test/t-lvconvert-twostep.sh	2010/11/25 17:15:46	1.1
+++ LVM2/test/t-lvconvert-twostep.sh	2011/01/05 00:16:20	1.2
@@ -9,7 +9,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_vg 4
 lvcreate -m 1 --mirrorlog disk --ig -L 1 -n mirror $vg
--- LVM2/test/t-lvcreate-mirror.sh	2010/05/12 10:08:36	1.2
+++ LVM2/test/t-lvcreate-mirror.sh	2011/01/05 00:16:20	1.3
@@ -9,7 +9,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 aux prepare_vg 5 80
 
 # 2-way mirror with corelog, 2 PVs
--- LVM2/test/t-lvcreate-operation.sh	2010/04/07 14:46:26	1.5
+++ LVM2/test/t-lvcreate-operation.sh	2011/01/05 00:16:20	1.6
@@ -11,7 +11,7 @@
 
 # 'Exercise some lvcreate diagnostics'
 
-. ./test-utils.sh
+. lib/test
 
 cleanup_lvs() {
 	lvremove -ff $vg
@@ -21,9 +21,9 @@
 	fi
 }
 
-prepare_pvs 2
+aux prepare_pvs 2
 aux pvcreate --metadatacopies 0 $dev1
-aux vgcreate -c n $vg $devs
+aux vgcreate -c n $vg $(cat DEVICES)
 
 # ---
 # Create snapshots of LVs on --metadatacopies 0 PV (bz450651)
--- LVM2/test/t-lvcreate-pvtags.sh	2010/04/07 14:46:26	1.7
+++ LVM2/test/t-lvcreate-pvtags.sh	2011/01/05 00:16:20	1.8
@@ -8,14 +8,14 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_pvs 3
 # not required, just testing
 aux pvcreate --metadatacopies 0 $dev1
 
-vgcreate -c n $vg $devs
-pvchange --addtag fast $devs
+vgcreate -c n $vg $(cat DEVICES)
+pvchange --addtag fast $(cat DEVICES)
 
 # 3 stripes with 3 PVs (selected by tag, @fast) is fine
 lvcreate -l3 -i3 $vg @fast
--- LVM2/test/t-lvcreate-small-snap.sh	2010/10/13 13:52:54	1.1
+++ LVM2/test/t-lvcreate-small-snap.sh	2011/01/05 00:16:20	1.2
@@ -9,11 +9,11 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_pvs 3
 
-vgcreate -c n -s 1k $vg $devs
+vgcreate -c n -s 1k $vg $(cat DEVICES)
 
 lvcreate -n one -l 10 $vg
 lvcreate -s -l 8 -n snapA $vg/one
--- LVM2/test/t-lvcreate-usage.sh	2010/04/13 06:25:08	1.18
+++ LVM2/test/t-lvcreate-usage.sh	2011/01/05 00:16:20	1.19
@@ -11,11 +11,11 @@
 
 # 'Exercise some lvcreate diagnostics'
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_pvs 4
 aux pvcreate --metadatacopies 0 $dev1
-vgcreate -cn $vg $devs
+vgcreate -cn $vg $(cat DEVICES)
 
 # "lvcreate rejects repeated invocation (run 2 times) (bz178216)" 
 lvcreate -n $lv -l 4 $vg 
@@ -42,7 +42,7 @@
 lvcreate -L 64m -n $lv -i2 $vg > out
 grep "^  Using default stripesize" out 
 lvdisplay $vg 
-check_lv_field_ $vg/$lv stripesize "64.00k"
+check lv_field $vg/$lv stripesize "64.00k"
 lvremove -ff $vg
 
 # 'lvcreate rejects an invalid number of stripes' 
@@ -89,16 +89,16 @@
 # lvcreate rejects invalid chunksize, accepts between 4K and 512K
 # validate origin_size
 vgremove -ff $vg
-vgcreate -cn $vg $devs
+vgcreate -cn $vg $(cat DEVICES)
 lvcreate -L 32m -n $lv1 $vg
 not lvcreate -L 8m -n $lv2 -s --chunksize 3k $vg/$lv1
 not lvcreate -L 8m -n $lv2 -s --chunksize 1024k $vg/$lv1
 lvcreate -L 8m -n $lv2 -s --chunksize 4k $vg/$lv1
-check_lv_field_ $vg/$lv2 chunk_size 4.00k
-check_lv_field_ $vg/$lv2 origin_size 32.00m
+check lv_field $vg/$lv2 chunk_size 4.00k
+check lv_field $vg/$lv2 origin_size 32.00m
 lvcreate -L 8m -n $lv3 -s --chunksize 512k $vg/$lv1
-check_lv_field_ $vg/$lv3 chunk_size 512.00k
-check_lv_field_ $vg/$lv3 origin_size 32.00m
+check lv_field $vg/$lv3 chunk_size 512.00k
+check lv_field $vg/$lv3 origin_size 32.00m
 lvremove -ff $vg
 vgchange -l 0 $vg
 
@@ -111,10 +111,10 @@
 not lvcreate -L 32m -n $lv -R 11k $vg
 not lvcreate -L 32m -n $lv -R 1k $vg
 lvcreate -L 32m -n $lv --regionsize 128m  -m 1 $vg
-check_lv_field_ $vg/$lv regionsize "32.00m"
+check lv_field $vg/$lv regionsize "32.00m"
 lvremove -ff $vg
 lvcreate -L 32m -n $lv --regionsize 4m -m 1 $vg
-check_lv_field_ $vg/$lv regionsize "4.00m"
+check lv_field $vg/$lv regionsize "4.00m"
 lvremove -ff $vg
 
 # snapshot with virtual origin works
@@ -127,15 +127,15 @@
 
 # readahead default (auto), none, #, auto
 lvcreate -L 32m -n $lv $vg
-check_lv_field_ $vg/$lv lv_read_ahead "auto"
+check lv_field $vg/$lv lv_read_ahead "auto"
 lvremove -ff $vg
 lvcreate -L 32m -n $lv --readahead none $vg
-check_lv_field_ $vg/$lv lv_read_ahead "0"
+check lv_field $vg/$lv lv_read_ahead "0"
 lvremove -ff $vg
 lvcreate -L 32m -n $lv --readahead 8k $vg
-check_lv_field_ $vg/$lv lv_read_ahead "8.00k"
+check lv_field $vg/$lv lv_read_ahead "8.00k"
 lvremove -ff $vg
 lvcreate -L 32m -n $lv --readahead auto $vg
-check_lv_field_ $vg/$lv lv_read_ahead "auto"
+check lv_field $vg/$lv lv_read_ahead "auto"
 lvremove -ff $vg
 
--- LVM2/test/t-lvextend-percent-extents.sh	2010/02/17 15:41:28	1.9
+++ LVM2/test/t-lvextend-percent-extents.sh	2011/01/05 00:16:20	1.10
@@ -11,7 +11,7 @@
 
 # 'Check extents percentage arguments'
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_vg 2 128
 
@@ -28,7 +28,7 @@
 # 'lvextend accepts no size or extents but one PV - bz154691'
 lvextend $vg/$lv $dev1 >out
 grep "^  Logical volume $lv successfully resized\$" out
-check_pv_field_ $dev1 pv_free "0"
+check pv_field $dev1 pv_free "0"
 
 lvremove -f $vg/$lv 
 
@@ -45,8 +45,8 @@
 # 'lvextend accepts no size but extents 100%PVS and two PVs - bz154691'
 lvextend -l +100%PVS $vg/$lv $dev1 $dev2 >out
 grep "^  Logical volume $lv successfully resized\$" out 
-check_pv_field_ $dev1 pv_free "0" 
-check_pv_field_ $dev2 pv_free "0"
+check pv_field $dev1 pv_free "0" 
+check pv_field $dev2 pv_free "0"
 
 # Exercise the range overlap code.  Allocate every 2 extents.
 #
@@ -72,13 +72,13 @@
 create_pvs=`for i in $(seq 0 4 20); do echo -n "\$dev1:$i-$(($i + 1)) "; done` 
 lvremove -f $vg/$lv
 lvcreate -l 12 -n $lv $vg $create_pvs
-check_lv_field_ $vg/$lv lv_size "48.00m"
+check lv_field $vg/$lv lv_size "48.00m"
 
 # 'lvextend with partially allocated PVs and extents 100%PVS with PE ranges' 
 extend_pvs=`for i in $(seq 0 6 18); do echo -n "\$dev1:$i-$(($i + 2)) "; done` 
 lvextend -l +100%PVS $vg/$lv $extend_pvs >out
 grep "^  Logical volume $lv successfully resized\$" out 
-check_lv_field_ $vg/$lv lv_size "72.00m"
+check lv_field $vg/$lv lv_size "72.00m"
 
 # Simple seg_count validation; initially create the LV with half the # of
 # extents (should be 1 lv segment), extend it (should go to 2 segments),
@@ -90,12 +90,12 @@
 lvcreate -l $pe1 -n $lv $vg
 pesize=$(lvs -ovg_extent_size --units b --nosuffix --noheadings $vg/$lv)
 segsize=$(( $pe1 * $pesize / 1024 / 1024 ))m
-check_lv_field_ $vg/$lv seg_count 1
-check_lv_field_ $vg/$lv seg_start 0
-check_lv_field_ $vg/$lv seg_start_pe 0
-#check_lv_field_ $vg/$lv seg_size $segsize
+check lv_field $vg/$lv seg_count 1
+check lv_field $vg/$lv seg_start 0
+check lv_field $vg/$lv seg_start_pe 0
+#check lv_field $vg/$lv seg_size $segsize
 lvextend -l +$(( $pe_count * 1 )) $vg/$lv
-check_lv_field_ $vg/$lv seg_count 2
+check lv_field $vg/$lv seg_count 2
 lvreduce -f -l -$(( $pe_count * 1 )) $vg/$lv
-check_lv_field_ $vg/$lv seg_count 1
+check lv_field $vg/$lv seg_count 1
 
--- LVM2/test/t-lvextend-snapshot-dmeventd.sh	2010/10/15 16:28:15	1.1
+++ LVM2/test/t-lvextend-snapshot-dmeventd.sh	2011/01/05 00:16:20	1.2
@@ -9,7 +9,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 extend() {
 	lvextend --use-policies --config "activation { snapshot_extend_threshold = $1 }" $vg/snap
--- LVM2/test/t-lvextend-snapshot-policy.sh	2010/10/15 16:28:15	1.1
+++ LVM2/test/t-lvextend-snapshot-policy.sh	2011/01/05 00:16:20	1.2
@@ -9,7 +9,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 extend() {
 	lvextend --use-policies --config "activation { snapshot_extend_threshold = $1 }" $vg/snap
--- LVM2/test/t-lvm-init.sh	2009/07/08 18:14:47	1.1
+++ LVM2/test/t-lvm-init.sh	2011/01/05 00:16:20	1.2
@@ -12,7 +12,7 @@
 # tests lvm initialization, and especially negative tests of error paths
 #
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_devs 5
 
--- LVM2/test/t-lvmcache-exercise.sh	2008/09/29 16:02:49	1.2
+++ LVM2/test/t-lvmcache-exercise.sh	2011/01/05 00:16:20	1.3
@@ -8,16 +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-utils.sh
+. lib/test
 
 aux prepare_pvs 5
 
 vgcreate $vg1 $dev1
 vgcreate $vg2 $dev3
 
-disable_dev $dev1
+aux disable_dev $dev1
 pvscan
 vgcreate $vg1 $dev2
-enable_dev $dev1
+aux enable_dev $dev1
 pvs
 pvs
--- LVM2/test/t-lvresize-mirror.sh	2010/04/12 19:16:24	1.1
+++ LVM2/test/t-lvresize-mirror.sh	2011/01/05 00:16:20	1.2
@@ -9,7 +9,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 aux prepare_vg 5 80
 
 # extend 2-way mirror
--- LVM2/test/t-lvresize-usage.sh	2008/09/29 16:02:49	1.3
+++ LVM2/test/t-lvresize-usage.sh	2011/01/05 00:16:20	1.4
@@ -8,7 +8,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_vg 2
 
--- LVM2/test/t-mdata-strings.sh	2009/04/03 14:23:17	1.5
+++ LVM2/test/t-mdata-strings.sh	2011/01/05 00:16:20	1.6
@@ -11,7 +11,7 @@
 
 # 'Test for proper escaping of strings in metadata (bz431474)'
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_devs 1
 
--- LVM2/test/t-metadata-balance.sh	2010/07/07 19:14:58	1.4
+++ LVM2/test/t-metadata-balance.sh	2011/01/05 00:16:20	1.5
@@ -8,7 +8,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_devs 6
 
@@ -21,22 +21,22 @@
 		vgcreate -c n "$vg" $dev1 $dev2 $dev3
 	fi
 	pvchange --metadataignore y $dev1
-	check_pv_field_ $dev1 pv_mda_count $mdacp
-	check_pv_field_ $dev1 pv_mda_used_count 0
-	check_pv_field_ $dev2 pv_mda_count $mdacp
-	check_pv_field_ $dev2 pv_mda_used_count $mdacp
+	check pv_field $dev1 pv_mda_count $mdacp
+	check pv_field $dev1 pv_mda_used_count 0
+	check pv_field $dev2 pv_mda_count $mdacp
+	check pv_field $dev2 pv_mda_used_count $mdacp
 	if [ $pv_in_vg = 1 ]; then
-		check_vg_field_ $vg vg_mda_count $(($mdacp * 2))
-		check_vg_field_ $vg vg_mda_used_count $mdacp
-		check_vg_field_ $vg vg_mda_copies unmanaged
+		check vg_field $vg vg_mda_count $(($mdacp * 2))
+		check vg_field $vg vg_mda_used_count $mdacp
+		check vg_field $vg vg_mda_copies unmanaged
 	fi
 	pvchange --metadataignore n $dev1
-	check_pv_field_ $dev1 pv_mda_count $mdacp
-	check_pv_field_ $dev1 pv_mda_used_count $mdacp
+	check pv_field $dev1 pv_mda_count $mdacp
+	check pv_field $dev1 pv_mda_used_count $mdacp
 	if [ $pv_in_vg = 1 ]; then
-		check_vg_field_ $vg vg_mda_count $(($mdacp * 2))
-		check_vg_field_ $vg vg_mda_used_count $(($mdacp * 2))
-		check_vg_field_ $vg vg_mda_copies unmanaged
+		check vg_field $vg vg_mda_count $(($mdacp * 2))
+		check vg_field $vg vg_mda_used_count $(($mdacp * 2))
+		check vg_field $vg vg_mda_copies unmanaged
 		vgremove -f $vg
 	fi
 done
@@ -44,7 +44,7 @@
 
 # Check if a PV has unignored (used) mdas, and if so, ignore
 pvignore_ () {
-	pv_mda_used_count=$(get_pv_field "$1" pv_mda_used_count)
+	pv_mda_used_count=$(get pv_field "$1" pv_mda_used_count)
 	if [ $pv_mda_used_count -ne 0 ]; then
 	    pvchange --metadataignore y $1
 	fi
@@ -52,8 +52,8 @@
 
 # Check if a PV has ignored mdas, and if so, unignore (make used)
 pvunignore_ () {
-	pv_mda_count=$(get_pv_field "$1" pv_mda_count)
-	pv_mda_used_count=$(get_pv_field "$1" pv_mda_used_count)
+	pv_mda_count=$(get pv_field "$1" pv_mda_count)
+	pv_mda_used_count=$(get pv_field "$1" pv_mda_used_count)
 	if [ $pv_mda_count -gt $pv_mda_used_count ]; then
 	    pvchange --metadataignore n $1
 	fi
@@ -62,51 +62,51 @@
 echo Test of vgmetadatacopies with vgcreate and vgchange
 for mdacp in 1 2; do
 	pvcreate --metadatacopies $mdacp $dev1 $dev2 $dev4 $dev5
-	check_pv_field_ $dev1 pv_mda_used_count $mdacp
-	check_pv_field_ $dev2 pv_mda_used_count $mdacp
-	check_pv_field_ $dev4 pv_mda_used_count $mdacp
-	check_pv_field_ $dev5 pv_mda_used_count $mdacp
+	check pv_field $dev1 pv_mda_used_count $mdacp
+	check pv_field $dev2 pv_mda_used_count $mdacp
+	check pv_field $dev4 pv_mda_used_count $mdacp
+	check pv_field $dev5 pv_mda_used_count $mdacp
 	pvcreate --metadatacopies 0 $dev3
 	vgcreate -c n "$vg" $dev1 $dev2 $dev3
-	check_vg_field_ $vg vg_mda_copies unmanaged
+	check vg_field $vg vg_mda_copies unmanaged
 	echo ensure both --vgmetadatacopies and --metadatacopies accepted
 	vgchange --metadatacopies $(($mdacp * 1)) $vg
 	echo --vgmetadatacopies is persistent on disk
 	echo --vgmetadatacopies affects underlying pv mda ignore
-	check_vg_field_ $vg vg_mda_copies $(($mdacp * 1))
-	check_vg_field_ $vg vg_mda_used_count $(($mdacp * 1))
+	check vg_field $vg vg_mda_copies $(($mdacp * 1))
+	check vg_field $vg vg_mda_used_count $(($mdacp * 1))
 	vgchange --vgmetadatacopies $(($mdacp * 2)) $vg
-	check_vg_field_ $vg vg_mda_copies $(($mdacp * 2))
-	check_vg_field_ $vg vg_mda_used_count $(($mdacp * 2))
+	check vg_field $vg vg_mda_copies $(($mdacp * 2))
+	check vg_field $vg vg_mda_used_count $(($mdacp * 2))
 	echo allow setting metadatacopies larger than number of PVs
 	vgchange --vgmetadatacopies $(($mdacp * 5)) $vg
-	check_vg_field_ $vg vg_mda_copies $(($mdacp * 5))
-	check_vg_field_ $vg vg_mda_used_count $(($mdacp * 2))
+	check vg_field $vg vg_mda_copies $(($mdacp * 5))
+	check vg_field $vg vg_mda_used_count $(($mdacp * 2))
 	echo setting to 0 disables automatic balancing
 	vgchange --vgmetadatacopies unmanaged $vg
-	check_vg_field_ $vg vg_mda_copies unmanaged
+	check vg_field $vg vg_mda_copies unmanaged
 	vgremove -f $vg
 	echo vgcreate succeeds even when creating a VG w/all ignored mdas
 	pvchange --metadataignore y $dev1 $dev2
-	check_pv_field_ $dev1 pv_mda_count $mdacp
-	check_pv_field_ $dev2 pv_mda_used_count 0
+	check pv_field $dev1 pv_mda_count $mdacp
+	check pv_field $dev2 pv_mda_used_count 0
 	vgcreate -c n "$vg" $dev1 $dev2
-	check_vg_field_ $vg vg_mda_copies unmanaged
+	check vg_field $vg vg_mda_copies unmanaged
 	vgremove -f $vg
 	echo vgcreate succeeds with a specific number of metadata copies
 	vgcreate -c n --vgmetadatacopies $(($mdacp * 2)) "$vg" $dev1 $dev2
-	check_vg_field_ $vg vg_mda_copies $(($mdacp * 2))
+	check vg_field $vg vg_mda_copies $(($mdacp * 2))
 	vgremove -f $vg
 	vgcreate -c n --vgmetadatacopies $(($mdacp * 1)) "$vg" $dev1 $dev2
-	check_vg_field_ $vg vg_mda_copies $(($mdacp * 1))
+	check vg_field $vg vg_mda_copies $(($mdacp * 1))
 	vgremove -f $vg
 	echo vgcreate succeeds with a larger value than total metadatacopies
 	vgcreate -c n --vgmetadatacopies $(($mdacp * 5)) "$vg" $dev1 $dev2
-	check_vg_field_ $vg vg_mda_copies $(($mdacp * 5))
+	check vg_field $vg vg_mda_copies $(($mdacp * 5))
 	vgremove -f $vg
 	echo vgcreate succeeds with --vgmetadatacopies unmanaged
 	vgcreate -c n --vgmetadatacopies unmanaged "$vg" $dev1 $dev2
-	check_vg_field_ $vg vg_mda_copies unmanaged
+	check vg_field $vg vg_mda_copies unmanaged
 	vgremove -f $vg
 	pvunignore_ $dev1
 	pvunignore_ $dev2
@@ -114,24 +114,24 @@
 	pvunignore_ $dev5
 	echo vgcreate succeds with small value of --metadatacopies, ignores mdas
 	vgcreate -c n --vgmetadatacopies 1 "$vg" $dev1 $dev2 $dev4 $dev5
-	check_vg_field_ $vg vg_mda_copies 1
-	check_vg_field_ $vg vg_mda_count $(($mdacp * 4))
-	check_vg_field_ $vg vg_mda_used_count 1
+	check vg_field $vg vg_mda_copies 1
+	check vg_field $vg vg_mda_count $(($mdacp * 4))
+	check vg_field $vg vg_mda_used_count 1
 	echo Setting a larger value should trigger non-ignore of mdas
 	vgchange --metadatacopies 3 $vg
-	check_vg_field_ $vg vg_mda_copies 3
-	check_vg_field_ $vg vg_mda_used_count 3
+	check vg_field $vg vg_mda_copies 3
+	check vg_field $vg vg_mda_used_count 3
 	echo Setting all should trigger unignore of all mdas
 	vgchange --vgmetadatacopies all $vg
-	check_vg_field_ $vg vg_mda_count $(($mdacp * 4))
-	check_vg_field_ $vg vg_mda_copies unmanaged
-	check_vg_field_ $vg vg_mda_used_count $(($mdacp * 4))
+	check vg_field $vg vg_mda_count $(($mdacp * 4))
+	check vg_field $vg vg_mda_copies unmanaged
+	check vg_field $vg vg_mda_used_count $(($mdacp * 4))
 	echo --vgmetadatacopies 0 should be unmanaged for vgchange and vgcreate
 	vgchange --vgmetadatacopies 0 $vg
-	check_vg_field_ $vg vg_mda_copies unmanaged
+	check vg_field $vg vg_mda_copies unmanaged
 	vgremove -f $vg
 	vgcreate -c n --vgmetadatacopies 0 "$vg" $dev1 $dev2 $dev4 $dev5
-	check_vg_field_ $vg vg_mda_copies unmanaged
+	check vg_field $vg vg_mda_copies unmanaged
 	vgremove -f $vg
 done
 
@@ -141,43 +141,43 @@
 	pvcreate --metadatacopies 0 $dev3
 	echo Set a large value of vgmetadatacopies
 	vgcreate -c n --vgmetadatacopies $(($mdacp * 5)) "$vg" $dev1 $dev2 $dev3
-	check_vg_field_ $vg vg_mda_copies $(($mdacp * 5))
+	check vg_field $vg vg_mda_copies $(($mdacp * 5))
 	echo Ignore mdas on devices to be used for vgextend
 	echo Large value of vgetadatacopies should automatically un-ignore mdas
 	pvchange --metadataignore y $dev4 $dev5
-	check_pv_field_ $dev4 pv_mda_used_count 0
+	check pv_field $dev4 pv_mda_used_count 0
 	vgextend $vg $dev4 $dev5
-	check_pv_field_ $dev4 pv_mda_used_count $mdacp
-	check_pv_field_ $dev5 pv_mda_used_count $mdacp
+	check pv_field $dev4 pv_mda_used_count $mdacp
+	check pv_field $dev5 pv_mda_used_count $mdacp
 	vgremove -f $vg
 	echo Set a small value of vgmetadatacopies
 	vgcreate -c n --vgmetadatacopies $(($mdacp * 1)) "$vg" $dev1 $dev2 $dev3
-	check_vg_field_ $vg vg_mda_copies $(($mdacp * 1))
+	check vg_field $vg vg_mda_copies $(($mdacp * 1))
 	echo Ignore mdas on devices to be used for vgextend
 	echo Small value of vgetadatacopies should leave mdas as ignored
 	pvchange --metadataignore y $dev4 $dev5
-	check_pv_field_ $dev4 pv_mda_used_count 0
+	check pv_field $dev4 pv_mda_used_count 0
 	vgextend $vg $dev4 $dev5
-	check_pv_field_ $dev4 pv_mda_used_count 0
-	check_pv_field_ $dev5 pv_mda_used_count 0
+	check pv_field $dev4 pv_mda_used_count 0
+	check pv_field $dev5 pv_mda_used_count 0
 	echo vgreduce of ignored pv w/mda should not trigger any change to ignore bits
 	vgreduce $vg $dev4
-	check_pv_field_ $dev4 pv_mda_used_count 0
-	check_pv_field_ $dev5 pv_mda_used_count 0
+	check pv_field $dev4 pv_mda_used_count 0
+	check pv_field $dev5 pv_mda_used_count 0
 	echo vgreduce of un-ignored pv w/mda should trigger un-ignore on an mda
 	vgreduce $vg $dev1 $dev2 $dev3
-	check_pv_field_ $dev5 pv_mda_used_count $mdacp
-	check_vg_field_ $vg vg_mda_copies $(($mdacp * 1))
+	check pv_field $dev5 pv_mda_used_count $mdacp
+	check vg_field $vg vg_mda_copies $(($mdacp * 1))
 	pvunignore_ $dev1
 	pvunignore_ $dev2
 	echo setting vgmetadatacopies to unmanaged should allow vgextend to add w/out balancing
 	vgchange --vgmetadatacopies unmanaged $vg
 	vgextend $vg $dev1 $dev2
-	check_vg_field_ $vg vg_mda_copies unmanaged
-	check_vg_field_ $vg vg_mda_count $(($mdacp * 3))
-	check_vg_field_ $vg vg_mda_used_count $((mdacp * 3))
-	check_pv_field_ $dev1 pv_mda_used_count $mdacp
-	check_pv_field_ $dev2 pv_mda_used_count $mdacp
+	check vg_field $vg vg_mda_copies unmanaged
+	check vg_field $vg vg_mda_count $(($mdacp * 3))
+	check vg_field $vg vg_mda_used_count $((mdacp * 3))
+	check pv_field $dev1 pv_mda_used_count $mdacp
+	check pv_field $dev2 pv_mda_used_count $mdacp
 	vgremove -f $vg
 done
 
@@ -187,16 +187,16 @@
 	vgcreate -c n --vgmetadatacopies 2 $vg1 $dev1 $dev2 $dev3
 	vgcreate -c n --vgmetadatacopies $(($mdacp * 1)) $vg2 $dev4 $dev5
 	echo vgsplit/vgmerge preserves value of metadata copies
-	check_vg_field_ $vg1 vg_mda_copies 2
-	check_vg_field_ $vg2 vg_mda_copies $(($mdacp * 1))
+	check vg_field $vg1 vg_mda_copies 2
+	check vg_field $vg2 vg_mda_copies $(($mdacp * 1))
 	vgsplit $vg1 $vg2 $dev1
-	check_vg_field_ $vg2 vg_mda_copies $(($mdacp * 1))
+	check vg_field $vg2 vg_mda_copies $(($mdacp * 1))
 	vgmerge $vg1 $vg2
-	check_vg_field_ $vg1 vg_mda_copies 2
-	check_vg_field_ $vg1 vg_mda_count $(($mdacp * 5))
+	check vg_field $vg1 vg_mda_copies 2
+	check vg_field $vg1 vg_mda_count $(($mdacp * 5))
 	echo vgsplit into new vg sets proper value of vgmetadatacopies
 	vgsplit --vgmetadatacopies $(($mdacp * 2)) $vg1 $vg2 $dev1 $dev2
-	check_vg_field_ $vg2 vg_mda_copies $(($mdacp * 2))
+	check vg_field $vg2 vg_mda_copies $(($mdacp * 2))
 	echo vgchange fails if given both vgmetadatacopies and metadatacopies
 	not vgchange --vgmetadatacopies 5 --metadatacopies 7 $vg2
 	vgremove -f $vg1
@@ -207,26 +207,26 @@
 for mdacp in 1 2; do
 	pvcreate --metadatacopies $mdacp $dev1 $dev2 $dev3 $dev4 $dev5
 	vgcreate -c n --vgmetadatacopies $(($mdacp * 1)) $vg1 $dev1 $dev2
-	check_vg_field_ $vg1 vg_mda_copies $(($mdacp * 1))
-	check_vg_field_ $vg1 vg_mda_used_count $(($mdacp * 1))
+	check vg_field $vg1 vg_mda_copies $(($mdacp * 1))
+	check vg_field $vg1 vg_mda_used_count $(($mdacp * 1))
 	pvignore_ $dev3
 	echo Ensure vgextend of PVs with ignored MDAs does not add to vg_mda_used_count
 	vgextend $vg1 $dev3
-	check_vg_field_ $vg1 vg_mda_used_count $(($mdacp * 1))
+	check vg_field $vg1 vg_mda_used_count $(($mdacp * 1))
 	echo Using pvchange to unignore should update vg_mda_used_count
 	pvchange -f --metadataignore n $dev3
-	check_pv_field_ $dev3 pv_mda_used_count $mdacp
-	check_vg_field_ $vg1 vg_mda_used_count $(($mdacp * 2))
+	check pv_field $dev3 pv_mda_used_count $mdacp
+	check vg_field $vg1 vg_mda_used_count $(($mdacp * 2))
 	echo Set unmanaged on the vg should keep ignore bits the same during vgextend
 	vgchange --vgmetadatacopies unmanaged $vg1
-	check_vg_field_ $vg1 vg_mda_used_count $(($mdacp * 2))
+	check vg_field $vg1 vg_mda_used_count $(($mdacp * 2))
 	pvunignore_ $dev4
 	vgextend $vg1 $dev4
-	check_pv_field_ $dev4 pv_mda_used_count $mdacp
-	check_vg_field_ $vg1 vg_mda_used_count $(($mdacp * 3))
+	check pv_field $dev4 pv_mda_used_count $mdacp
+	check vg_field $vg1 vg_mda_used_count $(($mdacp * 3))
 	echo Using pvchange to ignore should update vg_mda_used_count
 	pvchange -f --metadataignore y $dev4
-	check_pv_field_ $dev4 pv_mda_used_count 0
-	check_vg_field_ $vg1 vg_mda_used_count $(($mdacp * 2))
+	check pv_field $dev4 pv_mda_used_count 0
+	check vg_field $vg1 vg_mda_used_count $(($mdacp * 2))
 	vgremove -f $vg1
 done
--- LVM2/test/t-metadata.sh	2010/10/26 12:52:25	1.6
+++ LVM2/test/t-metadata.sh	2011/01/05 00:16:20	1.7
@@ -8,7 +8,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_devs 5
 
@@ -18,7 +18,7 @@
 pvcreate $dev4
 pvcreate --metadatacopies 0 $dev5
 
-vgcreate -c n "$vg" $devs
+vgcreate -c n "$vg" $(cat DEVICES)
 lvcreate -n $lv -l 1 -i5 -I256 $vg
 
 pvchange -x n $dev1
@@ -30,9 +30,9 @@
 
 # check that PVs without metadata don't cause too many full device rescans (bz452606)
 for mdacp in 1 0; do
-	pvcreate --metadatacopies $mdacp $devs
+	pvcreate --metadatacopies $mdacp $(cat DEVICES)
 	pvcreate $dev1
-	vgcreate -c n $vg $devs
+	vgcreate -c n $vg $(cat DEVICES)
 	lvcreate -n $lv1 -l 2 -i5 -I256 $vg
 	lvcreate -n $lv2 -m2 -l 2  $vg
 	#lvchange -an $vg
@@ -55,9 +55,9 @@
 
 # verify pe_start of all M1 PVs
 pv_align="128.00k"
-check_pv_field_ $dev1 pe_start $pv_align
-check_pv_field_ $dev2 pe_start $pv_align
-check_pv_field_ $dev3 pe_start $pv_align
+check pv_field $dev1 pe_start $pv_align
+check pv_field $dev2 pe_start $pv_align
+check pv_field $dev3 pe_start $pv_align
 
 pvs --units k -o name,pe_start,vg_mda_size,vg_name
 
@@ -65,9 +65,9 @@
 vgconvert -M2 $vg
 
 # verify pe_start of all M2 PVs
-check_pv_field_ $dev1 pe_start $pv_align
-check_pv_field_ $dev2 pe_start $pv_align
-check_pv_field_ $dev3 pe_start $pv_align
+check pv_field $dev1 pe_start $pv_align
+check pv_field $dev2 pe_start $pv_align
+check pv_field $dev3 pe_start $pv_align
 
 pvs --units k -o name,pe_start,vg_mda_size,vg_name
 
@@ -77,4 +77,4 @@
 vgcfgrestore -f $TESTDIR/bak-$vg $vg
 
 # verify pe_start of $dev3
-check_pv_field_ $dev3 pe_start $pv_align
+check pv_field $dev3 pe_start $pv_align
--- LVM2/test/t-mirror-names.sh	2010/10/20 15:35:00	1.7
+++ LVM2/test/t-mirror-names.sh	2011/01/05 00:16:20	1.8
@@ -12,7 +12,7 @@
 
 test_description="check namings of mirrored LV"
 
-. ./test-utils.sh
+. lib/test
 
 # ---------------------------------------------------------------------
 # Utilities
--- LVM2/test/t-mirror-vgreduce-removemissing.sh	2010/04/07 16:00:19	1.9
+++ LVM2/test/t-mirror-vgreduce-removemissing.sh	2011/01/05 00:16:20	1.10
@@ -11,7 +11,7 @@
 
 test_description="ensure that 'vgreduce --removemissing' works on mirrored LV"
 
-. ./test-utils.sh
+. lib/test
 
 lv_is_on_ ()
 {
@@ -86,7 +86,7 @@
 # ---------------------------------------------------------------------
 # Initialize PVs and VGs
 
-prepare_vg 5
+aux prepare_vg 5
 
 # ---------------------------------------------------------------------
 # Common environment setup/cleanup for each sub testcases
@@ -113,7 +113,7 @@
 
 recover_vg_()
 {
-	enable_dev $* 
+	aux enable_dev $* 
 	pvcreate -ff $* 
 	vgextend $vg $* 
 	check_and_cleanup_lvs_
@@ -130,9 +130,9 @@
 prepare_lvs_
 lvcreate -l2 -m1 -n $lv1 $vg $dev1 $dev2 $dev3:0
 lvchange -an $vg/$lv1
-aux mimages_are_on_ $lv1 $dev1 $dev2
+mimages_are_on_ $lv1 $dev1 $dev2
 mirrorlog_is_on_ $lv1 $dev3
-disable_dev $dev2
+aux disable_dev $dev2
 vgreduce --removemissing --force $vg
 lv_is_linear_ $lv1
 lv_is_on_ $lv1 $dev1
@@ -151,9 +151,9 @@
 
 	lvcreate -l2 -m2 -n $lv1 $vg $dev1 $dev2 $dev3 $dev4:0
 	lvchange -an $vg/$lv1
-	aux mimages_are_on_ $lv1 $dev1 $dev2 $dev3
+	mimages_are_on_ $lv1 $dev1 $dev2 $dev3
 	mirrorlog_is_on_ $lv1 $dev4
-	eval disable_dev \$dev$index
+	eval aux disable_dev \$dev$index
 	vgreduce --removemissing --force $vg
 	lvs -a -o+devices $vg
 	mimages_are_on_ $lv1 $(rest_pvs_ $index 3)
@@ -181,10 +181,10 @@
 	mimages_are_on_ $lv1 $dev1 $dev2 $dev3
 	mirrorlog_is_on_ $lv1 $dev4
 	rest_pvs_ $index 3
-	disable_dev $(rest_pvs_ $index 3)
+	aux disable_dev $(rest_pvs_ $index 3)
 	vgreduce --force --removemissing $vg
 	lvs -a -o+devices $vg
-	aux lv_is_linear_ $lv1
+	lv_is_linear_ $lv1
 	eval lv_is_on_ $lv1 \$dev$n
 }
 
@@ -209,7 +209,7 @@
 	lvconvert -m+1 $vg/$lv1 $dev4 
 	mimages_are_on_ $lv1 $dev1 $dev2 $dev3 $dev4 
 	mirrorlog_is_on_ $lv1 $dev5 
-	eval disable_dev \$dev$n 
+	eval aux disable_dev \$dev$n 
 	vgreduce --removemissing --force $vg 
 	lvs -a -o+devices $vg 
 	mimages_are_on_ $lv1 $(rest_pvs_ $index 4) 
@@ -237,7 +237,7 @@
 	lvconvert -m+1 $vg/$lv1 $dev4 
 	mimages_are_on_ $lv1 $dev1 $dev2 $dev3 $dev4 
 	mirrorlog_is_on_ $lv1 $dev5 
-	disable_dev $(rest_pvs_ $index 4) 
+	aux disable_dev $(rest_pvs_ $index 4) 
 	vgreduce --removemissing --force $vg 
 	lvs -a -o+devices $vg 
 	eval local dev=\$dev$n
@@ -266,7 +266,7 @@
 	lvconvert -m+2 $vg/$lv1 $dev3 $dev4 
 	mimages_are_on_ $lv1 $dev1 $dev2 $dev3 $dev4 
 	mirrorlog_is_on_ $lv1 $dev5 
-	eval disable_dev \$dev$n 
+	eval aux disable_dev \$dev$n 
 	vgreduce --removemissing --force $vg 
 	lvs -a -o+devices $vg 
 	mimages_are_on_ $lv1 $(rest_pvs_ $index 4) 
@@ -294,7 +294,7 @@
 	lvconvert -m+2 $vg/$lv1 $dev3 $dev4 
 	mimages_are_on_ $lv1 $dev1 $dev2 $dev3 $dev4 
 	mirrorlog_is_on_ $lv1 $dev5 
-	disable_dev $(rest_pvs_ $index 4) 
+	aux disable_dev $(rest_pvs_ $index 4) 
 	vgreduce --removemissing --force $vg 
 	lvs -a -o+devices $vg 
 	eval local dev=\$dev$n
@@ -318,7 +318,7 @@
 lvchange -an $vg/$lv1 
 mimages_are_on_ $lv1 $dev1 $dev2 
 mirrorlog_is_on_ $lv1 $dev5 
-disable_dev $dev5 
+aux disable_dev $dev5 
 vgreduce --removemissing --force $vg 
 mimages_are_on_ $lv1 $dev1 $dev2 
 not mirrorlog_is_on_ $lv1 $dev5
@@ -331,7 +331,7 @@
 lvconvert -m+1 $vg/$lv1 $dev3 
 mimages_are_on_ $lv1 $dev1 $dev2 $dev3 
 mirrorlog_is_on_ $lv1 $dev5 
-disable_dev $dev5 
+aux disable_dev $dev5 
 vgreduce --removemissing --force $vg 
 mimages_are_on_ $lv1 $dev1 $dev2 $dev3 
 not mirrorlog_is_on_ $lv1 $dev5
@@ -346,7 +346,7 @@
 lvchange -an $vg/$lv1 
 mimages_are_on_ $lv1 $dev1 $dev2 
 mirrorlog_is_on_ $lv1 $dev5 
-disable_dev $dev1 $dev2 
+aux disable_dev $dev1 $dev2 
 vgreduce --removemissing --force $vg 
 not lvs $vg/$lv1
 recover_vg_ $dev1 $dev2
@@ -358,7 +358,7 @@
 lvconvert -m+1 $vg/$lv1 $dev3 
 mimages_are_on_ $lv1 $dev1 $dev2 $dev3 
 mirrorlog_is_on_ $lv1 $dev5 
-disable_dev $dev1 $dev2 $dev3 
+aux disable_dev $dev1 $dev2 $dev3 
 vgreduce --removemissing --force $vg 
 not lvs $vg/$lv1
 recover_vg_ $dev1 $dev2 $dev3
@@ -376,7 +376,7 @@
 mimages_are_on_ $lv2 $dev3 $dev4 
 mirrorlog_is_on_ $lv1 $dev5 
 mirrorlog_is_on_ $lv2 $dev5 
-disable_dev $dev2 
+aux disable_dev $dev2 
 vgreduce --removemissing --force $vg 
 mimages_are_on_ $lv2 $dev3 $dev4 
 mirrorlog_is_on_ $lv2 $dev5 
@@ -394,8 +394,8 @@
 mimages_are_on_ $lv2 $dev3 $dev4 
 mirrorlog_is_on_ $lv1 $dev5 
 mirrorlog_is_on_ $lv2 $dev5 
-disable_dev $dev2 
-disable_dev $dev4 
+aux disable_dev $dev2 
+aux disable_dev $dev4 
 vgreduce --removemissing --force $vg 
 lv_is_linear_ $lv1 
 lv_is_on_ $lv1 $dev1 
--- LVM2/test/t-nomda-missing.sh	2010/07/28 12:20:41	1.3
+++ LVM2/test/t-nomda-missing.sh	2011/01/05 00:16:20	1.4
@@ -10,9 +10,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-utils.sh
+. lib/test
 
-prepare_devs 4
+aux prepare_devs 4
 pvcreate $dev1 $dev2
 pvcreate --metadatacopies 0 $dev3 $dev4
 vgcreate -c n $vg $dev1 $dev2 $dev3 $dev4
@@ -28,7 +28,7 @@
 lvcreate -l1 -m1 -n mirror123 $vg $dev1 $dev2 $dev3
 
 vgchange -a n $vg
-disable_dev $dev1
+aux disable_dev $dev1
 not vgchange -a y $vg
 not vgck $vg
 
@@ -41,8 +41,8 @@
 check inactive $vg mirror123
 
 vgchange -a n $vg
-enable_dev $dev1
-disable_dev $dev2
+aux enable_dev $dev1
+aux disable_dev $dev2
 not vgchange -a y $vg
 not vgck $vg
 
@@ -55,8 +55,8 @@
 check inactive $vg mirror123
 
 vgchange -a n $vg
-enable_dev $dev2
-disable_dev $dev3
+aux enable_dev $dev2
+aux disable_dev $dev3
 not vgchange -a y $vg
 not vgck $vg
 
@@ -69,8 +69,8 @@
 check active $vg mirror12
 
 vgchange -a n $vg
-enable_dev $dev3
-disable_dev $dev4
+aux enable_dev $dev3
+aux disable_dev $dev4
 vgchange -a y $vg
 not vgck $vg
 
--- LVM2/test/t-pool-labels.sh	2008/11/10 13:44:01	1.3
+++ LVM2/test/t-pool-labels.sh	2011/01/05 00:16:20	1.4
@@ -8,7 +8,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 # create the old GFS pool labeled linear devices
 create_pool_label_()
@@ -32,7 +32,7 @@
 
 # check that vgdisplay and pvcreate -ff works with the pool device
 vgdisplay --config 'global { locking_type = 0 }'
-disable_dev "$dev2"
+aux disable_dev "$dev2"
 # FIXME! since pool1 cannot be opened, vgdisplay gives error... should we say
 # "not" there instead, checking that it indeed does fail?
 vgdisplay --config 'global { locking_type = 0 }' || true
--- LVM2/test/t-pv-range-overflow.sh	2008/10/06 16:47:07	1.4
+++ LVM2/test/t-pv-range-overflow.sh	2011/01/05 00:16:20	1.5
@@ -11,7 +11,7 @@
 
 # 'Ensure that pvmove diagnoses PE-range values 2^32 and larger.'
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_vg 2
 
--- LVM2/test/t-pvchange-usage.sh	2010/08/02 13:20:50	1.5
+++ LVM2/test/t-pvchange-usage.sh	2011/01/05 00:16:20	1.6
@@ -11,7 +11,7 @@
 
 # 'Test pvchange option values'
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_devs 4
 
@@ -24,15 +24,15 @@
 
 # "pvchange adds/dels tag to pvs with metadatacopies = $mda " 
 	pvchange $dev1 --addtag test$mda 
-	check_pv_field_ $dev1 pv_tags test$mda 
+	check pv_field $dev1 pv_tags test$mda 
 	pvchange $dev1 --deltag test$mda 
-	check_pv_field_ $dev1 pv_tags ""
+	check pv_field $dev1 pv_tags ""
 
 # "vgchange disable/enable allocation for pvs with metadatacopies = $mda (bz452982)"
 	pvchange $dev1 -x n 
-	check_pv_field_ $dev1 pv_attr  --  
+	check pv_field $dev1 pv_attr  --  
 	pvchange $dev1 -x y 
-	check_pv_field_ $dev1 pv_attr  a- 
+	check pv_field $dev1 pv_attr  a- 
 
 # 'remove pv'
 	vgremove $vg1 
@@ -45,13 +45,13 @@
 vgcreate $vg1 $dev1 $dev2 
 pvchange -u $dev1 
 pvchange -u $dev2 
-vg_validate_pvlv_counts_ $vg1 2 0 0
+check pvlv_counts $vg1 2 0 0
 pvchange -u --all
-vg_validate_pvlv_counts_ $vg1 2 0 0
+check pvlv_counts $vg1 2 0 0
 
 # "pvchange rejects uuid change under an active lv" 
 lvcreate -l 16 -i 2 -n $lv --alloc anywhere $vg1 
-vg_validate_pvlv_counts_ $vg1 2 1 0 
+check pvlv_counts $vg1 2 1 0 
 not pvchange -u $dev1
 lvchange -an "$vg1"/"$lv" 
 pvchange -u $dev1
--- LVM2/test/t-pvcreate-metadata0.sh	2008/10/06 16:47:07	1.2
+++ LVM2/test/t-pvcreate-metadata0.sh	2011/01/05 00:16:20	1.3
@@ -15,7 +15,7 @@
 #
 # 'Test pvcreate without metadata on all pvs'
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_devs 2 128
 
--- LVM2/test/t-pvcreate-operation-md.sh	2010/08/21 15:43:45	1.10
+++ LVM2/test/t-pvcreate-operation-md.sh	2011/01/05 00:16:20	1.11
@@ -18,9 +18,9 @@
 test -f /proc/mdstat && grep -q raid0 /proc/mdstat || \
 modprobe raid0 || exit 200
 
-. ./test-utils.sh
+. lib/test
 
-prepare_lvmconf '[ "a|/dev/md.*|", "a/dev\/mapper\/.*$/", "r/.*/" ]'
+prepare_lvmconf 'devices/filter = [ "a|/dev/md.*|", "a/dev\/mapper\/.*$/", "r/.*/" ]'
 aux prepare_devs 2
 
 # Have MD use a non-standard name to avoid colliding with an existing MD device
@@ -60,14 +60,14 @@
 pvcreate --metadatasize 128k \
     --config 'devices {md_chunk_alignment=0 data_alignment_detection=0 data_alignment_offset_detection=0}' \
     $mddev
-check_pv_field_ $mddev pe_start $pv_align
+check pv_field $mddev pe_start $pv_align
 
 # Test md_chunk_alignment independent of topology-aware detection
 pv_align="1.00m"
 pvcreate --metadatasize 128k \
     --config 'devices {data_alignment_detection=0 data_alignment_offset_detection=0}' \
     $mddev
-check_pv_field_ $mddev pe_start $pv_align
+check pv_field $mddev pe_start $pv_align
 
 # Get linux minor version
 linux_minor=$(echo `uname -r` | cut -d'.' -f3 | cut -d'-' -f1)
@@ -79,7 +79,7 @@
     # optimal_io_size=131072, minimum_io_size=65536
     pvcreate --metadatasize 128k \
 	--config 'devices { md_chunk_alignment=0 }' $mddev
-    check_pv_field_ $mddev pe_start $pv_align
+    check pv_field $mddev pe_start $pv_align
 fi
 
 # partition MD array directly, depends on blkext in Linux >= 2.6.28
@@ -113,7 +113,7 @@
         # default alignment is 1M, add alignment_offset
 	pv_align=$((1048576+$alignment_offset))B
 	pvcreate --metadatasize 128k $mddev_p
-	check_pv_field_ $mddev_p pe_start $pv_align "--units b"
+	check pv_field $mddev_p pe_start $pv_align "--units b"
 	pvremove $mddev_p
     fi
 fi
@@ -133,11 +133,11 @@
     pv_align="2.00m"
     pvcreate --metadatasize 128k \
 	--config 'devices { md_chunk_alignment=0 }' $mddev
-    check_pv_field_ $mddev pe_start $pv_align
+    check pv_field $mddev pe_start $pv_align
 
     # now verify pe_start alignment override using --dataalignment
     pv_align="192.00k"
     pvcreate --dataalignment 64k --metadatasize 128k \
 	--config 'devices { md_chunk_alignment=0 }' $mddev
-    check_pv_field_ $mddev pe_start $pv_align
+    check pv_field $mddev pe_start $pv_align
 fi
--- LVM2/test/t-pvcreate-operation.sh	2010/08/12 04:09:00	1.19
+++ LVM2/test/t-pvcreate-operation.sh	2011/01/05 00:16:20	1.20
@@ -8,7 +8,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_devs 4
 
--- LVM2/test/t-pvcreate-usage.sh	2010/08/12 04:11:50	1.16
+++ LVM2/test/t-pvcreate-usage.sh	2011/01/05 00:16:20	1.17
@@ -12,7 +12,7 @@
 test_description='Test pvcreate option values'
 PAGESIZE=$(getconf PAGESIZE)
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_devs 4
 
@@ -25,7 +25,7 @@
 # x. metadatasize 0, defaults to 255
 # FIXME: unable to check default value, not in reporting cmds
 # should default to 255 according to code
-#   check_pv_field_ pv_mda_size 255 
+#   check pv_field pv_mda_size 255 
 #COMM 'pvcreate accepts metadatasize 0'
 pvcreate --metadatasize 0 $dev1
 pvremove $dev1
@@ -34,7 +34,7 @@
 pvcreate --metadatasize 512k $dev1
 pvcreate --metadatasize 96k $dev2
 vgcreate $vg $dev1 $dev2
-compare_two_fields_ vgs $vg vg_mda_size pvs $dev2 pv_mda_size
+check compare_fields vgs $vg vg_mda_size pvs $dev2 pv_mda_size
 vgremove -ff $vg
 
 # x. metadatasize too large
@@ -51,9 +51,9 @@
 pvcreate --$j 0 $dev1
 pvcreate --$j 1 $dev2
 pvcreate --$j 2 $dev3
-check_pv_field_ $dev1 pv_mda_count 0
-check_pv_field_ $dev2 pv_mda_count 1
-check_pv_field_ $dev3 pv_mda_count 2
+check pv_field $dev1 pv_mda_count 0
+check pv_field $dev2 pv_mda_count 1
+check pv_field $dev3 pv_mda_count 2
 pvremove $dev1 
 pvremove $dev2 
 pvremove $dev3
@@ -89,21 +89,21 @@
 #COMM 'pvcreate always rounded up to page size for start of device'
 #pvcreate --metadatacopies 0 --dataalignment 1 $dev1
 # amuse shell experts
-#check_pv_field_ $dev1 pe_start $(($(getconf PAGESIZE)/1024))".00k"
+#check pv_field $dev1 pe_start $(($(getconf PAGESIZE)/1024))".00k"
 
 #COMM 'pvcreate sets data offset directly'
 pvcreate --dataalignment 512k $dev1
-check_pv_field_ $dev1 pe_start 512.00k
+check pv_field $dev1 pe_start 512.00k
 
 #COMM 'vgcreate/vgremove do not modify data offset of existing PV'
 vgcreate $vg $dev1  --config 'devices { data_alignment = 1024 }'
-check_pv_field_ $dev1 pe_start 512.00k
+check pv_field $dev1 pe_start 512.00k
 vgremove $vg --config 'devices { data_alignment = 1024 }'
-check_pv_field_ $dev1 pe_start 512.00k
+check pv_field $dev1 pe_start 512.00k
 
 #COMM 'pvcreate sets data offset next to mda area'
 pvcreate --metadatasize 100k --dataalignment 100k $dev1
-check_pv_field_ $dev1 pe_start 200.00k
+check pv_field $dev1 pe_start 200.00k
 
 # metadata area start is aligned according to pagesize
 # pagesize should be 64k or 4k ...
@@ -114,21 +114,21 @@
 fi
 
 pvcreate --metadatasize 128k --dataalignment 3.5k $dev1
-check_pv_field_ $dev1 pe_start $pv_align
+check pv_field $dev1 pe_start $pv_align
 
 pvcreate --metadatasize 128k --metadatacopies 2 --dataalignment 3.5k $dev1
-check_pv_field_ $dev1 pe_start $pv_align
+check pv_field $dev1 pe_start $pv_align
 
 # data area is aligned to 1M by default,
 # data area start is shifted by the specified alignment_offset
 pv_align="1052160B" # 1048576 + (7*512)
 pvcreate --metadatasize 128k --dataalignmentoffset 7s $dev1
-check_pv_field_ $dev1 pe_start $pv_align "--units b"
+check pv_field $dev1 pe_start $pv_align "--units b"
 
 # 2nd metadata area is created without problems when
 # data area start is shifted by the specified alignment_offset
 pvcreate --metadatasize 128k --metadatacopies 2 --dataalignmentoffset 7s $dev1
-check_pv_field_ $dev1 pv_mda_count 2
+check pv_field $dev1 pv_mda_count 2
 # FIXME: compare start of 2nd mda with and without --dataalignmentoffset
 
 #COMM 'pv with LVM1 compatible data alignment can be convereted'
@@ -137,7 +137,7 @@
 vgcreate -s 1m $vg $dev1
 vgconvert -M1 $vg
 vgconvert -M2 $vg
-check_pv_field_ $dev1 pe_start 256.00k
+check pv_field $dev1 pe_start 256.00k
 vgremove $vg
 
 #COMM 'pv with LVM1 incompatible data alignment cannot be convereted'
@@ -155,8 +155,8 @@
 vgcfgbackup -f "$(pwd)/backup.$$" $vg
 sed 's/pe_start = [0-9]*/pe_start = 0/' "$(pwd)/backup.$$" > "$(pwd)/backup.$$1"
 vgcfgrestore -f "$(pwd)/backup.$$1" $vg
-check_pv_field_ $dev1 pe_start 0
-check_pv_field_ $dev2 pe_start 0
+check pv_field $dev1 pe_start 0
+check pv_field $dev2 pe_start 0
 vgremove $vg
 
 echo test pvcreate --metadataignore
@@ -165,25 +165,25 @@
 for ignore in y n; do
 	echo pvcreate --metadataignore has proper mda_count and mda_used_count
 	pvcreate --metadatacopies $mdacp --metadataignore $ignore $dev1 $dev2
-	check_pv_field_ $dev1 pv_mda_count $mdacp
-	check_pv_field_ $dev2 pv_mda_count $mdacp
+	check pv_field $dev1 pv_mda_count $mdacp
+	check pv_field $dev2 pv_mda_count $mdacp
 	if [ $ignore = y ]; then
-		check_pv_field_ $dev1 pv_mda_used_count 0
-		check_pv_field_ $dev2 pv_mda_used_count 0
+		check pv_field $dev1 pv_mda_used_count 0
+		check pv_field $dev2 pv_mda_used_count 0
 	else
-		check_pv_field_ $dev1 pv_mda_used_count $mdacp
-		check_pv_field_ $dev2 pv_mda_used_count $mdacp
+		check pv_field $dev1 pv_mda_used_count $mdacp
+		check pv_field $dev2 pv_mda_used_count $mdacp
 	fi
 	echo vgcreate has proper vg_mda_count and vg_mda_used_count
 	if [ $pv_in_vg = 1 ]; then
 		vgcreate -c n "$vg" $dev1 $dev2
-		check_vg_field_ $vg vg_mda_count $(($mdacp * 2))
+		check vg_field $vg vg_mda_count $(($mdacp * 2))
 		if [ $ignore = y ]; then
-			check_vg_field_ $vg vg_mda_used_count 1
+			check vg_field $vg vg_mda_used_count 1
 		else
-			check_vg_field_ $vg vg_mda_used_count $(($mdacp * 2))
+			check vg_field $vg vg_mda_used_count $(($mdacp * 2))
 		fi
-		check_vg_field_ $vg vg_mda_copies unmanaged
+		check vg_field $vg vg_mda_copies unmanaged
 		vgremove $vg
 	fi
 done
--- LVM2/test/t-pvmove-basic.sh	2010/08/02 13:18:02	1.11
+++ LVM2/test/t-pvmove-basic.sh	2011/01/05 00:16:20	1.12
@@ -12,7 +12,7 @@
 
 test_description="ensure that pvmove works with basic options"
 
-. ./test-utils.sh
+. lib/test
 
 # ---------------------------------------------------------------------
 # Utilities
@@ -361,9 +361,9 @@
 
 #COMM "pvmove out of --metadatacopies 0 PV (bz252150)"
 vgremove -ff $vg
-pvcreate $devs
+pvcreate $(cat DEVICES)
 pvcreate --metadatacopies 0 $dev1 $dev2
-vgcreate -c n $vg $devs
+vgcreate -c n $vg $(cat DEVICES)
 lvcreate -l4 -n $lv1 $vg $dev1
 pvmove $dev1
 
--- LVM2/test/t-pvremove-usage.sh	2010/02/17 15:41:28	1.6
+++ LVM2/test/t-pvremove-usage.sh	2011/01/05 00:16:20	1.7
@@ -9,7 +9,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_devs 3
 pvcreate $dev1
--- LVM2/test/t-read-ahead.sh	2010/04/07 14:46:26	1.12
+++ LVM2/test/t-read-ahead.sh	2011/01/05 00:16:20	1.13
@@ -15,7 +15,7 @@
 
 test_description='Test read-ahead functionality'
 
-. ./test-utils.sh
+. lib/test
 
 
 get_lvs_() {
@@ -53,10 +53,10 @@
 # Check default, active/inactive values for read_ahead / kernel_read_ahead
 lvcreate -n $lv -l 50%FREE $vg
 lvchange -an $vg/$lv
-check_lv_field_ $vg/$lv lv_read_ahead auto
-check_lv_field_ $vg/$lv lv_kernel_read_ahead -1
+check lv_field $vg/$lv lv_read_ahead auto
+check lv_field $vg/$lv lv_kernel_read_ahead -1
 lvchange -r 512 $vg/$lv
 lvchange -ay $vg/$lv
-check_lv_field_ $vg/$lv lv_read_ahead 256.00k
-check_lv_field_ $vg/$lv lv_kernel_read_ahead 256.00k
+check lv_field $vg/$lv lv_read_ahead 256.00k
+check lv_field $vg/$lv lv_kernel_read_ahead 256.00k
 lvremove -ff $vg
--- LVM2/test/t-snapshot-autoumount-dmeventd.sh	2010/10/29 16:43:52	1.1
+++ LVM2/test/t-snapshot-autoumount-dmeventd.sh	2011/01/05 00:16:20	1.2
@@ -10,15 +10,13 @@
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
 # no automatic extensions please
-LVM_TEST_CONFIG_SNAPSHOT_AUTOEXTEND="
-    snapshot_autoextend_percent = 0
-    snapshot_autoextend_threshold = 100"
 
-. ./test-utils.sh
+. lib/test
 
 which mkfs.ext2 || exit 200
 
-prepare_lvmconf
+aux lvmconf "activation/snapshot_autoextend_percent = 0" \
+            "activation/snapshot_autoextend_threshold = 100"
 
 aux prepare_vg 2
 aux prepare_dmeventd
--- LVM2/test/t-snapshot-merge.sh	2010/08/03 20:22:31	1.7
+++ LVM2/test/t-snapshot-merge.sh	2011/01/05 00:16:20	1.8
@@ -12,7 +12,7 @@
 
 which mkfs.ext3 || exit 200
 
-. ./test-utils.sh
+. lib/test
 
 lvdev_()
 {
--- LVM2/test/t-snapshots-of-mirrors.sh	2010/07/28 12:20:41	1.5
+++ LVM2/test/t-snapshots-of-mirrors.sh	2011/01/05 00:16:20	1.6
@@ -8,9 +8,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-utils.sh
+. lib/test
 
-prepare_vg 4
+aux prepare_vg 4
 
 # Create snapshot of a mirror origin
 lvcreate -m 1 -L 10M -n lv $vg
--- LVM2/test/t-tags.sh	2010/02/16 17:49:18	1.1
+++ LVM2/test/t-tags.sh	2011/01/05 00:16:20	1.2
@@ -8,15 +8,15 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_pvs 5
 
 # vgcreate with --addtag
 vgcreate -c n --addtag firstvg $vg1 $dev1 $dev2
 vgcreate -c n --addtag secondvg $vg2 $dev3 $dev4
-check_vg_field_ $vg1 tags firstvg
-check_vg_field_ $vg2 tags secondvg
+check vg_field $vg1 tags firstvg
+check vg_field $vg2 tags secondvg
 vgremove -ff $vg1
 vgremove -ff $vg2
 
@@ -31,10 +31,10 @@
 vgchange --addtag secondvgtag1 $vg2
 vgchange --addtag secondvgtag2 $vg2
 vgchange --addtag secondvgtag3 $vg2
-check_vg_field_ @firstvgtag2 tags "firstvgtag1,firstvgtag2,firstvgtag3"
-check_vg_field_ @secondvgtag1 tags "secondvgtag1,secondvgtag2,secondvgtag3"
+check vg_field @firstvgtag2 tags "firstvgtag1,firstvgtag2,firstvgtag3"
+check vg_field @secondvgtag1 tags "secondvgtag1,secondvgtag2,secondvgtag3"
 vgchange --deltag firstvgtag2 $vg1
-check_vg_field_ @firstvgtag1 tags "firstvgtag1,firstvgtag3"
+check vg_field @firstvgtag1 tags "firstvgtag1,firstvgtag3"
 # deleting a tag multiple times is not an error
 vgchange --deltag firstvgtag2 $vg1
 vgchange --deltag firstvgtag1 $vg2
@@ -45,10 +45,10 @@
 vgcreate -c n $vg1 $dev1 $dev2
 lvcreate --addtag firstlvtag1 -l 4 -n $lv1 $vg1
 lvcreate --addtag secondlvtag1 -l 4 -n $lv2 $vg1
-check_lv_field_ @firstlvtag1 tags "firstlvtag1"
-not check_lv_field_ @secondlvtag1 tags "firstlvtag1"
-check_lv_field_ $vg1/$lv2 tags "secondlvtag1"
-not check_lv_field_ $vg1/$lv1 tags "secondlvtag1"
+check lv_field @firstlvtag1 tags "firstlvtag1"
+not check lv_field @secondlvtag1 tags "firstlvtag1"
+check lv_field $vg1/$lv2 tags "secondlvtag1"
+not check lv_field $vg1/$lv1 tags "secondlvtag1"
 vgremove -ff $vg1
 
 # lvchange with --addtag and --deltag
@@ -63,12 +63,12 @@
 lvchange --addtag secondlvtag1 $vg1/$lv2
 lvchange --addtag secondlvtag2 $vg1/$lv2
 lvchange --addtag secondlvtag3 $vg1/$lv2
-check_lv_field_ $vg1/$lv1 tags "firstlvtag1,firstlvtag2,firstlvtag3"
-not $(check_lv_field_ $vg1/$lv1 tags "secondlvtag1")
-check_lv_field_ $vg1/$lv2 tags "secondlvtag1,secondlvtag2,secondlvtag3"
-not $(check_lv_field_ $vg1/$lv1 tags "secondlvtag1")
+check lv_field $vg1/$lv1 tags "firstlvtag1,firstlvtag2,firstlvtag3"
+not $(check lv_field $vg1/$lv1 tags "secondlvtag1")
+check lv_field $vg1/$lv2 tags "secondlvtag1,secondlvtag2,secondlvtag3"
+not $(check lv_field $vg1/$lv1 tags "secondlvtag1")
 # deleting a tag multiple times is not an error
 lvchange --deltag firstlvtag2 $vg1/$lv1
 lvchange --deltag firstlvtag2 $vg1/$lv1
-check_lv_field_ $vg1/$lv1 tags "firstlvtag1,firstlvtag3"
-check_lv_field_ $vg1/$lv2 tags "secondlvtag1,secondlvtag2,secondlvtag3"
+check lv_field $vg1/$lv1 tags "firstlvtag1,firstlvtag3"
+check lv_field $vg1/$lv2 tags "secondlvtag1,secondlvtag2,secondlvtag3"
--- LVM2/test/t-test-partition.sh	2010/10/20 15:14:13	1.1
+++ LVM2/test/t-test-partition.sh	2011/01/05 00:16:20	1.2
@@ -18,7 +18,7 @@
 
 LVM_TEST_CONFIG_DEVICES="types = [\"device-mapper\", 142]"
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_pvs 1 30
 
--- LVM2/test/t-topology-support.sh	2010/08/12 04:11:50	1.5
+++ LVM2/test/t-topology-support.sh	2011/01/05 00:16:20	1.6
@@ -15,7 +15,7 @@
 
 test $linux_minor -ge 31 || exit 200
 
-. ./test-utils.sh
+. lib/test
 
 check_logical_block_size()
 {
@@ -64,41 +64,41 @@
 # Create "desktop-class" 4K drive
 # (logical_block_size=512, physical_block_size=4096, alignment_offset=0):
 LOGICAL_BLOCK_SIZE=512
-prepare_scsi_debug_dev $DEV_SIZE \
+aux prepare_scsi_debug_dev $DEV_SIZE \
     sector_size=$LOGICAL_BLOCK_SIZE physblk_exp=3
 check_logical_block_size $SCSI_DEBUG_DEV $LOGICAL_BLOCK_SIZE
 
 aux prepare_pvs $NUM_DEVS $PER_DEV_SIZE
-vgcreate -c n $vg $devs
+vgcreate -c n $vg $(cat DEVICES)
 test_snapshot_mount
 vgremove $vg
 
-cleanup_scsi_debug_dev
+aux cleanup_scsi_debug_dev
 
 # ---------------------------------------------
 # Create "desktop-class" 4K drive w/ 63-sector DOS partition compensation
 # (logical_block_size=512, physical_block_size=4096, alignment_offset=3584):
 LOGICAL_BLOCK_SIZE=512
-prepare_scsi_debug_dev $DEV_SIZE \
+aux prepare_scsi_debug_dev $DEV_SIZE \
     sector_size=$LOGICAL_BLOCK_SIZE physblk_exp=3 lowest_aligned=7
 check_logical_block_size $SCSI_DEBUG_DEV $LOGICAL_BLOCK_SIZE
 
 aux prepare_pvs $NUM_DEVS $PER_DEV_SIZE
-vgcreate -c n $vg $devs
+vgcreate -c n $vg $(cat DEVICES)
 test_snapshot_mount
 vgremove $vg
 
-cleanup_scsi_debug_dev
+aux cleanup_scsi_debug_dev
 
 # ---------------------------------------------
 # Create "enterprise-class" 4K drive
 # (logical_block_size=4096, physical_block_size=4096, alignment_offset=0):
 LOGICAL_BLOCK_SIZE=4096
-prepare_scsi_debug_dev $DEV_SIZE \
+aux prepare_scsi_debug_dev $DEV_SIZE \
     sector_size=$LOGICAL_BLOCK_SIZE
 check_logical_block_size $SCSI_DEBUG_DEV $LOGICAL_BLOCK_SIZE
 
 aux prepare_pvs $NUM_DEVS $PER_DEV_SIZE
-vgcreate -c n $vg $devs
+vgcreate -c n $vg $(cat DEVICES)
 test_snapshot_mount
 vgremove $vg
--- LVM2/test/t-unknown-segment.sh	2009/10/16 17:41:52	1.1
+++ LVM2/test/t-unknown-segment.sh	2011/01/05 00:16:20	1.2
@@ -9,7 +9,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_vg 4
 
--- LVM2/test/t-unlost-pv.sh	2009/06/10 20:17:33	1.3
+++ LVM2/test/t-unlost-pv.sh	2011/01/05 00:16:20	1.4
@@ -9,7 +9,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_vg 3
 
@@ -24,15 +24,15 @@
 }
 
 # try orphaning a missing PV (bz45867)
-disable_dev $dev1
+aux disable_dev $dev1
 vgreduce --removemissing --force $vg
-enable_dev $dev1
+aux enable_dev $dev1
 check
 
 # try to just change metadata; we expect the new version (with MISSING_PV set
 # on the reappeared volume) to be written out to the previously missing PV
 vgextend $vg $dev1
-disable_dev $dev1
+aux disable_dev $dev1
 lvremove $vg/mirror
-enable_dev $dev1
+aux enable_dev $dev1
 check
--- LVM2/test/t-vgcfgbackup-usage.sh	2010/10/04 18:59:02	1.6
+++ LVM2/test/t-vgcfgbackup-usage.sh	2011/01/05 00:16:20	1.7
@@ -9,7 +9,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_pvs 4
 
@@ -28,7 +28,7 @@
 # and vgcfgrestore able to restore them when device reappears
 pv1_uuid=$(pvs --noheadings -o pv_uuid $dev1)
 pv2_uuid=$(pvs --noheadings -o pv_uuid $dev2)
-vgcreate $vg $devs
+vgcreate $vg $(cat DEVICES)
 lvcreate -l1 -n $lv1 $vg $dev1
 lvcreate -l1 -n $lv2 $vg $dev2
 lvcreate -l1 -n $lv3 $vg $dev3
@@ -46,8 +46,8 @@
 # FIXME: clvmd seems to have problem with metadata format change here
 # fix it and remove this vgscan
 vgscan
-pvcreate -M1 $devs
-vgcreate -M1 -c n $vg $devs
+pvcreate -M1 $(cat DEVICES)
+vgcreate -M1 -c n $vg $(cat DEVICES)
 lvcreate -l1 -n $lv1 $vg $dev1
 pvremove -ff -y $dev2
 not lvcreate -l1 -n $lv1 $vg $dev3
--- LVM2/test/t-vgchange-maxlv.sh	2010/10/20 15:32:15	1.1
+++ LVM2/test/t-vgchange-maxlv.sh	2011/01/05 00:16:20	1.2
@@ -9,9 +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-utils.sh
+. lib/test
 
-prepare_dmeventd
+aux prepare_dmeventd
 aux prepare_pvs 3
 
 vgcreate -c n -l 2 $vg $dev1 $dev2 $dev3
--- LVM2/test/t-vgchange-usage.sh	2010/02/16 17:48:46	1.2
+++ LVM2/test/t-vgchange-usage.sh	2011/01/05 00:16:20	1.3
@@ -11,34 +11,34 @@
 
 test_description='Exercise some vgchange diagnostics'
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_pvs 3
 pvcreate --metadatacopies 0 $dev1
-vgcreate $vg $devs
+vgcreate $vg $(cat DEVICES)
 
 vgdisplay $vg
 
 # vgchange -p MaxPhysicalVolumes (bz202232)
-aux check_vg_field_ $vg max_pv 0
+aux check vg_field $vg max_pv 0
 vgchange -p 128 $vg
-aux check_vg_field_ $vg max_pv 128
+aux check vg_field $vg max_pv 128
 
-pv_count=$(get_vg_field $vg pv_count)
+pv_count=$(get vg_field $vg pv_count)
 not vgchange -p 2 $vg 2>err
 grep "MaxPhysicalVolumes is less than the current number $pv_count of PVs for" err
-aux check_vg_field_ $vg max_pv 128
+aux check vg_field $vg max_pv 128
 
 # vgchange -l MaxLogicalVolumes
-aux check_vg_field_ $vg max_lv 0
+aux check vg_field $vg max_lv 0
 vgchange -l 128 $vg
-aux check_vg_field_ $vg max_lv 128
+aux check vg_field $vg max_lv 128
 
 lvcreate -l4 -n$lv1 $vg
 lvcreate -l4 -n$lv2 $vg
 
-lv_count=$(get_vg_field $vg lv_count)
+lv_count=$(get vg_field $vg lv_count)
 not vgchange -l 1 $vg 2>err
 grep "MaxLogicalVolume is less than the current number $lv_count of LVs for"  err
-aux check_vg_field_ $vg max_lv 128
+aux check vg_field $vg max_lv 128
 
--- LVM2/test/t-vgcreate-usage.sh	2010/08/12 04:11:50	1.17
+++ LVM2/test/t-vgcreate-usage.sh	2011/01/05 00:16:20	1.18
@@ -11,7 +11,7 @@
 
 test_description='Exercise some vgcreate diagnostics'
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_devs 3
 pvcreate $dev1 $dev2
@@ -21,7 +21,7 @@
 
 #COMM 'vgcreate accepts 8.00m physicalextentsize for VG'
 vgcreate -c n $vg --physicalextentsize 8.00m $dev1 $dev2
-check_vg_field_ $vg vg_extent_size 8.00m
+check vg_field  $vg vg_extent_size 8.00m
 vgremove $vg
 # try vgck and to remove it again - should fail (but not segfault)
 not vgremove $vg
@@ -29,12 +29,12 @@
 
 #COMM 'vgcreate accepts smaller (128) maxlogicalvolumes for VG'
 vgcreate -c n $vg --maxlogicalvolumes 128 $dev1 $dev2 
-check_vg_field_ $vg max_lv 128 
+check vg_field $vg max_lv 128 
 vgremove $vg
 
 #COMM 'vgcreate accepts smaller (128) maxphysicalvolumes for VG'
 vgcreate -c n $vg --maxphysicalvolumes 128 $dev1 $dev2
-check_vg_field_ $vg max_pv 128
+check vg_field $vg max_pv 128
 vgremove $vg
 
 #COMM 'vgcreate rejects a zero physical extent size'
@@ -75,7 +75,7 @@
 # Test default (4MB) vg_extent_size as well as limits of extent_size
 not vgcreate -c n --physicalextentsize 0k $vg $dev1 $dev2
 vgcreate -c n --physicalextentsize 1k $vg $dev1 $dev2
-check_vg_field_ $vg vg_extent_size 1.00k
+check vg_field $vg vg_extent_size 1.00k
 vgremove -ff $vg
 not vgcreate -c n --physicalextentsize 3K $vg $dev1 $dev2
 not vgcreate -c n --physicalextentsize 1024t $vg $dev1 $dev2
@@ -84,10 +84,10 @@
 
 # Test default max_lv, max_pv, extent_size, alloc_policy, clustered
 vgcreate -c n $vg $dev1 $dev2
-check_vg_field_ $vg vg_extent_size 4.00m
-check_vg_field_ $vg max_lv 0
-check_vg_field_ $vg max_pv 0
-check_vg_field_ $vg vg_attr "wz--n-"
+check vg_field $vg vg_extent_size 4.00m
+check vg_field $vg max_lv 0
+check vg_field $vg max_pv 0
+check vg_field $vg vg_attr "wz--n-"
 vgremove -ff $vg
 
 # Implicit pvcreate tests, test pvcreate options on vgcreate
@@ -111,22 +111,22 @@
 for i in 1 2
 do
     vgcreate -c n --pvmetadatacopies $i $vg $dev1
-    check_pv_field_ $dev1 pv_mda_count $i
+    check pv_field $dev1 pv_mda_count $i
     vgremove -f $vg
     pvremove -f $dev1
 done
 not vgcreate -c n --pvmetadatacopies 0 $vg $dev1
 pvcreate --metadatacopies 1 $dev2
 vgcreate -c n --pvmetadatacopies 0 $vg $dev1 $dev2
-check_pv_field_ $dev1 pv_mda_count 0
-check_pv_field_ $dev2 pv_mda_count 1
+check pv_field $dev1 pv_mda_count 0
+check pv_field $dev2 pv_mda_count 1
 vgremove -f $vg
 pvremove -f $dev1
 
 # metadatasize, dataalignment, dataalignmentoffset
 #COMM 'pvcreate sets data offset next to mda area'
 vgcreate -c n --metadatasize 100k --dataalignment 100k $vg $dev1
-check_pv_field_ $dev1 pe_start 200.00k
+check pv_field $dev1 pe_start 200.00k
 vgremove -f $vg
 pvremove -f $dev1
 
@@ -134,7 +134,7 @@
 # data area start is shifted by the specified alignment_offset
 pv_align="1052160B" # 1048576 + (7*512)
 vgcreate -c n --metadatasize 128k --dataalignmentoffset 7s $vg $dev1
-check_pv_field_ $dev1 pe_start $pv_align "--units b"
+check pv_field $dev1 pe_start $pv_align "--units b"
 vgremove -f $vg
 pvremove -f $dev1
 
@@ -142,7 +142,7 @@
 for i in 1 2
 do
     vgcreate -c n -M $i $vg $dev1
-    check_vg_field_ $vg vg_fmt lvm$i
+    check vg_field $vg vg_fmt lvm$i
     vgremove -f $vg
     pvremove -f $dev1
 done
@@ -156,8 +156,8 @@
 # all PVs exist in the VG after created
 pvcreate $dev1
 vgcreate -c n $vg1 $dev1 $dev2 $dev3
-check_pv_field_ $dev1 vg_name $vg1
-check_pv_field_ $dev2 vg_name $vg1
-check_pv_field_ $dev3 vg_name $vg1
+check pv_field $dev1 vg_name $vg1
+check pv_field $dev2 vg_name $vg1
+check pv_field $dev3 vg_name $vg1
 vgremove -f $vg1
 pvremove -f $dev1 $dev2 $dev3
--- LVM2/test/t-vgextend-restoremissing.sh	2010/10/13 10:36:26	1.1
+++ LVM2/test/t-vgextend-restoremissing.sh	2011/01/05 00:16:20	1.2
@@ -9,7 +9,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 
 aux prepare_vg 3
@@ -19,9 +19,9 @@
 
 # try to just change metadata; we expect the new version (with MISSING_PV set
 # on the reappeared volume) to be written out to the previously missing PV
-disable_dev $dev1
+aux disable_dev $dev1
 lvremove $vg/mirror
-enable_dev $dev1
+aux enable_dev $dev1
 not vgck $vg 2>&1 | tee log
 grep "missing 1 physical volume" log
 not lvcreate -m 1 -l 1 -n mirror $vg # write operations fail
--- LVM2/test/t-vgextend-usage.sh	2010/08/12 04:11:50	1.5
+++ LVM2/test/t-vgextend-usage.sh	2011/01/05 00:16:20	1.6
@@ -12,7 +12,7 @@
 # Exercise various vgextend commands
 #
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_devs 5
 
@@ -55,7 +55,7 @@
 for i in 0 1 2
 do
     vgextend --pvmetadatacopies $i $vg $dev1
-    check_pv_field_ $dev1 pv_mda_count $i
+    check pv_field $dev1 pv_mda_count $i
     vgreduce $vg $dev1
     pvremove -f $dev1
 done
@@ -63,7 +63,7 @@
 # metadatasize, dataalignment, dataalignmentoffset
 #COMM 'pvcreate sets data offset next to mda area'
 vgextend --metadatasize 100k --dataalignment 100k $vg $dev1
-check_pv_field_ $dev1 pe_start 200.00k
+check pv_field $dev1 pe_start 200.00k
 vgreduce $vg $dev1
 pvremove -f $dev1
 
@@ -71,7 +71,7 @@
 # data area start is shifted by the specified alignment_offset
 pv_align="1052160B" # 1048576 + (7*512)
 vgextend --metadatasize 128k --dataalignmentoffset 7s $vg $dev1
-check_pv_field_ $dev1 pe_start $pv_align "--units b"
+check pv_field $dev1 pe_start $pv_align "--units b"
 vgremove -f $vg
 pvremove -f $dev1
 
@@ -94,9 +94,9 @@
 pvcreate $dev1
 vgcreate $vg1 $dev2
 vgextend $vg1 $dev1 $dev3
-check_pv_field_ $dev1 vg_name $vg1
-check_pv_field_ $dev2 vg_name $vg1
-check_pv_field_ $dev3 vg_name $vg1
+check pv_field $dev1 vg_name $vg1
+check pv_field $dev2 vg_name $vg1
+check pv_field $dev3 vg_name $vg1
 vgremove -f $vg1
 pvremove -f $dev1 $dev2 $dev3
 
@@ -106,23 +106,23 @@
 	echo vgextend --metadataignore has proper mda_count and mda_used_count
 	vgcreate $vg $dev3
 	vgextend --metadataignore $ignore --pvmetadatacopies $mdacp $vg $dev1 $dev2
-	check_pv_field_ $dev1 pv_mda_count $mdacp
-	check_pv_field_ $dev2 pv_mda_count $mdacp
+	check pv_field $dev1 pv_mda_count $mdacp
+	check pv_field $dev2 pv_mda_count $mdacp
 	if [ $ignore = y ]; then
-		check_pv_field_ $dev1 pv_mda_used_count 0
-		check_pv_field_ $dev2 pv_mda_used_count 0
+		check pv_field $dev1 pv_mda_used_count 0
+		check pv_field $dev2 pv_mda_used_count 0
 	else
-		check_pv_field_ $dev1 pv_mda_used_count $mdacp
-		check_pv_field_ $dev2 pv_mda_used_count $mdacp
+		check pv_field $dev1 pv_mda_used_count $mdacp
+		check pv_field $dev2 pv_mda_used_count $mdacp
 	fi
 	echo vg has proper vg_mda_count and vg_mda_used_count
-	check_vg_field_ $vg vg_mda_count $(($mdacp * 2 + 1))
+	check vg_field $vg vg_mda_count $(($mdacp * 2 + 1))
 	if [ $ignore = y ]; then
-		check_vg_field_ $vg vg_mda_used_count 1
+		check vg_field $vg vg_mda_used_count 1
 	else
-		check_vg_field_ $vg vg_mda_used_count $(($mdacp * 2 + 1))
+		check vg_field $vg vg_mda_used_count $(($mdacp * 2 + 1))
 	fi
-	check_vg_field_ $vg vg_mda_copies unmanaged
+	check vg_field $vg vg_mda_copies unmanaged
 	vgremove $vg
 	pvremove -ff $dev1 $dev2 $dev3
 done
--- LVM2/test/t-vgmerge-operation.sh	2009/12/28 18:33:04	1.6
+++ LVM2/test/t-vgmerge-operation.sh	2011/01/05 00:16:20	1.7
@@ -11,7 +11,7 @@
 
 test_description='Test vgmerge operation'
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_pvs 4 64
 
@@ -20,10 +20,10 @@
 vgcreate -c n $vg2 $dev3 $dev4 
 lvcreate -l 4 -n $lv1 $vg1 $dev1 
 vgchange -an $vg1 
-vg_validate_pvlv_counts_ $vg1 2 1 0 
-vg_validate_pvlv_counts_ $vg2 2 0 0 
+check pvlv_counts $vg1 2 1 0 
+check pvlv_counts $vg2 2 0 0 
 vgmerge $vg2 $vg1 
-vg_validate_pvlv_counts_ $vg2 4 1 0 
+check pvlv_counts $vg2 4 1 0 
 vgremove -f $vg2
 
 # 'vgmerge succeeds with single linear LV in source and destination VG'
@@ -33,10 +33,10 @@
 lvcreate -l 4 -n $lv2 $vg2 
 vgchange -an $vg1 
 vgchange -an $vg2 
-vg_validate_pvlv_counts_ $vg1 2 1 0 
-vg_validate_pvlv_counts_ $vg2 2 1 0 
+check pvlv_counts $vg1 2 1 0 
+check pvlv_counts $vg2 2 1 0 
 vgmerge $vg2 $vg1 
-vg_validate_pvlv_counts_ $vg2 4 2 0 
+check pvlv_counts $vg2 4 2 0 
 vgremove -f $vg2
 
 # 'vgmerge succeeds with linear LV + snapshots in source VG'
@@ -45,10 +45,10 @@
 lvcreate -l 16 -n $lv1 $vg1 
 lvcreate -l 4 -s -n $lv2 $vg1/$lv1 
 vgchange -an $vg1 
-vg_validate_pvlv_counts_ $vg1 2 2 1 
-vg_validate_pvlv_counts_ $vg2 2 0 0 
+check pvlv_counts $vg1 2 2 1 
+check pvlv_counts $vg2 2 0 0 
 vgmerge $vg2 $vg1 
-vg_validate_pvlv_counts_ $vg2 4 2 1 
+check pvlv_counts $vg2 4 2 1 
 lvremove -f $vg2/$lv2 
 vgremove -f $vg2
 
@@ -57,10 +57,10 @@
 vgcreate -c n $vg2 $dev4 
 lvcreate -l 4 -n $lv1 -m1 $vg1 
 vgchange -an $vg1 
-vg_validate_pvlv_counts_ $vg1 3 1 0 
-vg_validate_pvlv_counts_ $vg2 1 0 0 
+check pvlv_counts $vg1 3 1 0 
+check pvlv_counts $vg2 1 0 0 
 vgmerge $vg2 $vg1 
-vg_validate_pvlv_counts_ $vg2 4 1 0 
+check pvlv_counts $vg2 4 1 0 
 lvremove -f $vg2/$lv1 
 vgremove -f $vg2
 
@@ -70,12 +70,12 @@
 lvcreate -l 4 -n $lv1 $vg1
 lvcreate -l 4 -n $lv1 $vg2
 vgchange -an $vg1
-aux vg_validate_pvlv_counts_ $vg1 2 1 0
-aux vg_validate_pvlv_counts_ $vg2 2 1 0
+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
-aux vg_validate_pvlv_counts_ $vg1 2 1 0
-aux vg_validate_pvlv_counts_ $vg2 2 1 0
+check pvlv_counts $vg1 2 1 0
+check pvlv_counts $vg2 2 1 0
 vgremove -f $vg1
 vgremove -f $vg2
 
--- LVM2/test/t-vgmerge-usage.sh	2009/12/28 18:33:04	1.7
+++ LVM2/test/t-vgmerge-usage.sh	2011/01/05 00:16:20	1.8
@@ -11,7 +11,7 @@
 
 # 'Test vgmerge command options for validity'
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_pvs 4
 
--- LVM2/test/t-vgreduce-usage.sh	2009/12/28 18:33:04	1.6
+++ LVM2/test/t-vgreduce-usage.sh	2011/01/05 00:16:20	1.7
@@ -9,7 +9,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_devs 4
 
@@ -21,7 +21,7 @@
     # (lvm$mdatype) vgreduce removes only the specified pv from vg (bz427382)" '
     vgcreate -c n -M$mdatype $vg1 $dev1 $dev2
     vgreduce $vg1 $dev1
-    check_pv_field_ $dev2 vg_name $vg1
+    check pv_field $dev2 vg_name $vg1
     vgremove -f $vg1
 
     # (lvm$mdatype) vgreduce rejects removing the last pv (--all)
@@ -58,15 +58,15 @@
 aux disable_dev $dev1
 # (lvm$mdatype) vgreduce --removemissing --force repares to linear
 vgreduce --removemissing --force $vg1
-check_lv_field_ $vg1/$lv1 segtype linear
-vg_validate_pvlv_counts_ $vg1 2 3 0
+check lv_field $vg1/$lv1 segtype linear
+check pvlv_counts $vg1 2 3 0
 # cleanup
 aux enable_dev $dev1
 vgremove -ff $vg1
 
 #COMM "vgreduce rejects --removemissing --mirrorsonly --force when nonmirror lv lost too"
 # (lvm$mdatype) setup: create mirror + linear lvs
-vgcreate -c n -M$mdatype $vg1 $devs
+vgcreate -c n -M$mdatype $vg1 $(cat DEVICES)
 lvcreate -n $lv2 -l 4 $vg1
 lvcreate -m1 -n $lv1 -l 4 $vg1 $dev1 $dev2 $dev3
 lvcreate -n $lv3 -l 4 $vg1 $dev3
--- LVM2/test/t-vgrename-usage.sh	2009/09/02 18:31:11	1.5
+++ LVM2/test/t-vgrename-usage.sh	2011/01/05 00:16:20	1.6
@@ -8,7 +8,7 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_devs 4
 pvcreate $dev1 $dev2
@@ -19,17 +19,17 @@
 # ensure name ordering does not matter
 vgcreate $vg1 $dev1 $dev2
 vgrename $vg1 $vg2
-check_vg_field_ $vg2 vg_name $vg2
+check vg_field $vg2 vg_name $vg2
 vgrename $vg2 $vg1
-check_vg_field_ $vg1 vg_name $vg1
+check vg_field $vg1 vg_name $vg1
 vgremove $vg1
 
 # vgrename by uuid (bz231187)
 vgcreate $vg1 $dev1 $dev3
 UUID=$(vgs --noheading -o vg_uuid $vg1)
-check_vg_field_ $vg1 vg_uuid $UUID
+check vg_field $vg1 vg_uuid $UUID
 vgrename $UUID $vg2
-check_vg_field_ $vg2 vg_name $vg2
+check vg_field $vg2 vg_name $vg2
 vgremove $vg2
 
 # vgrename fails - new vg already exists
--- LVM2/test/t-vgsplit-operation.sh	2010/08/12 04:11:50	1.26
+++ LVM2/test/t-vgsplit-operation.sh	2011/01/05 00:16:20	1.27
@@ -11,13 +11,13 @@
 
 # Test vgsplit operation, including different LV types
 
-. ./test-utils.sh
+. lib/test
 
 COMM() {  
 	LAST_TEST="$@"
 }
 
-prepare_pvs 5 258
+aux prepare_pvs 5 258
 # 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
@@ -44,11 +44,11 @@
 		else
 		  vgsplit -n $lv1 $vg1 $vg2
 		fi 
-		vg_validate_pvlv_counts_ $vg1 1 0 0 
+		check pvlv_counts $vg1 1 0 0 
 		if [ $i = existing ]; then
-		   aux vg_validate_pvlv_counts_ $vg2 3 1 0
+		   check pvlv_counts $vg2 3 1 0
 		else
-		   aux vg_validate_pvlv_counts_ $vg2 1 1 0
+		   check pvlv_counts $vg2 1 1 0
 		fi 
 		lvremove -f $vg2/$lv1 
 		vgremove -f $vg2 
@@ -67,9 +67,9 @@
 		  vgsplit -n $lv1 $vg1 $vg2
 		fi 
 		if [ $i = existing ]; then
-		  aux vg_validate_pvlv_counts_ $vg2 4 1 0
+		  check pvlv_counts $vg2 4 1 0
 		else
-		  aux vg_validate_pvlv_counts_ $vg2 2 1 0
+		  check pvlv_counts $vg2 2 1 0
 		fi 
 		lvremove -f $vg2/$lv1 
 		vgremove -f $vg2
@@ -87,9 +87,9 @@
 		  vgsplit -n $lv1 $vg1 $vg2
 		fi 
 		if [ $i = existing ]; then
-		  aux vg_validate_pvlv_counts_ $vg2 4 1 0
+		  check pvlv_counts $vg2 4 1 0
 		else
-		  aux vg_validate_pvlv_counts_ $vg2 3 1 0
+		  check pvlv_counts $vg2 3 1 0
 		fi 
 		lvremove -f $vg2/$lv1 
 		vgremove -f $vg2
@@ -108,9 +108,9 @@
 		  vgsplit -n $lv1 $vg1 $vg2
 		fi 
 		if [ $i = existing ]; then
-		  aux vg_validate_pvlv_counts_ $vg2 4 2 1
+		  check pvlv_counts $vg2 4 2 1
 		else
-		  aux vg_validate_pvlv_counts_ $vg2 2 2 1
+		  check pvlv_counts $vg2 2 2 1
 		fi 
 		lvremove -f $vg2/$lv2 
 		lvremove -f $vg2/$lv1 
@@ -132,11 +132,11 @@
 		  vgsplit -n $lv3 $vg1 $vg2
 		fi 
 		if [ $i = existing ]; then
-		  aux vg_validate_pvlv_counts_ $vg2 2 1 0
-		  aux vg_validate_pvlv_counts_ $vg1 2 2 1
+		  check pvlv_counts $vg2 2 1 0
+		  check pvlv_counts $vg1 2 2 1
 		else
-		  aux vg_validate_pvlv_counts_ $vg2 1 1 0
-		  aux vg_validate_pvlv_counts_ $vg1 2 2 1
+		  check pvlv_counts $vg2 1 1 0
+		  check pvlv_counts $vg1 2 2 1
 		fi 
 		lvremove -f $vg1/$lv2 
 		lvremove -f $vg1/$lv1 
@@ -162,14 +162,14 @@
 		  vgsplit -n $lv2 $vg1 $vg2
 		fi 
 		if [ $i = existing ]; then
-		  aux vg_validate_pvlv_counts_ $vg1 3 1 0
-		  aux vg_validate_pvlv_counts_ $vg2 2 1 0
+		  check pvlv_counts $vg1 3 1 0
+		  check pvlv_counts $vg2 2 1 0
 		else
 		vgs
 		lvs 
 		pvs
-		  aux vg_validate_pvlv_counts_ $vg1 3 1 0
-		  aux vg_validate_pvlv_counts_ $vg2 1 1 0
+		  check pvlv_counts $vg1 3 1 0
+		  check pvlv_counts $vg2 1 1 0
 		fi 
 		lvremove -f $vg1/$lv1 
 		lvremove -f $vg2/$lv2 
@@ -197,7 +197,7 @@
 lvcreate -l 16 -n $lv1 $vg1 $dev1 $dev2 
 lvcreate -l 4 -n $lv2 -s $vg1/$lv1 $dev3
 lvcreate -l 4 -n $lv3 -s $vg1/$lv1 $dev4
-vg_validate_pvlv_counts_ $vg1 4 3 2 
+check pvlv_counts $vg1 4 3 2 
 vgchange -an $vg1 
 not vgsplit -n $lv1 $vg1 $vg2;
 lvremove -f $vg1/$lv2 
@@ -210,7 +210,7 @@
 lvcreate -l 16 -n $lv1 $vg1 $dev1 $dev2 
 lvcreate -l 4 -n $lv2 -s $vg1/$lv1 $dev3
 lvcreate -l 4 -n $lv3 -s $vg1/$lv1 $dev4
-vg_validate_pvlv_counts_ $vg1 4 3 2 
+check pvlv_counts $vg1 4 3 2 
 vgchange -an $vg1 
 not vgsplit -n $lv2 $vg1 $vg2
 lvremove -f $vg1/$lv2 
@@ -221,7 +221,7 @@
 COMM "vgsplit fails splitting one mirror LV, only one PV specified" 
 vgcreate -c n $vg1 $dev1 $dev2 $dev3 $dev4 
 lvcreate -l 16 -n $lv1 -m1 $vg1 $dev1 $dev2 $dev3 
-vg_validate_pvlv_counts_ $vg1 4 1 0 
+check pvlv_counts $vg1 4 1 0 
 vgchange -an $vg1 
 not vgsplit $vg1 $vg2 $dev2 
 vgremove -ff $vg1
@@ -230,7 +230,7 @@
 vgcreate -c n $vg1 $dev1 $dev2 $dev3 $dev4 
 lvcreate -l 16 -n $lv1 -m1 $vg1 $dev1 $dev2 $dev3 
 lvcreate -l 16 -n $lv2 -i 2 $vg1 $dev3 $dev4 
-vg_validate_pvlv_counts_ $vg1 4 2 0 
+check pvlv_counts $vg1 4 2 0 
 vgchange -an $vg1 
 not vgsplit -n $lv2 $vg1 $vg2 2>err
 vgremove -ff $vg1
@@ -243,9 +243,9 @@
 lvcreate -l 16 -n $lv1 -m1 $vg1 $dev1 $dev2 $dev3 
 lvcreate -l 16 -n $lv2 $vg1 $dev4 
 lvchange -an $vg1/$lv2 
-vg_validate_pvlv_counts_ $vg1 4 2 0 
+check pvlv_counts $vg1 4 2 0 
 not vgsplit -n $lv1 $vg1 $vg2;
-vg_validate_pvlv_counts_ $vg1 4 2 0 
+check pvlv_counts $vg1 4 2 0 
 vgremove -ff $vg1
 
 COMM "vgsplit succeeds, active mirror not involved in split" 
@@ -253,10 +253,10 @@
 lvcreate -l 16 -n $lv1 -m1 $vg1 $dev1 $dev2 $dev3 
 lvcreate -l 16 -n $lv2 $vg1 $dev4 
 lvchange -an $vg1/$lv2 
-vg_validate_pvlv_counts_ $vg1 4 2 0 
+check pvlv_counts $vg1 4 2 0 
 vgsplit -n $lv2 $vg1 $vg2 
-vg_validate_pvlv_counts_ $vg1 3 1 0 
-vg_validate_pvlv_counts_ $vg2 1 1 0 
+check pvlv_counts $vg1 3 1 0 
+check pvlv_counts $vg2 1 1 0 
 vgremove -ff $vg1 
 vgremove -ff $vg2
 
@@ -266,9 +266,9 @@
 lvcreate -l 4 -i 2 -s -n $lv2 $vg1/$lv1 
 lvcreate -l 64 -i 2 -n $lv3 $vg1 $dev3 $dev4 
 lvchange -an $vg1/$lv3 
-vg_validate_pvlv_counts_ $vg1 4 3 1 
+check pvlv_counts $vg1 4 3 1 
 not vgsplit -n $lv2 $vg1 $vg2;
-vg_validate_pvlv_counts_ $vg1 4 3 1 
+check pvlv_counts $vg1 4 3 1 
 lvremove -f $vg1/$lv2 
 vgremove -ff $vg1
 
@@ -279,10 +279,10 @@
 vgextend $vg1 $dev4 
 lvcreate -l 64 -n $lv3 $vg1 $dev4 
 lvchange -an $vg1/$lv3 
-vg_validate_pvlv_counts_ $vg1 4 3 1 
+check pvlv_counts $vg1 4 3 1 
 vgsplit -n $lv3 $vg1 $vg2 
-vg_validate_pvlv_counts_ $vg1 3 2 1 
-vg_validate_pvlv_counts_ $vg2 1 1 0 
+check pvlv_counts $vg1 3 2 1 
+check pvlv_counts $vg2 1 1 0 
 vgchange -an $vg1 
 lvremove -f $vg1/$lv2 
 vgremove -ff $vg1 
--- LVM2/test/t-vgsplit-stacked.sh	2010/07/28 12:20:41	1.4
+++ LVM2/test/t-vgsplit-stacked.sh	2011/01/05 00:16:20	1.5
@@ -8,12 +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-utils.sh
+. lib/test
 
-prepare_lvmconf '[ "a/dev\/mirror/", "a/dev\/mapper\/.*$/", "a/dev\/LVMTEST/", "r/.*/" ]'
+aux lvmconf 'devices/filter = [ "a/dev\/mirror/", "a/dev\/mapper\/.*$/", "a/dev\/LVMTEST/", "r/.*/" ]'
+cat $TESTDIR/etc/lvm.conf
 aux prepare_devs 3
 
-pvcreate $devs
+pvcreate $(cat DEVICES)
 vgcreate $vg1 $dev1 $dev2
 lvcreate -n $lv1 -l 100%FREE $vg1
 
--- LVM2/test/t-vgsplit-usage.sh	2009/09/02 19:38:53	1.14
+++ LVM2/test/t-vgsplit-usage.sh	2011/01/05 00:16:20	1.15
@@ -11,29 +11,29 @@
 
 # Test vgsplit command options for validity
 
-. ./test-utils.sh
+. lib/test
 
 aux prepare_devs 5
 
 for mdatype in 1 2
 do
 
-pvcreate -M$mdatype $devs
+pvcreate -M$mdatype $(cat DEVICES)
 
 # ensure name order does not matter
 # NOTE: if we're using lvm1, we must use -M on vgsplit
-vgcreate -M$mdatype $vg1 $devs
+vgcreate -M$mdatype $vg1 $(cat DEVICES)
 vgsplit -M$mdatype $vg1 $vg2 $dev1
 vgremove $vg1
 vgremove $vg2
-vgcreate -M$mdatype $vg2 $devs
+vgcreate -M$mdatype $vg2 $(cat DEVICES)
 vgsplit -M$mdatype $vg2 $vg1 $dev1
 vgremove $vg1
 vgremove $vg2
 
 # vgsplit accepts new vg as destination of split
 # lvm1 -- bz244792
-vgcreate -M$mdatype $vg1 $devs
+vgcreate -M$mdatype $vg1 $(cat DEVICES)
 vgsplit $vg1 $vg2 $dev1 1>err
 grep "New volume group \"$vg2\" successfully split from \"$vg1\"" err 
 vgremove $vg1 
@@ -50,14 +50,14 @@
 # vgsplit accepts --maxphysicalvolumes 128 on new VG
 vgcreate -M$mdatype $vg1 $dev1 $dev2 
 vgsplit --maxphysicalvolumes 128 $vg1 $vg2 $dev1 
-check_vg_field_ $vg2 max_pv 128 
+check vg_field $vg2 max_pv 128 
 vgremove $vg1 
 vgremove $vg2
 
 # vgsplit accepts --maxlogicalvolumes 128 on new VG
 vgcreate -M$mdatype $vg1 $dev1 $dev2 
 vgsplit --maxlogicalvolumes 128 $vg1 $vg2 $dev1 
-check_vg_field_ $vg2 max_lv 128 
+check vg_field $vg2 max_lv 128 
 vgremove $vg1 
 vgremove $vg2
 
@@ -129,7 +129,7 @@
 lvcreate -l 4 -n $lv1 $vg1 
 vgchange -an $vg1 
 vgsplit $vg1 $vg2 $dev1 
-compare_vg_field_ $vg1 $vg2 max_lv 
+check compare_vg_field $vg1 $vg2 max_lv 
 vgremove -f $vg2 
 vgremove -f $vg1
 
@@ -138,7 +138,7 @@
 lvcreate -l 4 -n $lv1 $vg1 
 vgchange -an $vg1 
 vgsplit $vg1 $vg2 $dev1 
-compare_vg_field_ $vg1 $vg2 max_pv 
+check compare_vg_field $vg1 $vg2 max_pv 
 vgremove -f $vg2 
 vgremove -f $vg1
 
@@ -147,7 +147,7 @@
 lvcreate -l 4 -n $lv1 $vg1 
 vgchange -an $vg1 
 vgsplit $vg1 $vg2 $dev1 
-compare_vg_field_ $vg1 $vg2 vg_fmt 
+check compare_vg_field $vg1 $vg2 vg_fmt 
 vgremove -f $vg2 
 vgremove -f $vg1
 
@@ -170,9 +170,9 @@
 vgcreate $vg1 $dev5 $dev2  
 lvcreate -l 10 -n $lv1  $vg1 
 lvchange -an $vg1/$lv1 
-vg_validate_pvlv_counts_ $vg1 2 1 0 
+check pvlv_counts $vg1 2 1 0 
 not vgsplit  $vg1 $vg2 $dev5;
-vg_validate_pvlv_counts_ $vg1 2 1 0 
+check pvlv_counts $vg1 2 1 0 
 vgremove -ff $vg1
 
 # vgsplit rejects split because metadata types differ
--- LVM2/test/api/percent.sh	2010/12/21 01:14:34	1.2
+++ LVM2/test/api/percent.sh	2011/01/05 00:16:21	1.3
@@ -11,13 +11,14 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 
-. ./test-utils.sh
+. lib/test
+
 aux prepare_devs 2
-vgcreate -c n -s 4k $vg $devs
+vgcreate -c n -s 4k $vg $(cat DEVICES)
 lvcreate -n foo $vg -l 5
 lvcreate -s -n snap $vg/foo -l 2 -c 4k
 lvcreate -s -n snap2 $vg/foo -l 6 -c 4k
 dd if=/dev/urandom of=$DM_DEV_DIR/$vg/snap2 count=1 bs=1024
 lvcreate -m 1 -n mirr $vg -l 1 --mirrorlog core
 lvs
-apitest percent $vg
+aux apitest percent $vg
--- LVM2/test/api/vgtest.sh	2010/12/12 20:36:38	1.1
+++ LVM2/test/api/vgtest.sh	2011/01/05 00:16:21	1.2
@@ -12,7 +12,7 @@
 # tests lvm2app library
 #
 
-. ./test-utils.sh
+. lib/test
 aux prepare_devs 2
 pvcreate $dev1 $dev2
-apitest vgtest $vg1 $dev1 $dev2
+aux apitest vgtest $vg1 $dev1 $dev2
/cvs/lvm2/LVM2/test/lib/aux.sh,v  -->  standard output
revision 1.1
--- LVM2/test/lib/aux.sh
+++ -	2011-01-05 00:16:39.654010000 +0000
@@ -0,0 +1,367 @@
+# Copyright (C) 2011 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
+
+. lib/utils
+
+prepare_clvmd() {
+	if test -z "$LVM_TEST_LOCKING" || test "$LVM_TEST_LOCKING" -ne 3 ; then
+		return 0 # not needed
+	fi
+
+	if pgrep clvmd ; then
+		echo "Cannot use fake cluster locking with real clvmd ($(pgrep clvmd)) running."
+                touch SKIP_THIS_TEST
+		exit 1
+	fi
+
+	# skip if we don't have our own clvmd...
+	(which clvmd | grep $abs_builddir) || exit 200
+
+	# skip if we singlenode is not compiled in
+	(clvmd --help 2>&1 | grep "Available cluster managers" | grep singlenode) || exit 200
+
+	clvmd -Isinglenode -d 1 &
+	LOCAL_CLVMD="$!"
+
+	# check that it is really running now
+	sleep .1
+	ps $LOCAL_CLVMD || exit 200
+}
+
+prepare_dmeventd() {
+	if pgrep dmeventd ; then
+		echo "Cannot test dmeventd with real dmeventd ($(pgrep dmeventd)) running."
+                touch SKIP_THIS_TEST
+		exit 1
+	fi
+
+	# skip if we don't have our own dmeventd...
+	(which dmeventd | grep $abs_builddir) || exit 200
+
+	dmeventd -f &
+	echo "$!" > LOCAL_DMEVENTD
+}
+
+teardown_devs() {
+	test -n "$PREFIX" && {
+		rm -rf $TESTDIR/dev/$PREFIX*
+
+		init_udev_transaction
+		while dmsetup table | grep -q ^$PREFIX; do
+			for s in `dmsetup info -c -o name --noheading | grep ^$PREFIX`; do
+				umount -fl $DM_DEV_DIR/mapper/$s >& /dev/null || true
+				dmsetup remove $s >& /dev/null || true
+			done
+		done
+		finish_udev_transaction
+
+	}
+
+	# NOTE: SCSI_DEBUG_DEV test must come before the LOOP test because
+	# prepare_scsi_debug_dev() also sets LOOP to short-circuit prepare_loop()
+	if test -f SCSI_DEBUG_DEV; then
+		modprobe -r scsi_debug
+	else
+		test -f LOOP && losetup -d $(cat LOOP)
+		test -f LOOPFILE && rm -f $(cat LOOPFILE)
+	fi
+	rm -f DEVICES # devs is set in prepare_devs()
+	rm -f LOOP
+}
+
+teardown() {
+    echo -n "## teardown..."
+
+    test -n "$LOCAL_CLVMD" && {
+	kill "$LOCAL_CLVMD"
+	sleep .1
+	kill -9 "$LOCAL_CLVMD" || true
+    }
+
+    echo -n .
+
+    test -f LOCAL_DMEVENTD && kill -9 "$(cat LOCAL_DMEVENTD)"
+
+    echo -n .
+
+    teardown_devs
+
+    echo -n .
+
+    test -n "$TESTDIR" && {
+	cd $OLDPWD
+	rm -rf $TESTDIR || echo BLA
+    }
+
+    echo "ok"
+}
+
+make_ioerror() {
+	echo 0 10000000 error | dmsetup create ioerror
+	ln -s $DM_DEV_DIR/mapper/ioerror $DM_DEV_DIR/ioerror
+}
+
+prepare_loop() {
+	size=$1
+	test -n "$size" || size=32
+
+        echo -n "## preparing loop device..."
+
+	# skip if prepare_scsi_debug_dev() was used
+	if [ -f "SCSI_DEBUG_DEV" -a -f "LOOP" ]; then
+                echo "(skipped)"
+		return 0
+	fi
+
+	test ! -e LOOP
+	test -n "$DM_DEV_DIR"
+
+	for i in 0 1 2 3 4 5 6 7; do
+		test -e $DM_DEV_DIR/loop$i || mknod $DM_DEV_DIR/loop$i b 7 $i
+	done
+
+        echo -n .
+
+	LOOPFILE="$PWD/test.img"
+	dd if=/dev/zero of="$LOOPFILE" bs=$((1024*1024)) count=0 seek=$(($size-1)) 2> /dev/null
+	if LOOP=`losetup -s -f "$LOOPFILE" 2>/dev/null`; then
+		:
+	elif LOOP=`losetup -f` && losetup $LOOP "$LOOPFILE"; then
+		# no -s support
+		:
+	else
+		# no -f support 
+		# 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=$DM_DEV_DIR/loop$slash$i
+				! losetup $dev >/dev/null 2>&1 || continue
+				# got a free
+				losetup "$dev" "$LOOPFILE"
+				LOOP=$dev
+				break
+			done
+			if [ -n "$LOOP" ]; then 
+				break
+			fi
+		done
+	fi
+	test -n "$LOOP" # confirm or fail
+        echo "$LOOP" > LOOP
+        echo "ok ($LOOP)"
+}
+
+# A drop-in replacement for prepare_loop() that uses scsi_debug to create
+# a ramdisk-based SCSI device upon which all LVM devices will be created
+# - scripts must take care not to use a DEV_SIZE that will enduce OOM-killer
+prepare_scsi_debug_dev()
+{
+    local DEV_SIZE="$1"
+    shift
+    local SCSI_DEBUG_PARAMS="$@"
+
+    test -f "SCSI_DEBUG_DEV" && return 0
+    test -z "$LOOP"
+    test -n "$DM_DEV_DIR"
+
+    # Skip test if awk isn't available (required for get_sd_devs_)
+    which awk || exit 200
+
+    # Skip test if scsi_debug module is unavailable or is already in use
+    modprobe --dry-run scsi_debug || exit 200
+    lsmod | grep -q scsi_debug && exit 200
+
+    # Create the scsi_debug device and determine the new scsi device's name
+    # NOTE: it will _never_ make sense to pass num_tgts param;
+    # last param wins.. so num_tgts=1 is imposed
+    modprobe scsi_debug dev_size_mb=$DEV_SIZE $SCSI_DEBUG_PARAMS num_tgts=1 || exit 200
+    sleep 2 # allow for async Linux SCSI device registration
+
+    local DEBUG_DEV=/dev/$(grep -H scsi_debug /sys/block/*/device/model | cut -f4 -d /)
+    [ -b $DEBUG_DEV ] || exit 1 # should not happen
+
+    # Create symlink to scsi_debug device in $DM_DEV_DIR
+    SCSI_DEBUG_DEV="$DM_DEV_DIR/$(basename $DEBUG_DEV)"
+    echo "$SCSI_DEBUG_DEV" > SCSI_DEBUG_DEV
+    echo "$SCSI_DEBUG_DEV" > LOOP
+    # Setting $LOOP provides means for prepare_devs() override
+    ln -snf $DEBUG_DEV $SCSI_DEBUG_DEV
+    return 0
+}
+
+cleanup_scsi_debug_dev()
+{
+    aux teardown_devs
+    rm -f SCSI_DEBUG_DEV
+    rm -f LOOP
+}
+
+prepare_devs() {
+	local n="$1"
+	test -z "$n" && n=3
+	local devsize="$2"
+	test -z "$devsize" && devsize=34
+	local pvname="$3"
+	test -z "$pvname" && pvname="pv"
+
+	prepare_loop $(($n*$devsize))
+        echo -n "## preparing $n devices..."
+
+	if ! loopsz=`blockdev --getsz $LOOP 2>/dev/null`; then
+  		loopsz=`blockdev --getsize $LOOP 2>/dev/null`
+	fi
+
+	local size=$(($loopsz/$n))
+
+	init_udev_transaction
+	for i in `seq 1 $n`; do
+		local name="${PREFIX}$pvname$i"
+		local dev="$DM_DEV_DIR/mapper/$name"
+		devs="$devs $dev"
+		echo 0 $size linear $LOOP $((($i-1)*$size)) > $name.table
+		dmsetup create $name $name.table
+	done
+	finish_udev_transaction
+
+	#for i in `seq 1 $n`; do
+	#	local name="${PREFIX}$pvname$i"
+	#	dmsetup info -c $name
+	#done
+	#for i in `seq 1 $n`; do
+	#	local name="${PREFIX}$pvname$i"
+	#	dmsetup table $name
+	#done
+
+        echo $devs > DEVICES
+        echo "ok"
+}
+
+disable_dev() {
+
+	init_udev_transaction
+	for dev in "$@"; do
+        # first we make the device inaccessible
+		echo 0 10000000 error | dmsetup load $dev
+		dmsetup resume $dev
+        # now let's try to get rid of it if it's unused
+        #dmsetup remove $dev
+	done
+	finish_udev_transaction
+
+}
+
+enable_dev() {
+
+	init_udev_transaction
+	for dev in "$@"; do
+		local name=`echo "$dev" | sed -e 's,.*/,,'`
+		dmsetup create $name $name.table || dmsetup load $name $name.table
+		dmsetup resume $dev
+	done
+	finish_udev_transaction
+}
+
+backup_dev() {
+	for dev in "$@"; do
+		dd if=$dev of=$dev.backup bs=1024
+	done
+}
+
+restore_dev() {
+	for dev in "$@"; do
+		test -e $dev.backup || {
+			echo "Internal error: $dev not backed up, can't restore!"
+			exit 1
+		}
+		dd of=$dev if=$dev.backup bs=1024
+	done
+}
+
+prepare_pvs() {
+	prepare_devs "$@"
+	pvcreate -ff $devs
+}
+
+prepare_vg() {
+	vgremove -ff $vg >& /dev/null || true
+	teardown_devs
+
+	prepare_pvs "$@"
+	vgcreate -c n $vg $devs
+	#pvs -v
+}
+
+lvmconf() {
+    if test -z "$LVM_TEST_LOCKING"; then LVM_TEST_LOCKING=1; fi
+    test -f CONFIG_VALUES || {
+        cat > CONFIG_VALUES <<-EOF
+devices/dir = "$DM_DEV_DIR"
+devices/scan = "$DM_DEV_DIR"
+devices/filter = [ "a/dev\/mirror/", "a/dev\/mapper\/.*pv[0-9_]*$/", "r/.*/" ]
+devices/cache_dir = "$TESTDIR/etc"
+devices/sysfs_scan = 0
+devices/default_data_alignment = 1
+log/syslog = 0
+log/indent = 1
+log/level = 9
+log/file = "$TESTDIR/debug.log"
+log/overwrite = 1
+log/activation = 1
+backup/backup = 0
+backup/archive = 0
+global/abort_on_internal_errors = 1
+global/library_dir = "$TESTDIR/lib"
+global/locking_dir = "$TESTDIR/var/lock/lvm"
+global/locking_type=$LVM_TEST_LOCKING
+global/si_unit_consistency = 1
+global/fallback_to_local_locking = 0
+activation/udev_sync = 1
+activation/udev_rules = 1
+activation/polling_interval = 0
+activation/snapshot_autoextend_percent = 50
+activation/snapshot_autoextend_threshold = 50
+EOF
+    }
+
+    for v in "$@"; do
+        echo "$v" >> CONFIG_VALUES
+    done
+
+    rm -f CONFIG
+    for s in `cat CONFIG_VALUES | cut -f1 -d/ | sort | uniq`; do
+        echo "$s {" >> CONFIG
+        for k in `grep ^$s/ CONFIG_VALUES | cut -f1 -d= | sed -e 's, *$,,' | sort | uniq`; do
+            grep "^$k" CONFIG_VALUES | tail -n 1 | sed -e "s,^$s/,    ," >> CONFIG
+        done
+        echo "}" >> CONFIG
+        echo >> CONFIG
+    done
+    mv -f CONFIG $TESTDIR/etc/lvm.conf
+}
+
+apitest() {
+	t=$1
+        shift
+	test -x $abs_top_builddir/test/api/$t.t || {
+            touch SKIP_THIS_TEST
+            exit 200
+        }
+	$abs_top_builddir/test/api/$t.t "$@"
+}
+
+api() {
+	test -x $abs_top_builddir/test/api/wrapper || exit 200
+	$abs_top_builddir/test/api/wrapper "$@"
+}
+
+test -f DEVICES && devs=$(cat DEVICES)
+test -f LOOP && LOOP=$(cat LOOP)
+
+"$@"
/cvs/lvm2/LVM2/test/lib/check.sh,v  -->  standard output
revision 1.1
--- LVM2/test/lib/check.sh
+++ -	2011-01-05 00:16:39.767535000 +0000
@@ -0,0 +1,281 @@
+#!/bin/bash
+
+# Copyright (C) 2010 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
+
+# check.sh: assert various things about volumes
+
+# USAGE
+#  check linear VG LV
+#  check lv_on VG LV PV
+
+#  check mirror VG LV [LOGDEV|core]
+#  check mirror_nonredundant VG LV
+#  check mirror_legs VG LV N
+#  check mirror_images_on VG LV DEV [DEV...]
+
+# ...
+
+set -e -o pipefail
+
+trim()
+{
+    trimmed=${1%% }
+    trimmed=${trimmed## }
+
+    echo "$trimmed"
+}
+
+lvl() {
+	lvs -a --noheadings "$@"
+}
+
+lvdevices() {
+	lvl -odevices "$@" | sed 's/([^)]*)//g; s/,/ /g'
+}
+
+mirror_images_redundant()
+{
+  vg=$1
+  lv=$vg/$2
+
+  lvs -a $vg -o+devices
+  for i in `lvdevices $lv`; do
+	  echo "# $i:"
+	  lvdevices $vg/$i | sort | uniq
+  done > check.tmp.all
+
+  (grep -v ^# check.tmp.all || true) | sort | uniq -d > check.tmp
+
+  test "`cat check.tmp | wc -l`" -eq 0 || {
+	  echo "mirror images of $lv expected redundant, but are not:"
+	  cat check.tmp.all
+	  exit 1
+  }
+}
+
+mirror_images_on() {
+	vg=$1
+	lv=$2
+
+	shift 2
+
+	for i in `lvdevices $lv`; do
+		lv_on $vg $lv $1
+		shift
+	done
+}
+
+lv_on()
+{
+	lv="$1/$2"
+	lvdevices $lv | grep -F "$3" || {
+		echo "LV $lv expected on $3 but is not:" >&2
+		lvdevices $lv >&2
+		exit 1
+	}
+	test `lvdevices $lv | grep -vF "$3" | wc -l` -eq 0 || {
+		echo "LV $lv contains unexpected devices:" >&2
+		lvdevices $lv >&2
+		exit 1
+	}
+}
+
+mirror_log_on()
+{
+	vg="$1"
+	lv="$2"
+	where="$3"
+	if test "$where" = "core"; then
+		lvl -omirror_log "$vg/$lv" | not grep mlog
+	else
+		lv_on $vg "${lv}_mlog" "$where"
+	fi
+}
+
+lv_is_contiguous()
+{
+	test `lvl --segments $1 | wc -l` -eq 1 || {
+		echo "LV $1 expected to be contiguous, but is not:"
+		lvl --segments $1
+		exit 1
+	}
+}
+
+lv_is_clung()
+{
+	test `lvdevices $1 | sort | uniq | wc -l` -eq 1 || {
+		echo "LV $1 expected to be clung, but is not:"
+		lvdevices $! | sort | uniq
+		exit 1
+	}
+}
+
+mirror_images_contiguous()
+{
+	for i in `lvdevices $1/$2`; do
+		lv_is_contiguous $1/$i
+	done
+}
+
+mirror_images_clung()
+{
+	for i in `lvdevices $1/$2`; do
+		lv_is_clung $1/$i
+	done
+}
+
+mirror() {
+	mirror_nonredundant "$@"
+	mirror_images_redundant "$1" "$2"
+}
+
+mirror_nonredundant() {
+	lv="$1/$2"
+	lvs -oattr "$lv" | grep -q "^ *m.....$" || {
+		echo "$lv expected a mirror, but is not:"
+		lvs -a $lv
+		exit 1
+	}
+	if test -n "$3"; then mirror_log_on "$1" "$2" "$3"; fi
+}
+
+mirror_legs() {
+	lv="$1/$2"
+	expect="$3"
+	lvdevices "$lv"
+	real=`lvdevices "$lv" | wc -w`
+	test "$expect" = "$real"
+}
+
+mirror_no_temporaries()
+{
+	vg=$1
+	lv=$2
+	lvl -oname $vg | grep $lv | not grep "tmp" || {
+		echo "$lv has temporary mirror images unexpectedly:"
+		lvl $vg | grep $lv
+		exit 1
+	}
+}
+
+linear() {
+	lv="$1/$2"
+	lvl -ostripes "$lv" | grep -q "1" || {
+		echo "$lv expected linear, but is not:"
+		lvl "$lv" -o+devices
+		exit 1
+	}
+}
+
+active() {
+	lv="$1/$2"
+	lvl -oattr "$lv" 2> /dev/null | grep -q "^ *....a.$" || {
+		echo "$lv expected active, but lvs says it's not:"
+		lvl "$lv" -o+devices 2>/dev/null
+		exit 1
+	}
+	dmsetup table | egrep -q "$1-$2: *[^ ]+" || {
+		echo "$lv expected active, lvs thinks it is but there are no mappings!"
+		dmsetup table | grep $1-$2:
+		exit 1
+	}
+}
+
+inactive() {
+	lv="$1/$2"
+	lvl -oattr "$lv" 2> /dev/null | grep -q '^ *....[-isd].$' || {
+		echo "$lv expected inactive, but lvs says it's not:"
+		lvl "$lv" -o+devices 2>/dev/null
+		exit 1
+	}
+	dmsetup table | not egrep -q "$1-$2: *[^ ]+" || {
+		echo "$lv expected inactive, lvs thinks it is but there are mappings!"
+		dmsetup table | grep $1-$2:
+		exit 1
+	}
+}
+
+pv_field()
+{
+    actual=$(trim $(pvs --noheadings $4 -o $2 $1))
+
+    test "$actual" = "$3" || {
+        echo "pv_field: PV=$1, field=$2, actual=$actual, expected=$3"
+        exit 1
+    }
+}
+
+vg_field()
+{
+    actual=$(trim $(vgs --noheadings $4 -o $2 $1))
+    test "$actual" = "$3" || {
+        echo "vg_field: vg=$1, field=$2, actual=$actual, expected=$3"
+        exit 1
+    }
+}
+
+lv_field()
+{
+    actual=$(trim $(lvs --noheadings $4 -o $2 $1))
+    test "$actual" = "$3" || {
+        echo "lv_field: lv=$1, field=$2, actual=$actual, expected=$3"
+        exit 1
+    }
+}
+
+compare_fields()
+{
+    local cmd1=$1;
+    local obj1=$2;
+    local field1=$3;
+    local cmd2=$4;
+    local obj2=$5;
+    local field2=$6;
+    local val1;
+    local val2;
+
+    val1=$($cmd1 --noheadings -o $field1 $obj1)
+    val2=$($cmd2 --noheadings -o $field2 $obj2)
+    test "$val1" = "$val2" || {
+        echo "compare_fields $obj1($field1): $val1 $obj2($field2): $val2"
+        exit 1
+    }
+}
+
+compare_vg_field()
+{
+    local vg1=$1;
+    local vg2=$2;
+    local field=$3;
+
+    val1=$(vgs --noheadings -o $field $vg1)
+    val2=$(vgs --noheadings -o $field $vg2)
+    test "$val1" = "$val2" || {
+        echo "compare_vg_field: $vg1: $val1, $vg2: $val2"
+        exit 1
+    }
+}
+
+pvlv_counts()
+{
+	local local_vg=$1
+	local num_pvs=$2
+	local num_lvs=$3
+	local num_snaps=$4
+
+	lvs -a -o+devices $local_vg
+
+	vg_field $local_vg pv_count $num_pvs
+	vg_field $local_vg lv_count $num_lvs
+	vg_field $local_vg snap_count $num_snaps
+}
+
+"$@"
/cvs/lvm2/LVM2/test/lib/get.sh,v  -->  standard output
revision 1.1
--- LVM2/test/lib/get.sh
+++ -	2011-01-05 00:16:39.910727000 +0000
@@ -0,0 +1,23 @@
+# Copyright (C) 2011 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
+
+pv_field() {
+	pvs --noheading -o $2 $1 | sed 's/^ *//'
+}
+
+vg_field() {
+	vgs --noheading -o $2 $1 | sed 's/^ *//'
+}
+
+lv_field() {
+	lvs --noheading -o $2 $1 | sed 's/^ *//'
+}
+
+"$@"
/cvs/lvm2/LVM2/test/lib/harness.c,v  -->  standard output
revision 1.1
--- LVM2/test/lib/harness.c
+++ -	2011-01-05 00:16:40.027256000 +0000
@@ -0,0 +1,284 @@
+/*
+ * Copyright (C) 2010 Red Hat, Inc. All rights reserved.
+ *
+ * This file is part of LVM2.
+ *
+ * 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
+ */
+
+#include <fcntl.h>
+#include <string.h>
+#include <stdio.h>
+#include <sys/socket.h>
+#include <sys/wait.h>
+#include <unistd.h>
+#include <stdlib.h>
+
+pid_t pid;
+int fds[2];
+
+#define MAX 1024
+
+struct stats {
+	int nfailed;
+	int nskipped;
+	int npassed;
+	int nwarned;
+	int status[MAX];
+};
+
+struct stats s;
+
+char *readbuf = NULL;
+int readbuf_sz = 0, readbuf_used = 0;
+
+int die = 0;
+int verbose = 0;
+int verbose_off = 0;
+
+struct subst {
+        char *key;
+        char *value;
+};
+
+struct subst subst[2];
+
+char *TESTDIR = NULL;
+char *PREFIX = NULL;
+
+#define PASSED 0
+#define SKIPPED 1
+#define FAILED 2
+#define WARNED 3
+
+void handler( int s ) {
+	signal( s, SIG_DFL );
+	kill( pid, s );
+	die = s;
+}
+
+int outline(char *buf, int start, int force) {
+        char *from = buf + start;
+        char *next = strchr(buf + start, '\n');
+
+        if (!next && !force) /* not a complete line yet... */
+                return start;
+
+        if (!next)
+                next = from + strlen(from);
+        else
+                ++next;
+
+        if (!strncmp(from, "@TESTDIR=", 9)) {
+                subst[0].key = "@TESTDIR@";
+                subst[0].value = strndup(from + 9, next - from - 9 - 1);
+        } else if (!strncmp(from, "@PREFIX=", 8)) {
+                subst[1].key = "@PREFIX@";
+                subst[1].value = strndup(from + 8, next - from - 8 - 1);
+        } else {
+                char *line = strndup(from, next - from);
+                char *a = line, *b;
+                do {
+                        b = line + strlen(line);
+                        int idx = -1;
+                        int i;
+                        for ( i = 0; i < 2; ++i ) {
+                                if (subst[i].key) {
+                                        // printf("trying: %s -> %s\n", subst[i].value, subst[i].key);
+                                        char *stop = strstr(a, subst[i].value);
+                                        if (stop && stop < b) {
+                                                idx = i;
+                                                b = stop;
+                                        }
+                                }
+                        }
+                        fwrite(a, 1, b - a, stdout);
+                        a = b;
+
+                        if ( idx >= 0 ) {
+                                fprintf(stdout, "%s", subst[idx].key);
+                                a += strlen(subst[idx].value);
+                        }
+                } while (b < line + strlen(line));
+                free(line);
+        }
+
+        return next - buf + (force ? 0 : 1);
+}
+
+void dump() {
+        int counter = 0;
+
+        while ( counter < readbuf_used )
+                counter = outline( readbuf, counter, 1 );
+}
+
+void clear() {
+	readbuf_used = 0;
+}
+
+void drain() {
+	int sz;
+	char buf[2048];
+        memset(buf, 0, 2048);
+
+	while (1) {
+		sz = read(fds[1], buf, 2047);
+		if (verbose)
+			write(1, buf, sz);
+		if (sz <= 0)
+			return;
+		if (readbuf_used + sz >= readbuf_sz) {
+			readbuf_sz = readbuf_sz ? 2 * readbuf_sz : 4096;
+			readbuf = realloc(readbuf, readbuf_sz);
+		}
+		if (!readbuf)
+			exit(205);
+		memcpy(readbuf + readbuf_used, buf, sz);
+		readbuf_used += sz;
+		readbuf[readbuf_used] = 0;
+	}
+}
+
+void passed(int i, char *f) {
+	if (strstr(readbuf, "TEST WARNING")) {
+		++s.nwarned;
+		s.status[i] = WARNED;
+		printf("warnings\n");
+	} else {
+		++ s.npassed;
+		s.status[i] = PASSED;
+		printf("passed.\n");
+	}
+}
+
+void skipped(int i, char *f) {
+	++ s.nskipped;
+	s.status[i] = SKIPPED;
+	printf("skipped.\n");
+}
+
+void failed(int i, char *f, int st) {
+	++ s.nfailed;
+	s.status[i] = FAILED;
+	if(die == 2) {
+		printf("interrupted.\n");
+		return;
+	}
+	printf("FAILED.\n");
+	printf("-- FAILED %s ------------------------------------\n", f);
+	dump();
+	printf("-- FAILED %s (end) ------------------------------\n", f);
+}
+
+void run(int i, char *f) {
+	pid = fork();
+	if (pid < 0) {
+		perror("Fork failed.");
+		exit(201);
+	} else if (pid == 0) {
+		close(0);
+		dup2(fds[0], 1);
+		dup2(fds[0], 2);
+                close(fds[0]);
+                close(fds[1]);
+		execlp("bash", "bash", f, NULL);
+		perror("execlp");
+		fflush(stderr);
+		_exit(202);
+	} else {
+		char buf[128];
+		snprintf(buf, 128, "%s ...", f);
+		buf[127] = 0;
+		printf("Running %-40s ", buf);
+		fflush(stdout);
+		int st, w;
+		while ((w = waitpid(pid, &st, WNOHANG)) == 0) {
+			drain();
+			usleep(20000);
+		}
+		if (w != pid) {
+			perror("waitpid");
+			exit(206);
+		}
+		drain();
+		if (WIFEXITED(st)) {
+			if (WEXITSTATUS(st) == 0) {
+				passed(i, f);
+			} else if (WEXITSTATUS(st) == 200) {
+				skipped(i, f);
+			} else {
+				failed(i, f, st);
+			}
+		} else {
+			failed(i, f, st);
+		}
+		clear();
+	}
+}
+
+int main(int argc, char **argv) {
+	int i;
+
+	if (argc >= MAX) {
+		fprintf(stderr, "Sorry, my head exploded. Please increase MAX.\n");
+		exit(1);
+	}
+
+	s.nwarned = s.nfailed = s.npassed = s.nskipped = 0;
+
+	char *be_verbose = getenv("VERBOSE");
+	if (be_verbose && atoi(be_verbose))
+		verbose = 1; // XXX
+
+	if (socketpair(PF_UNIX, SOCK_STREAM, 0, fds)) {
+		perror("socketpair");
+		return 201;
+	}
+
+        if ( fcntl( fds[1], F_SETFL, O_NONBLOCK ) == -1 ) {
+		perror("fcntl on socket");
+		return 202;
+	}
+
+	/* set up signal handlers */
+        for (i = 0; i <= 32; ++i) {
+            if (i == SIGCHLD || i == SIGWINCH || i == SIGURG)
+                continue;
+            signal(i, handler);
+        }
+
+	/* run the tests */
+	for (i = 1; i < argc; ++ i) {
+		run(i, argv[i]);
+		if (die)
+			break;
+	}
+
+	printf("\n## %d tests: %d OK, %d warnings, %d failures; %d skipped\n",
+	       s.nwarned + s.npassed + s.nfailed + s.nskipped,
+	       s.npassed, s.nwarned, s.nfailed, s.nskipped);
+
+	/* print out a summary */
+	if (s.nfailed || s.nskipped) {
+		for (i = 1; i < argc; ++ i) {
+			switch (s.status[i]) {
+			case FAILED:
+				printf("FAILED: %s\n", argv[i]);
+				break;
+			case SKIPPED:
+				printf("skipped: %s\n", argv[i]);
+				break;
+			}
+		}
+		printf("\n");
+		return s.nfailed > 0 || die;
+	}
+	return die;
+}
/cvs/lvm2/LVM2/test/lib/lvm-wrapper.sh,v  -->  standard output
revision 1.1
--- LVM2/test/lib/lvm-wrapper.sh
+++ -	2011-01-05 00:16:40.332200000 +0000
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+. lib/paths
+cmd=$(echo ./$0|sed "s,.*/,,")
+
+test "$cmd" = lvm && exec "$abs_top_builddir/tools/lvm" "$@"
+exec "$abs_top_builddir/tools/lvm" "$cmd" "$@"
/cvs/lvm2/LVM2/test/lib/not.c,v  -->  standard output
revision 1.1
--- LVM2/test/lib/not.c
+++ -	2011-01-05 00:16:40.553031000 +0000
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2010 Red Hat, Inc. All rights reserved.
+ *
+ * This file is part of LVM2.
+ *
+ * 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
+ */
+
+#include <unistd.h>
+#include <stdio.h>
+#include <stdarg.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+
+int finished(const char *cmd, int status) {
+	if (!strcmp(cmd, "not"))
+		return !status;
+	if (!strcmp(cmd, "should")) {
+		if (status)
+			fprintf(stderr, "TEST WARNING: Ignoring command failure.\n");
+		return 0;
+	}
+	return 6;
+}
+
+int main(int args, char **argv) {
+	pid_t pid;
+	int status;
+	int FAILURE = 6;
+
+	if (args < 2) {
+		fprintf(stderr, "Need args\n");
+		return FAILURE;
+	}
+
+	pid = fork();
+	if (pid == -1) {
+		fprintf(stderr, "Could not fork\n");
+		return FAILURE;
+	} else if (pid == 0) { 	/* child */
+		execvp(argv[1], &argv[1]);
+		/* should not be accessible */
+		return FAILURE;
+	} else {		/* parent */
+		waitpid(pid, &status, 0);
+		if (!WIFEXITED(status)) {
+			if (WIFSIGNALED(status))
+				fprintf(stderr,
+					"Process %d died of signal %d.\n",
+					pid, WTERMSIG(status));
+			/* did not exit correctly */
+			return FAILURE;
+		}
+
+		return finished(argv[0], WEXITSTATUS(status));
+	}
+	/* not accessible */
+	return FAILURE;
+}
/cvs/lvm2/LVM2/test/lib/test.sh,v  -->  standard output
revision 1.1
--- LVM2/test/lib/test.sh
+++ -	2011-01-05 00:16:40.981486000 +0000
@@ -0,0 +1,55 @@
+# Copyright (C) 2011 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
+
+# sanitize the environment
+LANG=C
+LC_ALL=C
+TZ=UTC
+
+unset CDPATH
+
+# grab some common utilities
+. lib/utils
+
+OLDPWD="`pwd`"
+PREFIX="LVMTEST$$"
+
+TESTDIR=$($abs_srcdir/mkdtemp ${LVM_TEST_DIR-$(pwd)} $PREFIX.XXXXXXXXXX) \
+	|| { echo "failed to create temporary directory in ${LVM_TEST_DIR-$(pwd)}"; exit 1; }
+
+export PREFIX
+export TESTDIR
+
+trap 'set +vx; STACKTRACE; set -vx' ERR
+trap 'aux teardown' EXIT # don't forget to clean up
+
+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
+
+cd $TESTDIR
+
+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
+
+ln -s $abs_top_builddir/test/lib/* $TESTDIR/lib
+
+# re-do the utils now that we have TESTDIR/PREFIX/...
+. lib/utils
+
+set -eE -o pipefail
+aux lvmconf
+aux prepare_clvmd
+echo "@TESTDIR=$TESTDIR"
+echo "@PREFIX=$PREFIX"
+
+set -vx
/cvs/lvm2/LVM2/test/lib/utils.sh,v  -->  standard output
revision 1.1
--- LVM2/test/lib/utils.sh
+++ -	2011-01-05 00:16:41.135555000 +0000
@@ -0,0 +1,80 @@
+# Copyright (C) 2011 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
+
+set -e
+
+STACKTRACE() {
+    trap - ERR;
+    i=0;
+
+    while FUNC=${FUNCNAME[$i]}; test "$FUNC" != "main"; do 
+	echo "## $i ${FUNC}() called from ${BASH_SOURCE[$i]}:${BASH_LINENO[$i]}"
+	i=$(($i + 1));
+    done
+
+    # Get backtraces from coredumps
+    if which gdb >& /dev/null; then
+	echo bt full > gdb_commands.txt
+	echo l >> gdb_commands.txt
+	echo quit >> gdb_commands.txt
+	for core in `ls core* 2>/dev/null`; do
+	    bin=$(gdb -batch -c $core 2>&1 | grep "generated by" | \
+		sed -e "s,.*generated by \`\([^ ']*\).*,\1,")
+	    gdb -batch -c $core -x gdb_commands.txt `which $bin`
+	done
+    fi
+
+    test -z "$LVM_TEST_NODEBUG" && test -f debug.log && {
+	sed -e "s,^,## DEBUG: ,;s,$top_srcdir/\?,," < debug.log
+    }
+
+    test -f SKIP_THIS_TEST && exit 200
+}
+
+init_udev_transaction() {
+    if test "$DM_UDEV_SYNCHRONISATION" = 1; then
+	COOKIE=$(dmsetup udevcreatecookie)
+	# Cookie is not generated if udev is not running!
+	if test -n "$COOKIE"; then
+	    export DM_UDEV_COOKIE=$COOKIE
+	fi
+    fi
+}
+
+finish_udev_transaction() {
+    if test "$DM_UDEV_SYNCHRONISATION" = 1 -a -n "$DM_UDEV_COOKIE"; then
+	dmsetup udevreleasecookie
+	unset DM_UDEV_COOKIE
+    fi
+}
+
+. lib/paths || { echo >&2 you must run make first; exit 1; }
+
+PATH=$abs_top_builddir/test/lib:$PATH
+LIBDIRS="libdm tools liblvm daemons/dmeventd daemons/dmeventd/plugins/lvm2 \
+         daemons/dmeventd/plugins/mirror daemons/dmeventd/plugins/snapshot"
+
+for d in $LIBDIRS; do
+    LD_LIBRARY_PATH=$abs_top_builddir/$d:$LD_LIBRARY_PATH
+done
+export LD_LIBRARY_PATH
+
+if test -n "$PREFIX"; then
+    vg=${PREFIX}vg
+    lv=LV
+
+    for i in `seq 1 16`; do
+        name="${PREFIX}pv$i"
+        dev="$DM_DEV_DIR/mapper/$name"
+        eval "dev$i=$dev"
+        eval "lv$i=LV$i"
+        eval "vg$i=${PREFIX}vg$i"
+    done
+fi



                 reply	other threads:[~2011-01-05  0:16 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=20110105001641.3640.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.