]> sourceware.org Git - lvm2.git/commitdiff
tests: metadata-zero-space
authorDavid Teigland <teigland@redhat.com>
Fri, 12 Jul 2019 19:08:22 +0000 (14:08 -0500)
committerDavid Teigland <teigland@redhat.com>
Fri, 12 Jul 2019 20:03:47 +0000 (15:03 -0500)
Test zero padding between copies of metadata.

test/shell/metadata-zero-space.sh [new file with mode: 0644]

diff --git a/test/shell/metadata-zero-space.sh b/test/shell/metadata-zero-space.sh
new file mode 100644 (file)
index 0000000..847ef44
--- /dev/null
@@ -0,0 +1,86 @@
+#!/usr/bin/env bash
+
+# Copyright (C) 2008 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
+
+SKIP_WITH_LVMPOLLD=1
+
+. lib/inittest
+
+aux prepare_devs 1 256
+get_devs
+
+# Fill with random data so if the space between metadata
+# copies are not zeroed the grep for zeros will fail.
+dd if=/dev/urandom of="$dev1" bs=1M || true
+
+pvcreate --pvmetadatacopies 2 "$dev1"
+
+vgcreate $SHARED "$vg" "$dev1"
+
+for i in `seq 1 50`; do lvcreate -l1 -an $vg; done
+
+if [ -e "/usr/bin/xxd" ]; then
+
+# Check metadata copies are separated by zeroes in the first mda
+
+dd if="$dev1" of=meta.raw bs=1M count=1
+
+xxd meta.raw > meta.txt
+
+grep -B1 "$vg {" meta.txt > meta.vg
+
+cat meta.vg
+
+grep -v $vg meta.vg > meta.zeros
+
+cat meta.zeros
+
+grep '0000 0000 0000 0000 0000 0000 0000 0000' meta.zeros > meta.count
+
+cat meta.count | wc -l
+
+# wc will often equal 51, but some natural variability in
+# metadata locations/content mean that some lines do not
+# require a full line of zero padding, and will not match
+# the grep for a full row of zeros.  So, check that more
+# than 20 lines match the full row of zeros (this is a
+# random choice, and this isn't a perfect way to test for
+# zero padding.)
+
+test "$(cat meta.count | wc -l)" -gt 20
+
+rm meta.raw meta.txt meta.vg meta.zeros meta.count
+
+#
+# Check metadata copies are separated by zeroes in the second mda
+#
+
+dd if="$dev1" of=meta.raw bs=1M seek=15 count=1
+
+xxd meta.raw > meta.txt
+
+grep -B1 "$vg {" meta.txt > meta.vg
+
+cat meta.vg
+
+grep -v $vg meta.vg > meta.zeros
+
+cat meta.zeros
+
+grep '0000 0000 0000 0000 0000 0000 0000 0000' meta.zeros > meta.count
+
+cat meta.count | wc -l
+
+test "$(cat meta.count | wc -l)" -gt 20
+
+fi
+
+vgremove -ff $vg
This page took 0.037718 seconds and 5 git commands to generate.