From c987c73cbe773dfa3b14b911ffc243137195bbb3 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sat, 29 Sep 2012 12:10:35 +0200 Subject: [PATCH 30/89] tests: clean up tests Use warn_ and $ME_ in place of warn and $ME; remove definitions of the latter two. Remove unused code. * tests/lvm-utils.sh: Remove file. All functions were either unused or duplicated/better in t-lvm.sh. * tests/Makefile.am (EXTRA_DIST): Remove it. * tests/t-local.sh (scsi_debug_setup_): Use echo 1>&2, not warn_, to emit to log file only, not console. The diagnostic it emitted (in verbose mode) was more "informational" than a warning. * tests/t9030-align-check.sh: Use warn_, not warn. * tests/t-lvm.sh: Likewise, and use fail_, not error (undefined!). * tests/t-lib-helpers.sh (device_mapper_required_): Use t-lvm.sh and an explicit lvm_init_root_dir_ in place of lvm-utils.sh. --- tests/Makefile.am | 2 +- tests/lvm-utils.sh | 208 --------------------------------------------- tests/t-lib-helpers.sh | 4 +- tests/t-local.sh | 2 +- tests/t-lvm.sh | 11 +-- tests/t9030-align-check.sh | 3 +- 6 files changed, 10 insertions(+), 220 deletions(-) delete mode 100644 tests/lvm-utils.sh diff --git a/tests/Makefile.am b/tests/Makefile.am index 96abecb..80d5525 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -74,7 +74,7 @@ TESTS = \ t9050-partition-table-types.sh EXTRA_DIST = \ - $(TESTS) lvm-utils.sh t-local.sh t-lvm.sh \ + $(TESTS) t-local.sh t-lvm.sh \ init.cfg init.sh t-lib-helpers.sh gpt-header-munge check_PROGRAMS = print-align print-max dup-clobber duplicate fs-resize diff --git a/tests/lvm-utils.sh b/tests/lvm-utils.sh deleted file mode 100644 index 456d265..0000000 --- a/tests/lvm-utils.sh +++ /dev/null @@ -1,208 +0,0 @@ -# Put lvm-related utilities here. -# This file is sourced from test infrastructure. - -# Copyright (C) 2007-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 - -export LVM_SUPPRESS_FD_WARNINGS=1 - -ME=$(basename "$0") -warn() { echo >&2 "$ME: $@"; } - -unsafe_losetup_() -{ - f=$1 - - test -n "$G_dev_" \ - || fail_ "Internal error: unsafe_losetup_ called before init_root_dir_" - - # Iterate through $G_dev_/loop{,/}{0,1,2,3,4,5,6,7,8,9} - for slash in '' /; do - for i in 0 1 2 3 4 5 6 7 8 9; do - dev=$G_dev_/loop$slash$i - losetup $dev > /dev/null 2>&1 && continue; - losetup "$dev" "$f" > /dev/null && { echo "$dev"; return 0; } - break - done - done - - return 1 -} - -loop_setup_() -{ - file=$1 - dd if=/dev/zero of="$file" bs=1M count=1 seek=1000 > /dev/null 2>&1 \ - || { warn "loop_setup_ failed: Unable to create tmp file $file"; return 1; } - - # NOTE: this requires a new enough version of losetup - dev=$(unsafe_losetup_ "$file") \ - || { warn "loop_setup_ failed: Unable to create loopback device"; return 1; } - - echo "$dev" - return 0; -} - -compare_two_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) -if test "$verbose" = "t" -then - echo "compare_two_fields_ $obj1($field1): $val1 $obj2($field2): $val2" -fi - test $val1 = $val2 -} - -compare_vg_field_() -{ - local vg1=$1; - local vg2=$2; - local field=$3; - local val1; - local val2; - - val1=$(vgs --noheadings -o $field $vg1) - val2=$(vgs --noheadings -o $field $vg2) -if test "$verbose" = "t" -then - echo "compare_vg_field_ VG1: $val1 VG2: $val2" -fi - test $val1 = $val2 -} - -check_vg_field_() -{ - local vg=$1; - local field=$2; - local expected=$3; - local actual; - - actual=$(vgs --noheadings -o $field $vg) -if test "$verbose" = "t" -then - echo "check_vg_field_ VG=$vg, field=$field, actual=$actual, expected=$expected" -fi - test $actual = $expected -} - -check_pv_field_() -{ - local pv=$1; - local field=$2; - local expected=$3; - local actual; - - actual=$(pvs --noheadings -o $field $pv) -if test "$verbose" = "t" -then - echo "check_pv_field_ PV=$pv, field=$field, actual=$actual, expected=$expected" -fi - test $actual = $expected -} - -check_lv_field_() -{ - local lv=$1; - local field=$2; - local expected=$3; - local actual; - - actual=$(lvs --noheadings -o $field $lv) -if test "$verbose" = "t" -then - echo "check_lv_field_ LV=$lv, field=$field, actual=$actual, expected=$expected" -fi - test $actual = $expected -} - -vg_validate_pvlv_counts_() -{ - local local_vg=$1 - local num_pvs=$2 - local num_lvs=$3 - local num_snaps=$4 - - check_vg_field_ $local_vg pv_count $num_pvs && - check_vg_field_ $local_vg lv_count $num_lvs && - check_vg_field_ $local_vg snap_count $num_snaps -} - -dmsetup_has_dm_devdir_support_() -{ - # Detect support for the envvar. If it's supported, the - # following command will fail with the expected diagnostic. - out=$(DM_DEV_DIR=j dmsetup version 2>&1) - test "$?:$out" = "1:Invalid DM_DEV_DIR envvar value." || - test "$?:$out" = "1:Invalid DM_DEV_DIR environment variable value." -} - -# set up private /dev and /etc -init_root_dir_() -{ - test -n "$test_dir_" \ - || fail_ "Internal error: called init_root_dir_ before" \ - "defining \$test_dir_" - - # Define these two globals. - G_root_=$test_dir_/root - G_dev_=$G_root_/dev - - export LVM_SYSTEM_DIR=$G_root_/etc - export DM_DEV_DIR=$G_dev_ - - # Only the first caller does anything. - mkdir -p $G_root_/etc $G_dev_ $G_dev_/mapper $G_root_/lib - for i in 0 1 2 3 4 5 6 7; do - mknod $G_root_/dev/loop$i b 7 $i - done - for i in $abs_top_builddir/dmeventd/mirror/*.so $abs_top_builddir/dmeventd/snapshot/*.so - do - # NOTE: This check is necessary because the loop above will give us the value - # "$abs_top_builddir/dmeventd/mirror/*.so" if no files ending in 'so' exist. - # This is the best way I could quickly determine to skip over this bogus value. - if [ -f $i ]; then - echo Setting up symlink from $i to $G_root_/lib - ln -s $i $G_root_/lib - fi - done - cat > $G_root_/etc/lvm.conf <<-EOF - devices { - dir = "$G_dev_" - scan = "$G_dev_" - filter = [ "a/loop/", "a/mirror/", "a/mapper/", "r/.*/" ] - cache_dir = "$G_root_/etc" - sysfs_scan = 0 - } - log { - verbose = $verboselevel - syslog = 0 - indent = 1 - } - backup { - backup = 0 - archive = 0 - } - global { - library_dir = "$G_root_/lib" - } -EOF -} - -init_root_dir_ diff --git a/tests/t-lib-helpers.sh b/tests/t-lib-helpers.sh index 4b3c122..6721003 100644 --- a/tests/t-lib-helpers.sh +++ b/tests/t-lib-helpers.sh @@ -395,6 +395,6 @@ wait_for_dev_to_disappear_() device_mapper_required_() { - . "$abs_top_srcdir/tests/lvm-utils.sh" \ - || fail_ "device mapper setup failed" + . "$abs_top_srcdir/tests/t-lvm.sh" + lvm_init_root_dir_ || fail_ "device mapper setup failed" } diff --git a/tests/t-local.sh b/tests/t-local.sh index dde1b8d..b40a5a0 100644 --- a/tests/t-local.sh +++ b/tests/t-local.sh @@ -100,7 +100,7 @@ scsi_debug_setup_() modprobe scsi_debug "$@" || { rm -f stamp; return 1; } scsi_debug_modprobe_succeeded_=1 test "$VERBOSE" = yes \ - && warn_ $ME_ modprobe scsi_debug succeeded + && echo $ME_ modprobe scsi_debug succeeded 1>&2 # Wait up to 2s (via .1s increments) for the list of devices to change. # Sleeping for a fraction of a second requires GNU sleep, so fall diff --git a/tests/t-lvm.sh b/tests/t-lvm.sh index b08f934..9cee155 100644 --- a/tests/t-lvm.sh +++ b/tests/t-lvm.sh @@ -1,7 +1,7 @@ # Put lvm-related utilities here. # This file is sourced from test infrastructure. -# Copyright (C) 2007, 2008, 2010 Red Hat, Inc. All rights reserved. +# Copyright (C) 2007-2012 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 @@ -13,15 +13,12 @@ export LVM_SUPPRESS_FD_WARNINGS=1 -ME=$(basename "$0") -warn() { echo >&2 "$ME: $@"; } - unsafe_losetup_() { f=$1 test -n "$G_dev_" \ - || error "Internal error: unsafe_losetup_ called before init_root_dir_" + || fail_ "Internal error: unsafe_losetup_ called before init_root_dir_" # Iterate through $G_dev_/loop{,/}{0,1,2,3,4,5,6,7,8,9} for slash in '' /; do @@ -40,11 +37,11 @@ loop_setup_() { file=$1 dd if=/dev/zero of="$file" bs=1M count=1 seek=1000 > /dev/null 2>&1 \ - || { warn "loop_setup_ failed: Unable to create tmp file $file"; return 1; } + || { warn_ "loop_setup_ failed: Unable to create tmp file $file"; return 1; } # NOTE: this requires a new enough version of losetup dev=$(unsafe_losetup_ "$file" 2>/dev/null) \ - || { warn "loop_setup_ failed: Unable to create loopback device"; return 1; } + || { warn_ "loop_setup_ failed: Unable to create loopback device"; return 1; } echo "$dev" return 0; diff --git a/tests/t9030-align-check.sh b/tests/t9030-align-check.sh index b3618a7..f0830f0 100644 --- a/tests/t9030-align-check.sh +++ b/tests/t9030-align-check.sh @@ -49,7 +49,8 @@ while :; do test $i = 70 && break # Wait up to 10s for the partition file to disappear. - wait_for_dev_to_disappear_ $p1 10 || { fail=1; warn $p1 failed to disappear; } + wait_for_dev_to_disappear_ $p1 10 \ + || { fail=1; warn_ $ME_ $p1 failed to disappear; } done Exit $fail -- 1.8.5.3