@echo " LVM_TEST_CACHE_REPAIR_CMD Command for cache_repair [$(LVM_TEST_CACHE_REPAIR_CMD)]."
@echo " LVM_TEST_CACHE_RESTORE_CMD Command for cache_restore [$(LVM_TEST_CACHE_RESTORE_CMD)]."
@echo " LVM_TEST_UNLIMITED Set to get unlimited test log (>32MB)"
+ @echo " LVM_TEST_DEVICE_LIST File path listing real devs that tests can use."
@echo " LVM_VALGRIND Enable valgrind testing, execs $$"VALGRIND.
@echo " LVM_VALGRIND_DMEVENTD Enable valgrind testing of dmeventd (1)."
@echo " LVM_VALGRIND_LVMPOLLD Enable valgrind testing of lvmpolld (1)."
touch RAMDISK
}
+prepare_real_devs() {
+ aux lvmconf 'devices/scan = "/dev"'
+
+ touch REAL_DEVICES
+
+ if test -n "$LVM_TEST_DEVICE_LIST"; then
+ local count=0
+ while read path; do
+ REAL_DEVICES[$count]=$path
+ count=$(( count + 1 ))
+ aux extend_filter "a|$path|"
+ dd if=/dev/zero of="$path" bs=32k count=1
+ wipefs -a "$path" 2>/dev/null || true
+ done < $LVM_TEST_DEVICE_LIST
+ fi
+ printf "%s\\n" "${REAL_DEVICES[@]}" > REAL_DEVICES
+}
+
# 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
echo "ok"
}
-
common_dev_() {
local tgtype=$1
local dev=$2
exit 200
}
+get_real_devs() {
+ REAL_DEVICES=( $(<REAL_DEVICES) )
+ export REAL_DEVICES
+}
+
get_devs() {
local IFS=$IFS_NL
DEVICES=( $(<DEVICES) )
lv=LV
for i in {1..16}; do
- eval "dev$i=\"$DM_DEV_DIR/mapper/${PREFIX}pv$i\""
eval "lv$i=\"LV$i\""
eval "vg$i=\"${PREFIX}vg$i\""
done
+
+ if test -n "$LVM_TEST_DEVICE_LIST"; then
+ local count=0
+ while read path; do
+ count=$(( count + 1 ))
+ eval "dev$count=\"$path\""
+ done < $LVM_TEST_DEVICE_LIST
+ else
+ for i in {1..16}; do
+ eval "dev$i=\"$DM_DEV_DIR/mapper/${PREFIX}pv$i\""
+ done
+ fi
}
if test -z "${abs_top_builddir+varset}" && test -z "${installed_testsuite+varset}"; then
--- /dev/null
+#!/usr/bin/env bash
+
+# Copyright (C) 2020 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+test_description='hello world for user-defined device list'
+
+. lib/inittest
+
+aux prepare_real_devs
+
+echo "$dev1"
+
+pvcreate "$dev1"
+
+pvs "$dev1"
+
+pvremove "$dev1"
+
+vgcreate $vg "$dev1"
+
+lvcreate -l1 $vg
+
+vgchange -an $vg
+
+vgremove -ff $vg
+
+get_real_devs
+for d in "${REAL_DEVICES[@]}"; do
+ echo $d
+done
+