summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2020-03-04 11:30:50 -0600
committerDavid Teigland <teigland@redhat.com>2020-03-04 11:30:50 -0600
commit4b5bfa779a744b3ad3b3d28dcb6797110a39dbab (patch)
treeaa35264e3592dfd427726e0d8c334b924c4ee7d3
parentf6667f94cb1204aad5703d129aeeca8286ebaf18 (diff)
downloadlvm2-4b5bfa779a744b3ad3b3d28dcb6797110a39dbab.tar.gz
tests: reduce sizes in pvck-dump and improve checks
Smaller devs can be used so tests can be run on small vms. Improve checks.
-rw-r--r--test/shell/pvck-dump.sh66
1 files changed, 50 insertions, 16 deletions
diff --git a/test/shell/pvck-dump.sh b/test/shell/pvck-dump.sh
index 5c662f61a..327731295 100644
--- a/test/shell/pvck-dump.sh
+++ b/test/shell/pvck-dump.sh
@@ -12,13 +12,16 @@
. lib/inittest
-aux prepare_devs 8 512
+# 4 devs each 128MB
+aux prepare_devs 4 128
get_devs
-dd if=/dev/zero of="$dev1" || true
-dd if=/dev/zero of="$dev2" || true
+dd if=/dev/zero of="$dev1" bs=1M count=32 || true
+dd if=/dev/zero of="$dev2" bs=1M count=32 || true
+dd if=/dev/zero of="$dev3" bs=1M count=32 || true
+dd if=/dev/zero of="$dev4" bs=1M count=32 || true
+# clear entire dev to cover mda2
dd if=/dev/zero of="$dev3" || true
-dd if=/dev/zero of="$dev4" || true
pvcreate "$dev1"
pvcreate "$dev2"
@@ -27,6 +30,8 @@ pvcreate --pvmetadatacopies 0 "$dev4"
vgcreate $SHARED $vg "$dev1" "$dev2" "$dev3"
+pvs
+
pvck --dump headers "$dev1" > h1
pvck --dump headers "$dev2" > h2
pvck --dump headers "$dev3" > h3
@@ -129,14 +134,17 @@ diff area1 area3b
vgremove -ff $vg
-pvremove "$dev1"
-pvremove "$dev2"
-pvremove "$dev3"
-pvremove "$dev4"
+
+dd if=/dev/zero of="$dev1" bs=1M count=32 || true
+dd if=/dev/zero of="$dev2" bs=1M count=32 || true
+dd if=/dev/zero of="$dev3" bs=1M count=32 || true
+dd if=/dev/zero of="$dev4" bs=1M count=32 || true
+# clear entire dev to cover mda2
+dd if=/dev/zero of="$dev1" || true
pvcreate --pvmetadatacopies 2 --metadatasize 32M "$dev1"
-vgcreate $SHARED -s 512K --metadatasize 32M $vg "$dev1" "$dev2" "$dev3" "$dev4" "$dev5" "$dev6" "$dev7" "$dev8"
+vgcreate $SHARED -s 512K --metadatasize 32M $vg "$dev1" "$dev2" "$dev3" "$dev4"
for i in `seq 1 500`; do lvcreate -an -n lv$i -l1 $vg; done
@@ -145,20 +153,46 @@ pvck --dump headers "$dev1" > h1
pvck --dump metadata_search "$dev1" > m1
grep "seqno 500" m1
-dd if="$dev1" of=dev1dd bs=1M count=32
+# When metadatasize is 32M, headers/rounding can mean that
+# we need more than the first 32M of the dev to get all the
+# metadata.
+dd if="$dev1" of=dev1dd bs=1M count=34
+
+# Clear the header so that we force metadata_search to use
+# the settings instead of getting the mda_size/mda_offset
+# from the headers.
dd if=/dev/zero of="$dev1" bs=4K count=1
-# mda_size for mda1 is 32M - 4K
-pvck --dump metadata_search --settings "mda_num=1 mda_size=33550336" "$dev1" > m1b
+# Warning: these checks are based on copying specific numbers
+# seen when running these commands, but these numbers could
+# change as side effects of other things. That makes this
+# somewhat fragile, and we might want to remove some of the
+# these checks if they are hard to keep working.
+
+# by experimentation, mda_size for mda1 is 34598912
+pvck --dump metadata_search --settings "mda_num=1 mda_size=34598912" "$dev1" > m1b
+# by experimentation, metadata 484 is the last in the mda1 buffer
+grep "seqno 484" m1b
+# by experimentation, metadata 485 is the last in the mda1 buffer
+grep "seqno 485" m1b
grep "seqno 500" m1b
-pvck --dump metadata_search --settings "mda_num=1 mda_size=33550336" dev1dd > m1c
-grep "seqno 500" m1c
+# same results when using file as on device
+pvck --dump metadata_search --settings "mda_num=1 mda_size=34598912" dev1dd > m1c
+# by experimentation, metadata 484 is the last in the mda1 buffer
+grep "seqno 484" m1b
+# by experimentation, metadata 485 is the last in the mda1 buffer
+grep "seqno 485" m1b
+grep "seqno 500" m1b
-# mda_size for mda2 is 32M
+# by experimentation, mda_size for mda2 is 33554432
pvck --dump metadata_search --settings "mda_num=2 mda_size=33554432" "$dev1" > m2
+# by experimentation, metadata 477 is the last in the mda2 buffer
+grep "seqno 477" m1b
+# by experimentation, metadata 478 is the last in the mda2 buffer
+grep "seqno 478" m1b
grep "seqno 500" m2
-dd if=dev1dd of="$dev1" bs=1M count=32
+dd if=dev1dd of="$dev1" bs=4K count=1
vgremove -ff $vg