summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2021-08-18 16:23:48 -0500
committerDavid Teigland <teigland@redhat.com>2021-08-18 16:27:53 -0500
commit74d1317da027bbdb355cd699787a6c108e9dde32 (patch)
treea002392fa4d505949e04f80bf6c30873756b3ddc
parent96b777167c63eaf2e8ef1a2e7a92dc6c66cbcd6a (diff)
downloadlvm2-74d1317da027bbdb355cd699787a6c108e9dde32.tar.gz
tests: adjust for check_devicesfile
-rw-r--r--test/lib/aux.sh56
-rw-r--r--test/lib/inittest.sh2
-rw-r--r--test/shell/allow-mixed-block-sizes.sh1
-rw-r--r--test/shell/devicesfile-basic.sh87
-rw-r--r--test/shell/duplicate-pvs-md0.sh6
-rw-r--r--test/shell/hints.sh9
-rw-r--r--test/shell/integrity-blocksize.sh4
-rw-r--r--test/shell/losetup-partscan.sh2
-rw-r--r--test/shell/process-each-duplicate-pvs.sh10
-rw-r--r--test/shell/pv-duplicate-uuid.sh6
-rw-r--r--test/shell/pv-ext-flags.sh2
-rw-r--r--test/shell/pvcreate-restore.sh4
-rw-r--r--test/shell/pvremove-thin.sh3
-rw-r--r--test/shell/scan-lvs.sh3
-rw-r--r--test/shell/snapshot-remove-dmsetup.sh3
-rw-r--r--test/shell/snapshot-usage-exa.sh3
-rw-r--r--test/shell/snapshot-usage.sh2
-rw-r--r--test/shell/system_id.sh53
-rw-r--r--test/shell/vg-check-devs-used.sh2
-rw-r--r--test/shell/vgsplit-stacked.sh4
-rw-r--r--test/shell/writecache-cache-blocksize-2.sh1
21 files changed, 214 insertions, 49 deletions
diff --git a/test/lib/aux.sh b/test/lib/aux.sh
index bb189f466..67863d20b 100644
--- a/test/lib/aux.sh
+++ b/test/lib/aux.sh
@@ -1023,8 +1023,9 @@ prepare_devs() {
if test -n "$LVM_TEST_DEVICES_FILE"; then
mkdir -p "$TESTDIR/etc/lvm/devices" || true
rm "$TESTDIR/etc/lvm/devices/system.devices" || true
+ touch "$TESTDIR/etc/lvm/devices/system.devices"
for d in "${DEVICES[@]}"; do
- lvmdevices --adddev "$dev" || true
+ lvmdevices --adddev "$d" || true
done
fi
@@ -1342,9 +1343,19 @@ prepare_vg() {
vgcreate $SHARED -s 512K "$vg" "${DEVICES[@]}"
}
+extend_devices() {
+ test -z "$LVM_TEST_DEVICES_FILE" && return
+
+ for dev in "$@"; do
+ lvmdevices --adddev $dev
+ done
+}
+
extend_filter() {
local filter
+ test -n "$LVM_TEST_DEVICES_FILE" && return
+
filter=$(grep ^devices/global_filter CONFIG_VALUES | tail -n 1)
for rx in "$@"; do
filter=$(echo "$filter" | sed -e "s:\\[:[ \"$rx\", :")
@@ -1355,6 +1366,8 @@ extend_filter() {
extend_filter_md() {
local filter
+ test -n "$LVM_TEST_DEVICES_FILE" && return
+
filter=$(grep ^devices/global_filter CONFIG_VALUES | tail -n 1)
for rx in "$@"; do
filter=$(echo "$filter" | sed -e "s:\\[:[ \"$rx\", :")
@@ -1370,21 +1383,33 @@ extend_filter_LVMTEST() {
hide_dev() {
local filter
- filter=$(grep ^devices/global_filter CONFIG_VALUES | tail -n 1)
- for dev in "$@"; do
- filter=$(echo "$filter" | sed -e "s:\\[:[ \"r|$dev|\", :")
- done
- lvmconf "$filter"
+ if test -n "$LVM_TEST_DEVICES_FILE"; then
+ for dev in "$@"; do
+ lvmdevices --deldev $dev
+ done
+ else
+ filter=$(grep ^devices/global_filter CONFIG_VALUES | tail -n 1)
+ for dev in "$@"; do
+ filter=$(echo "$filter" | sed -e "s:\\[:[ \"r|$dev|\", :")
+ done
+ lvmconf "$filter"
+ fi
}
unhide_dev() {
local filter
- filter=$(grep ^devices/global_filter CONFIG_VALUES | tail -n 1)
- for dev in "$@"; do
- filter=$(echo "$filter" | sed -e "s:\"r|$dev|\", ::")
- done
- lvmconf "$filter"
+ if test -n "$LVM_TEST_DEVICES_FILE"; then
+ for dev in "$@"; do
+ lvmdevices -y --adddev $dev
+ done
+ else
+ filter=$(grep ^devices/global_filter CONFIG_VALUES | tail -n 1)
+ for dev in "$@"; do
+ filter=$(echo "$filter" | sed -e "s:\"r|$dev|\", ::")
+ done
+ lvmconf "$filter"
+ fi
}
mkdev_md5sum() {
@@ -1433,8 +1458,6 @@ backup/backup = 0
devices/cache_dir = "$TESTDIR/etc"
devices/default_data_alignment = 1
devices/dir = "$DM_DEV_DIR"
-devices/filter = "a|.*|"
-devices/global_filter = [ "a|$DM_DEV_DIR/mapper/${PREFIX}.*pv[0-9_]*$|", "r|.*|" ]
devices/md_component_detection = 0
devices/scan = "$DM_DEV_DIR"
devices/sysfs_scan = 1
@@ -1478,6 +1501,13 @@ EOF
}
}
+ test "$LVM_TEST_DEVICES_FILE" -eq 1 || {
+ cat >> "$config_values" <<-EOF
+devices/filter = "a|.*|"
+devices/global_filter = [ "a|$DM_DEV_DIR/mapper/${PREFIX}.*pv[0-9_]*$|", "r|.*|" ]
+EOF
+ }
+
# append all parameters (avoid adding empty \n)
local v
test $# -gt 0 && printf "%s\\n" "$@" >> "$config_values"
diff --git a/test/lib/inittest.sh b/test/lib/inittest.sh
index 4ca8ac59e..9f2713062 100644
--- a/test/lib/inittest.sh
+++ b/test/lib/inittest.sh
@@ -63,6 +63,8 @@ test -n "$SKIP_WITH_LVMPOLLD" && test -n "$LVM_TEST_LVMPOLLD" && test -z "$LVM_T
test -n "$SKIP_WITH_LVMLOCKD" && test -n "$LVM_TEST_LVMLOCKD" && initskip
+test -n "$SKIP_WITH_DEVICES_FILE" && test -n "$LVM_TEST_DEVICES_FILE" && initskip
+
unset CDPATH
export LVM_TEST_BACKING_DEVICE LVM_TEST_DEVDIR LVM_TEST_NODEBUG LVM_TEST_FAILURE
diff --git a/test/shell/allow-mixed-block-sizes.sh b/test/shell/allow-mixed-block-sizes.sh
index 171942e4b..912f87781 100644
--- a/test/shell/allow-mixed-block-sizes.sh
+++ b/test/shell/allow-mixed-block-sizes.sh
@@ -45,6 +45,7 @@ for i in "$LOOP1" "$LOOP2"; do
done
aux extend_filter "a|$dev1|" "a|$dev2|"
+aux extend_devices "$dev1" "$dev2"
not vgcreate --config 'devices/allow_mixed_block_sizes=0' $vg "$dev1" "$dev2"
vgcreate --config 'devices/allow_mixed_block_sizes=1' $vg "$dev1" "$dev2"
diff --git a/test/shell/devicesfile-basic.sh b/test/shell/devicesfile-basic.sh
index 8ad96e37d..53be895e7 100644
--- a/test/shell/devicesfile-basic.sh
+++ b/test/shell/devicesfile-basic.sh
@@ -287,35 +287,6 @@ pvscan --devices "$dev4" --cache -aay "$dev4"
check lv_field $vg2/$lv2 lv_active "active"
vgchange -an $vg2
-
-# verify --devicesfile and --devices are not affected by a filter
-# hide_dev excludes using existing filter
-aux hide_dev "$dev2"
-aux hide_dev "$dev4"
-pvs --devicesfile test.devices "$dev1"
-pvs --devicesfile test.devices "$dev2"
-not pvs --devicesfile test.devices "$dev3"
-not pvs --devicesfile test.devices "$dev4"
-pvs --devices "$dev1" "$dev1"
-pvs --devices "$dev2" "$dev2"
-pvs --devices "$dev3" "$dev3"
-pvs --devices "$dev4" "$dev4"
-pvs --devices "$dev5" "$dev5"
-pvs --devices "$dev1","$dev2","$dev3","$dev4","$dev5" "$dev1" "$dev2" "$dev3" "$dev4" "$dev5" | tee out
-grep "$dev1" out
-grep "$dev2" out
-grep "$dev3" out
-grep "$dev4" out
-grep "$dev5" out
-vgchange --devices "$dev1","$dev2" -ay $vg1
-check lv_field $vg1/$lv1 lv_active "active"
-lvchange --devices "$dev1","$dev2" -an $vg1/$lv1
-vgchange --devices "$dev3","$dev4" -ay $vg2
-check lv_field $vg2/$lv2 lv_active "active"
-lvchange --devices "$dev3","$dev4" -an $vg2/$lv2
-aux unhide_dev "$dev2"
-aux unhide_dev "$dev4"
-
vgchange --devicesfile "" -an
vgremove --devicesfile "" -y $vg1
vgremove --devicesfile "" -y $vg2
@@ -636,3 +607,61 @@ grep "$dev2" "$DFDIR/test.devices"
rm "$DFDIR/test.devices"
vgcreate --devicesfile test.devices $vg3 "$dev3"
grep "$dev3" "$DFDIR/test.devices"
+
+#
+# verify --devicesfile and --devices are not affected by a filter
+# This is last because it sets lvm.conf filter and
+# I haven't found a way of removing the filter from
+# the config after setting it.
+#
+
+aux lvmconf 'devices/use_devicesfile = 0'
+wipe_all
+rm -f "$DF"
+rm -f "$DFDIR/test.devices"
+
+vgcreate --devicesfile test.devices $vg1 "$dev1" "$dev2"
+grep "$dev1" "$DFDIR/test.devices"
+grep "$dev2" "$DFDIR/test.devices"
+not ls "$DFDIR/system.devices"
+
+# create two VGs outside the special devices file
+vgcreate $vg2 "$dev3" "$dev4"
+vgcreate $vg3 "$dev5" "$dev6"
+not grep "$dev3" "$DFDIR/test.devices"
+not grep "$dev5" "$DFDIR/test.devices"
+not ls "$DFDIR/system.devices"
+
+lvcreate -l4 -an -i2 -n $lv1 $vg1
+lvcreate -l4 -an -i2 -n $lv2 $vg2
+lvcreate -l4 -an -i2 -n $lv3 $vg3
+
+aux lvmconf "devices/filter = [ \"r|$dev2|\" \"r|$dev4|\" ]"
+
+pvs --devicesfile test.devices "$dev1"
+pvs --devicesfile test.devices "$dev2"
+not pvs --devicesfile test.devices "$dev3"
+not pvs --devicesfile test.devices "$dev4"
+pvs --devices "$dev1" "$dev1"
+pvs --devices "$dev2" "$dev2"
+pvs --devices "$dev3" "$dev3"
+pvs --devices "$dev4" "$dev4"
+pvs --devices "$dev5" "$dev5"
+pvs --devices "$dev1","$dev2","$dev3","$dev4","$dev5" "$dev1" "$dev2" "$dev3" "$dev4" "$dev5" | tee out
+grep "$dev1" out
+grep "$dev2" out
+grep "$dev3" out
+grep "$dev4" out
+grep "$dev5" out
+vgchange --devices "$dev1","$dev2" -ay $vg1
+check lv_field $vg1/$lv1 lv_active "active"
+lvchange --devices "$dev1","$dev2" -an $vg1/$lv1
+vgchange --devices "$dev3","$dev4" -ay $vg2
+check lv_field $vg2/$lv2 lv_active "active"
+lvchange --devices "$dev3","$dev4" -an $vg2/$lv2
+
+vgchange -an --devicesfile test.devices $vg1
+vgremove -y --devicesfile test.devices $vg1
+vgremove -y $vg2
+vgremove -y $vg3
+
diff --git a/test/shell/duplicate-pvs-md0.sh b/test/shell/duplicate-pvs-md0.sh
index 82a179915..9156494e3 100644
--- a/test/shell/duplicate-pvs-md0.sh
+++ b/test/shell/duplicate-pvs-md0.sh
@@ -60,6 +60,7 @@ for pass in "auto" "start" ; do
#
aux mdadm_create --metadata=1.0 --level="$MD_LEVEL" --chunk=64 --raid-devices=2 "$dev1" "$dev2"
mddev=$(< MD_DEV)
+lvmdevices --adddev $mddev || true
pvcreate "$mddev"
PVIDMD=$(get pv_field "$mddev" uuid | tr -d - )
@@ -118,6 +119,7 @@ check inactive $vg $lv1
vgchange -an $vg
vgremove -f $vg
+lvmdevices --deldev $mddev || true
aux cleanup_md_dev
@@ -129,6 +131,7 @@ aux cleanup_md_dev
aux mdadm_create --metadata=1.0 --level="$MD_LEVEL" --chunk=64 --raid-devices=2 "$dev1" "$dev2"
mddev=$(< MD_DEV)
+lvmdevices --adddev $mddev || true
pvcreate "$mddev"
PVIDMD=$(get pv_field "$mddev" uuid | tr -d - )
@@ -188,6 +191,7 @@ aux udev_wait
aux mdadm_create --metadata=1.0 --level="$MD_LEVEL" --chunk=64 --raid-devices=2 "$dev1" "$dev2"
mddev=$(< MD_DEV)
+lvmdevices --adddev $mddev || true
pvcreate "$mddev"
PVIDMD=$(get pv_field "$mddev" uuid | tr -d - )
@@ -235,6 +239,7 @@ test ! -f "$RUNDIR/lvm/pvs_online/$PVIDMD"
test ! -f "$RUNDIR/lvm/vgs_online/$vg"
aux enable_dev "$dev2"
+lvmdevices --deldev $mddev || true
aux cleanup_md_dev
aux wipefs_a "$dev1"
@@ -250,6 +255,7 @@ if [ "$MD_LEVEL" = "1" ] ; then
#
aux mdadm_create --metadata=1.0 --level="$MD_LEVEL" --chunk=64 --raid-devices=3 "$dev1" "$dev2" "$dev4"
mddev=$(< MD_DEV)
+lvmdevices --adddev $mddev || true
pvcreate "$mddev"
PVIDMD=$(get pv_field "$mddev" uuid | tr -d - )
diff --git a/test/shell/hints.sh b/test/shell/hints.sh
index 3df875418..4fba5cae4 100644
--- a/test/shell/hints.sh
+++ b/test/shell/hints.sh
@@ -141,6 +141,12 @@ not cat $NEWHINTS
# Test that adding a new device and removing a device
# causes hints to be recreated.
#
+# with a devices file the appearance of a new device on
+# the system does not disturb lvm, so this test doesn't
+# apply
+#
+
+if ! lvmdevices; then
not pvs "$dev5"
@@ -183,6 +189,9 @@ grep devs_hash $PREV > devs_hash1
grep devs_hash $HINTS > devs_hash2
not diff devs_hash1 devs_hash2
+# end of new device test for non-devicesfile case
+fi
+
#
# Test that hints don't change from a bunch of commands
# that use hints and shouldn't change it.
diff --git a/test/shell/integrity-blocksize.sh b/test/shell/integrity-blocksize.sh
index a85070cc5..bf8def4ac 100644
--- a/test/shell/integrity-blocksize.sh
+++ b/test/shell/integrity-blocksize.sh
@@ -72,6 +72,10 @@ aux extend_filter "a|$LOOP1|"
aux extend_filter "a|$LOOP2|"
aux extend_filter "a|$LOOP3|"
aux extend_filter "a|$LOOP4|"
+aux extend_devices "$LOOP1"
+aux extend_devices "$LOOP2"
+aux extend_devices "$LOOP3"
+aux extend_devices "$LOOP4"
aux lvmconf 'devices/scan = "/dev"'
diff --git a/test/shell/losetup-partscan.sh b/test/shell/losetup-partscan.sh
index aa752064c..99f552ad1 100644
--- a/test/shell/losetup-partscan.sh
+++ b/test/shell/losetup-partscan.sh
@@ -34,6 +34,7 @@ ls -la "${LOOP}"*
test -e "${LOOP}p1"
aux extend_filter "a|$LOOP|"
+aux extend_devices "$LOOP"
# creation should fail for 'partitioned' loop device
not pvcreate -y "$LOOP"
@@ -57,6 +58,7 @@ ls -la "${LOOP}"*
test ! -e "${LOOP}p1"
aux extend_filter "a|$LOOP|"
+aux extend_devices "$LOOP"
# creation should pass for 'non-partitioned' loop device
pvcreate -y "$LOOP"
diff --git a/test/shell/process-each-duplicate-pvs.sh b/test/shell/process-each-duplicate-pvs.sh
index ffd085a9a..bf86c141f 100644
--- a/test/shell/process-each-duplicate-pvs.sh
+++ b/test/shell/process-each-duplicate-pvs.sh
@@ -11,6 +11,16 @@ test_description='Test duplicate PVs'
SKIP_WITH_LVMPOLLD=1
SKIP_WITH_CLVMD=1
+# This test should work with real device ids (not devnames).
+# When PVs are being overwritten by the test, the devices file is
+# excluding them since with idtype=devname the devices file falls
+# back to including devs based on PVIDs in the devices file,
+# but the 'dd' is clobbering the PVIDs so those devs aren't included
+# so the 'pvs' commands below don't report them.
+# In general this is better behavior, but needs to be tested
+# with proper device ids.
+SKIP_WITH_DEVICES_FILE=1
+
. lib/inittest
aux prepare_devs 6 16
diff --git a/test/shell/pv-duplicate-uuid.sh b/test/shell/pv-duplicate-uuid.sh
index 37d851401..ac2b866f5 100644
--- a/test/shell/pv-duplicate-uuid.sh
+++ b/test/shell/pv-duplicate-uuid.sh
@@ -20,8 +20,8 @@ aux prepare_devs 3
pvcreate "$dev1"
UUID1=$(get pv_field "$dev1" uuid)
-pvcreate --config "devices{filter=[\"a|$dev2|\",\"r|.*|\"]}" -u "$UUID1" --norestorefile "$dev2"
-pvcreate --config "devices{filter=[\"a|$dev3|\",\"r|.*|\"]}" -u "$UUID1" --norestorefile "$dev3"
+pvcreate --devices "$dev2" -u "$UUID1" --norestorefile "$dev2"
+pvcreate --devices "$dev3" -u "$UUID1" --norestorefile "$dev3"
pvscan --cache 2>&1 | tee out
@@ -35,7 +35,7 @@ test "$(grep -c $UUID1 main)" -eq 1
COUNT=$(grep --count "Not using device" warn)
[ "$COUNT" -eq 2 ]
-pvs -o+uuid --config "devices{filter=[\"a|$dev2|\",\"r|.*|\"]}" 2>&1 | tee out
+pvs -o+uuid --devices $dev2 2>&1 | tee out
rm warn main || true
grep WARNING out > warn || true
diff --git a/test/shell/pv-ext-flags.sh b/test/shell/pv-ext-flags.sh
index 22e9b3aac..3e6bcff76 100644
--- a/test/shell/pv-ext-flags.sh
+++ b/test/shell/pv-ext-flags.sh
@@ -64,6 +64,7 @@ dd if=dev1_backup of="$dev1" bs=1M
# prepare a VG with $dev1 and $dev both having 1 MDA
aux enable_dev "$dev2"
vgremove -ff $vg1
+pvremove -ff -y "$dev1"
pvcreate --metadatacopies 1 "$dev1"
vgcreate $vg1 "$dev1" "$dev2"
@@ -122,6 +123,7 @@ dd if=dev1_backup of="$dev1" bs=1M
# prepare a VG with $dev1 and $dev both having 1 MDA
aux enable_dev "$dev2"
vgremove -ff $vg1
+pvremove -ff -y "$dev1"
pvcreate --metadatacopies 1 "$dev1"
vgcreate $vg1 "$dev1" "$dev2"
diff --git a/test/shell/pvcreate-restore.sh b/test/shell/pvcreate-restore.sh
index d0b46eb2b..0e4a5dcba 100644
--- a/test/shell/pvcreate-restore.sh
+++ b/test/shell/pvcreate-restore.sh
@@ -22,6 +22,10 @@ lvcreate --type snapshot -s -L10 -n $lv2 $vg --virtualsize 4T
lvcreate --type snapshot -s -L10 -n $lv3 $vg --virtualsize 4194300M
aux extend_filter_LVMTEST
+aux lvmconf "devices/scan_lvs = 1"
+extend_devices "$DM_DEV_DIR/$vg/$lv1"
+extend_devices "$DM_DEV_DIR/$vg/$lv2"
+extend_devices "$DM_DEV_DIR/$vg/$lv3"
vgcreate $vg1 "$DM_DEV_DIR/$vg/$lv2"
diff --git a/test/shell/pvremove-thin.sh b/test/shell/pvremove-thin.sh
index 9859b6cad..451255746 100644
--- a/test/shell/pvremove-thin.sh
+++ b/test/shell/pvremove-thin.sh
@@ -26,6 +26,9 @@ aux extend_filter_LVMTEST
lvcreate -L10 -V10 -n $lv1 -T $vg/pool1
+aux extend_devices "$DM_DEV_DIR/$vg/$lv1"
+aux lvmconf "devices/scan_lvs = 1"
+
pvcreate "$DM_DEV_DIR/$vg/$lv1"
pvremove "$DM_DEV_DIR/$vg/$lv1"
diff --git a/test/shell/scan-lvs.sh b/test/shell/scan-lvs.sh
index f49bf4df5..fe11201f5 100644
--- a/test/shell/scan-lvs.sh
+++ b/test/shell/scan-lvs.sh
@@ -15,8 +15,8 @@ SKIP_WITH_LVMPOLLD=1
. lib/inittest
-# Sets 'scan_lvs = 1'
aux extend_filter_LVMTEST
+aux lvmconf "devices/scan_lvs = 1"
aux prepare_pvs 1
@@ -24,6 +24,7 @@ vgcreate $SHARED $vg1 "$dev1"
lvcreate -l1 -n $lv1 $vg1
+aux extend_devices "$DM_DEV_DIR/$vg1/$lv1"
pvcreate "$DM_DEV_DIR/$vg1/$lv1"
pvs "$DM_DEV_DIR/$vg1/$lv1"
diff --git a/test/shell/snapshot-remove-dmsetup.sh b/test/shell/snapshot-remove-dmsetup.sh
index 2ef65a596..ab5e2e9ff 100644
--- a/test/shell/snapshot-remove-dmsetup.sh
+++ b/test/shell/snapshot-remove-dmsetup.sh
@@ -23,10 +23,11 @@ aux prepare_vg 5
# Create stacked device
lvcreate --type snapshot -s -L10 -n $lv1 $vg --virtualsize 100M
+aux lvmconf "devices/scan_lvs = 1"
aux extend_filter_LVMTEST
+aux extend_devices "$DM_DEV_DIR"/$vg/$lv1
vgcreate $vg1 "$DM_DEV_DIR"/$vg/$lv1
-
lvcreate -L20 -n $lv1 $vg1
lvcreate -L10 -n snap -s $vg1/$lv1
diff --git a/test/shell/snapshot-usage-exa.sh b/test/shell/snapshot-usage-exa.sh
index 5d666bf43..475960df7 100644
--- a/test/shell/snapshot-usage-exa.sh
+++ b/test/shell/snapshot-usage-exa.sh
@@ -26,7 +26,10 @@ get_devs
# Prepare large enough backend device
vgcreate -s 4M "$vg" "${DEVICES[@]}"
lvcreate --type snapshot -s -l 100%FREE -n $lv $vg --virtualsize 15P
+
+aux lvmconf "devices/scan_lvs = 1"
aux extend_filter_LVMTEST
+aux extend_devices "$DM_DEV_DIR/$vg/$lv"
# Check usability with largest extent size
pvcreate "$DM_DEV_DIR/$vg/$lv"
diff --git a/test/shell/snapshot-usage.sh b/test/shell/snapshot-usage.sh
index bcfa16a3e..0f14dd6e0 100644
--- a/test/shell/snapshot-usage.sh
+++ b/test/shell/snapshot-usage.sh
@@ -77,6 +77,8 @@ lvremove -f $vg
lvcreate --type snapshot -s -l 100%FREE -n $lv $vg --virtualsize $TSIZE
aux extend_filter_LVMTEST
+aux extend_devices "$DM_DEV_DIR/$vg/$lv"
+aux lvmconf "devices/scan_lvs = 1"
aux lvmconf "activation/snapshot_autoextend_percent = 20" \
"activation/snapshot_autoextend_threshold = 50"
diff --git a/test/shell/system_id.sh b/test/shell/system_id.sh
index 8814d5497..ee51ca179 100644
--- a/test/shell/system_id.sh
+++ b/test/shell/system_id.sh
@@ -27,6 +27,19 @@ aux prepare_devs 1
SIDFILE="etc/lvm_test.conf"
LVMLOCAL="etc/lvmlocal.conf"
+DFDIR="$LVM_SYSTEM_DIR/devices"
+DF="$DFDIR/system.devices"
+
+# Avoid system id validation in the devices file
+# which gets in the way of the test switching the
+# local system id.
+clear_df_systemid() {
+ if [[ -f $DF ]]; then
+ sed -e "s|SYSTEMID=.||" "$DF" > tmpdf
+ cp tmpdf $DF
+ fi
+}
+
# create vg with system_id using each source
## none
@@ -38,7 +51,8 @@ check vg_field $vg1 systemid "$SID"
vgremove $vg1
# FIXME - print 'life' config data
-eval "$(lvmconfig global/etc 2>/dev/null || lvmconfig --type default global/etc)"
+#eval "$(lvmconfig global/etc 2>/dev/null || lvmconfig --type default global/etc)"
+etc="/etc"
## machineid
if [ -e "$etc/machine-id" ]; then
@@ -77,6 +91,7 @@ rm -f "$LVMLOCAL"
SID=sidfoofile
echo "$SID" > "$SIDFILE"
+clear_df_systemid
aux lvmconf "global/system_id_source = file" \
"global/system_id_file = \"$SIDFILE\""
vgcreate $vg1 "$dev1"
@@ -89,6 +104,7 @@ vgremove $vg1
SID1=sidfoofile1
SID2=sidfoofile2
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
aux lvmconf "global/system_id_source = file" \
"global/system_id_file = \"$SIDFILE\""
# create a vg, overriding the local system_id so the vg looks foreign
@@ -108,6 +124,7 @@ vgs --foreign $vg1 >err
grep $vg1 err
# change the local system_id to the second value, making the vg not foreign
echo "$SID2" > "$SIDFILE"
+clear_df_systemid
# we can now see and remove the vg
vgs $vg1 >err
grep $vg1 err
@@ -118,6 +135,7 @@ vgremove $vg1
SID1=sidfoofile1
SID2=sidfoofile2
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
aux lvmconf "global/system_id_source = file" \
"global/system_id_file = \"$SIDFILE\""
# create a vg
@@ -127,6 +145,7 @@ vgs >err
grep $vg1 err
# change the local system_id, making the vg foreign
echo "$SID2" > "$SIDFILE"
+clear_df_systemid
# normal vgs doesn't see the vg
vgs >err
not grep $vg1 err
@@ -135,6 +154,7 @@ vgs --foreign >err
grep $vg1 err
# change the local system_id back to the first value, making the vg not foreign
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
vgs >err
grep $vg1 err
vgremove $vg1
@@ -144,6 +164,7 @@ vgremove $vg1
SID1=sidfoofile1
SID2=sidfoofile2
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
aux lvmconf "global/system_id_source = file" \
"global/system_id_file = \"$SIDFILE\""
# create a vg
@@ -161,6 +182,7 @@ vgs --foreign >err
grep $vg1 err
# change the local system_id to the second system_id so we can remove the vg
echo "$SID2" > "$SIDFILE"
+clear_df_systemid
vgs >err
grep $vg1 err
vgremove $vg1
@@ -172,6 +194,7 @@ vgremove $vg1
SID1=sidfoofile1
SID2=sidfoofile2
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
aux lvmconf "global/system_id_source = file" \
"global/system_id_file = \"$SIDFILE\""
# create a vg
@@ -183,6 +206,7 @@ grep $vg1 err
check lv_exists $vg1 $lv1
# change our system_id, making the vg foreign, but accessible
echo "$SID2" > "$SIDFILE"
+clear_df_systemid
vgs >err
grep $vg1 err
check lv_exists $vg1 $lv1
@@ -193,6 +217,7 @@ not lvremove $vg1/$lv1
not vgremove $vg1
# change our system_id back to match the vg so it's not foreign
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
vgs >err
grep $vg1 err
lvremove $vg1/$lv1
@@ -202,6 +227,7 @@ vgremove $vg1
SID1=sidfoofile1
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
aux lvmconf "global/system_id_source = file" \
"global/system_id_file = \"$SIDFILE\""
# create a vg
@@ -220,12 +246,14 @@ vgremove $vg1
SID1=sidfoofile1
rm -f "$SIDFILE"
+clear_df_systemid
# create a vg with no system_id
aux lvmconf "global/system_id_source = none"
vgcreate $vg1 "$dev1"
check vg_field $vg1 systemid ""
# set a local system_id
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
aux lvmconf "global/system_id_source = file" \
"global/system_id_file = \"$SIDFILE\""
# check we can see and use the vg with no system_id
@@ -239,6 +267,7 @@ vgremove $vg1
SID1=sidfoofile1
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
aux lvmconf "global/system_id_source = file" \
"global/system_id_file = \"$SIDFILE\""
# create a vg
@@ -269,6 +298,7 @@ SID2=012345678901234567890123456789012345678901234567890123456789012345678901234
# max len system_id should appear normally
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
aux lvmconf "global/system_id_source = file" \
"global/system_id_file = \"$SIDFILE\""
# create a vg
@@ -281,6 +311,7 @@ vgremove $vg1
# max+1 len system_id should be missing the last character
echo "$SID2" > "$SIDFILE"
+clear_df_systemid
aux lvmconf "global/system_id_source = file" \
"global/system_id_file = \"$SIDFILE\""
# create a vg
@@ -300,6 +331,7 @@ SID1=012345678901234567890123456789012345678901234567890123456789012345678901234
# The string is truncated to max length (128) before the invalid character is omitted
SID2=012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789abcdefg
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
aux lvmconf "global/system_id_source = file" \
"global/system_id_file = \"$SIDFILE\""
# create a vg
@@ -316,6 +348,7 @@ SID1="?%$&A.@1]"
# SID1 without the invalid characters
SID2=A.1
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
aux lvmconf "global/system_id_source = file" \
"global/system_id_file = \"$SIDFILE\""
# create a vg
@@ -334,6 +367,7 @@ vgremove $vg1
SID1=sidfoofile1
SID2=sidfoofile2
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
aux lvmconf "global/system_id_source = file" \
"global/system_id_file = \"$SIDFILE\""
# create a vg
@@ -344,6 +378,7 @@ grep $vg1 err
grep "$dev1" err
# change the local system_id, making the vg foreign
echo "$SID2" > "$SIDFILE"
+clear_df_systemid
# normal pvs does not see the vg or pv
pvs >err
not grep $vg1 err
@@ -354,6 +389,7 @@ grep $vg1 err
grep "$dev1" err
# change the local system_id back so the vg can be removed
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
vgremove $vg1
rm -f "$SIDFILE"
@@ -363,6 +399,7 @@ rm -f "$SIDFILE"
SID1=sidfoofile1
SID2=sidfoofile2
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
aux lvmconf "global/system_id_source = file" \
"global/system_id_file = \"$SIDFILE\""
# create a vg
@@ -375,6 +412,7 @@ grep $vg1 err
grep $lv1 err
# change the local system_id, making the vg foreign
echo "$SID2" > "$SIDFILE"
+clear_df_systemid
# normal lvs does not see the vg or lv
lvs >err
not grep $vg1 err
@@ -385,6 +423,7 @@ grep $vg1 err
grep $lv1 err
# change the local system_id back so the vg can be removed
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
lvremove $vg1/$lv1
vgremove $vg1
rm -f "$SIDFILE"
@@ -395,6 +434,7 @@ SID1=sidfoofile1
SID2=sidfoofile2
rm -f "$LVMLOCAL"
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
aux lvmconf "global/system_id_source = file" \
"global/system_id_file = \"$SIDFILE\""
# create a vg
@@ -404,6 +444,7 @@ vgs >err
grep $vg1 err
# change the local system_id, making the vg foreign
echo "$SID2" > "$SIDFILE"
+clear_df_systemid
# normal vgs doesn't see the vg
vgs >err
not grep $vg1 err
@@ -420,6 +461,7 @@ rm -f "$LVMLOCAL"
# vgcreate --systemid "" creates a vg without a system_id even if source is set
SID1=sidfoofile1
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
aux lvmconf "global/system_id_source = file" \
"global/system_id_file = \"$SIDFILE\""
# create a vg
@@ -436,6 +478,7 @@ rm -f "$SIDFILE"
# vgchange --systemid "" clears the system_id on owned vg
SID1=sidfoofile1
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
aux lvmconf "global/system_id_source = file" \
"global/system_id_file = \"$SIDFILE\""
# create a vg
@@ -461,6 +504,7 @@ SID1=sidfoofile1
SID2=sidfoofile2
rm -f "$LVMLOCAL"
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
aux lvmconf "global/system_id_source = file" \
"global/system_id_file = \"$SIDFILE\""
# create a vg
@@ -470,6 +514,7 @@ vgs >err
grep $vg1 err
# change the local system_id, making the vg foreign
echo "$SID2" > "$SIDFILE"
+clear_df_systemid
# normal vgs doesn't see the vg
vgs >err
not grep $vg1 err
@@ -482,6 +527,7 @@ not vgchange --yes --systemid "" $vg1
not vgchange --yes --systemid foo $vg1
# change our system_id back so we can remove the vg
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
vgremove $vg1
# vgcfgbackup backs up foreign vg with --foreign
@@ -489,6 +535,7 @@ SID1=sidfoofile1
SID2=sidfoofile2
rm -f "$LVMLOCAL"
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
aux lvmconf "global/system_id_source = file" \
"global/system_id_file = \"$SIDFILE\""
# create a vg
@@ -498,6 +545,7 @@ vgs >err
grep $vg1 err
# change the local system_id, making the vg foreign
echo "$SID2" > "$SIDFILE"
+clear_df_systemid
# normal vgs doesn't see the vg
vgs >err
not grep $vg1 err
@@ -506,6 +554,7 @@ not vgcfgbackup $vg1
vgcfgbackup --foreign $vg1
# change our system_id back so we can remove the vg
echo "$SID1" > "$SIDFILE"
+clear_df_systemid
vgremove $vg1
rm -f "$SIDFILE"
@@ -562,6 +611,7 @@ rm -f $LVMLOCAL
# vgcreate with source file, but no system_id_file config
SID=""
rm -f "$SIDFILE"
+clear_df_systemid
aux lvmconf "global/system_id_source = file"
vgcreate $vg1 "$dev1" 2>&1 | tee err
vgs -o+systemid $vg1
@@ -572,6 +622,7 @@ vgremove $vg1
# vgcreate with source file, but system_id_file does not exist
SID=""
rm -f "$SIDFILE"
+clear_df_systemid
aux lvmconf "global/system_id_source = file" \
"global/system_id_file = \"$SIDFILE\""
vgcreate $vg1 "$dev1" 2>&1 | tee err
diff --git a/test/shell/vg-check-devs-used.sh b/test/shell/vg-check-devs-used.sh
index 3b911bc10..15cdff624 100644
--- a/test/shell/vg-check-devs-used.sh
+++ b/test/shell/vg-check-devs-used.sh
@@ -23,7 +23,7 @@ aux prepare_devs 3 8
vgcreate $SHARED "$vg" "$dev1" "$dev2"
lvcreate -l100%FREE -n $lv $vg
dd if="$dev1" of="$dev3" bs=1M oflag=direct
-pvs --config "devices/global_filter = [ \"a|$dev2|\", \"a|$dev3|\", \"r|.*|\" ]" 2>err
+pvs --devices $dev2,$dev3 2>err
grep "WARNING: Device mismatch detected for $vg/$lv which is accessing $dev1 instead of $dev3" err
dd if=/dev/zero of="$dev3" bs=1M count=8 oflag=direct
diff --git a/test/shell/vgsplit-stacked.sh b/test/shell/vgsplit-stacked.sh
index 331ee8e86..085d65b44 100644
--- a/test/shell/vgsplit-stacked.sh
+++ b/test/shell/vgsplit-stacked.sh
@@ -16,11 +16,15 @@ SKIP_WITH_LVMPOLLD=1
. lib/inittest
aux extend_filter_LVMTEST
+aux lvmconf "devices/scan_lvs = 1"
+
aux prepare_pvs 3
vgcreate $SHARED $vg1 "$dev1" "$dev2"
lvcreate -n $lv1 -l 100%FREE $vg1
+aux extend_devices "$DM_DEV_DIR/$vg/$lv1"
+
#top VG
pvcreate "$DM_DEV_DIR/$vg1/$lv1"
vgcreate $SHARED $vg "$DM_DEV_DIR/$vg1/$lv1" "$dev3"
diff --git a/test/shell/writecache-cache-blocksize-2.sh b/test/shell/writecache-cache-blocksize-2.sh
index dfb4f19a1..9b5d15365 100644
--- a/test/shell/writecache-cache-blocksize-2.sh
+++ b/test/shell/writecache-cache-blocksize-2.sh
@@ -201,6 +201,7 @@ blockdev --getpbsz "$LOOP1" | grep 512
blockdev --getpbsz "$LOOP2" | grep 512
aux extend_filter "a|$dev3|" "a|$dev4|"
+aux extend_devices "$dev3" "$dev4"
# place main LV on dev1 with LBS 512, PBS 4096
# and the cache on dev3 with LBS 512, PBS 512