[lvm-devel] master - tests: enhance thin test
Zdenek Kabelac
zkabelac at fedoraproject.org
Mon Feb 24 20:17:25 UTC 2014
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=32138969f9f8bd4e33e2b9131ac67db061d75f70
Commit: 32138969f9f8bd4e33e2b9131ac67db061d75f70
Parent: 9c9f4515ae433beb2e6a582aacc422feb73c09dd
Author: Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate: Mon Feb 24 09:46:09 2014 +0100
Committer: Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Mon Feb 24 21:13:36 2014 +0100
tests: enhance thin test
Add more tests to also check validaty of transaction_id
and also detect we are not leaving active unusable thin pool LVs.
---
test/shell/lvextend-thin-metadata-dmeventd.sh | 29 +++++++++++++++++++++---
1 files changed, 25 insertions(+), 4 deletions(-)
diff --git a/test/shell/lvextend-thin-metadata-dmeventd.sh b/test/shell/lvextend-thin-metadata-dmeventd.sh
index 4b4ee30..cb5261c 100644
--- a/test/shell/lvextend-thin-metadata-dmeventd.sh
+++ b/test/shell/lvextend-thin-metadata-dmeventd.sh
@@ -32,7 +32,7 @@ wait_for_change_() {
# Currently it expects 2MB thin metadata and 200MB data volume size
# Argument specifies how many devices should be created.
fake_metadata_() {
- echo '<superblock uuid="" time="1" transaction="0" data_block_size="128" nr_data_blocks="3200">'
+ echo '<superblock uuid="" time="1" transaction="'$2'" data_block_size="128" nr_data_blocks="3200">'
for i in $(seq 1 $1)
do
echo ' <device dev_id="'$i'" mapped_blocks="785" transaction="0" creation_time="0" snap_time="1">'
@@ -56,12 +56,31 @@ vgcreate -s 1M $vg $(cat DEVICES)
# Testing dmeventd autoresize
lvcreate -L200M -V1G -n thin -T $vg/pool
lvcreate -L2M -n $lv1 $vg
+lvchange -an $vg/thin $vg/pool
-# Prepare some fake metadata prefilled to ~81% (>70%)
-fake_metadata_ 400 >data
+# Prepare some fake metadata with unmatching id
+# Transaction_id is lower by 1 and there are no message -> ERROR
+fake_metadata_ 10 0 >data
+thin_restore -i data -o "$DM_DEV_DIR/mapper/$vg-$lv1"
+lvconvert -y --thinpool $vg/pool --poolmetadata $vg/$lv1
+not vgchange -ay $vg 2>&1 | tee out
+grep expected out
+check inactive $vg pool_tmeta
+
+# Transaction_id is higher by 1
+fake_metadata_ 10 2 >data
thin_restore -i data -o "$DM_DEV_DIR/mapper/$vg-$lv1"
-vgchange -an $vg
+lvconvert -y --thinpool $vg/pool --poolmetadata $vg/$lv1
+not vgchange -ay $vg 2>&1 | tee out
+grep expected out
+
+check inactive $vg pool_tmeta
+
+# Prepare some fake metadata prefilled to ~81% (>70%)
+fake_metadata_ 400 1 >data
+thin_restore -i data -o "$DM_DEV_DIR/mapper/$vg-$lv1"
+
# Swap volume with restored fake metadata
lvconvert -y --thinpool $vg/pool --poolmetadata $vg/$lv1
@@ -70,3 +89,5 @@ vgchange -ay $vg
# Check dmeventd resizes metadata
pre=$(meta_percent_)
wait_for_change_ $pre
+
+vgremove -f $vg
More information about the lvm-devel
mailing list