summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2015-10-13 14:33:24 +0200
committerZdenek Kabelac <zkabelac@redhat.com>2015-10-13 16:02:21 +0200
commitacc70de43968961e9a71612cda04642e4fbfd71f (patch)
tree2b4365d7c88d6bd4572eadee4fecc2957f24c3d5
parentcf1c2da836223de64daacd94f0fd40a96f6cd46f (diff)
downloadlvm2-acc70de43968961e9a71612cda04642e4fbfd71f.tar.gz
tests: more extend testing
-rw-r--r--test/shell/lvextend-thin-metadata-dmeventd.sh51
1 files changed, 47 insertions, 4 deletions
diff --git a/test/shell/lvextend-thin-metadata-dmeventd.sh b/test/shell/lvextend-thin-metadata-dmeventd.sh
index ea081a27c..9ecd5ae60 100644
--- a/test/shell/lvextend-thin-metadata-dmeventd.sh
+++ b/test/shell/lvextend-thin-metadata-dmeventd.sh
@@ -37,14 +37,20 @@ 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="'$2'" data_block_size="128" nr_data_blocks="3200">'
- for i in $(seq 1 $1)
+ echo '<superblock uuid="" time="0" transaction="'$2'" data_block_size="128" nr_data_blocks="3200">'
+ echo ' <device dev_id="1" mapped_blocks="0" transaction="0" creation_time="0" snap_time="0">'
+ echo ' </device>'
+ echo ' <device dev_id="2" mapped_blocks="0" transaction="0" creation_time="0" snap_time="0">'
+ echo ' </device>'
+ for i in $(seq 10 $1)
do
- echo ' <device dev_id="'$i'" mapped_blocks="37" transaction="0" creation_time="0" snap_time="1">'
- echo ' <range_mapping origin_begin="0" data_begin="0" length="37" time="0"/>'
+ echo ' <device dev_id="'$i'" mapped_blocks="30" transaction="0" creation_time="0" snap_time="0">'
+ echo ' <range_mapping origin_begin="0" data_begin="0" length="29" time="0"/>'
echo ' </device>'
+ set +x
done
echo "</superblock>"
+ set -x
}
test -n "$LVM_TEST_THIN_RESTORE_CMD" || LVM_TEST_THIN_RESTORE_CMD=$(which thin_restore) || skip
@@ -99,4 +105,41 @@ vgchange -ay $vg
pre=$(meta_percent_)
wait_for_change_ $pre
+lvchange -an $vg
+
+lvs -a $vg
+#
+fake_metadata_ 350 2 >data
+lvchange -ay $vg/$lv1
+"$LVM_TEST_THIN_RESTORE_CMD" -i data -o "$DM_DEV_DIR/mapper/$vg-$lv1"
+
+lvs -a $vg
+dmsetup table
+lvconvert -y --chunksize 64k --thinpool $vg/pool --poolmetadata $vg/$lv1
+lvchange -ay $vg/pool $vg/$lv1
+lvs -a $vg
+
+lvcreate -s -Ky -n $lv2 $vg/thin
+echo 2 >"$DM_DEV_DIR/mapper/$vg-$lv2"
+
+#lvchange -an $vg
+#lvconvert -y --chunksize 64k --thinpool $vg/pool --poolmetadata $vg/$lv1
+#lvchange -ay $vg/$lv1
+#thin_dump "$DM_DEV_DIR/mapper/$vg-$lv1"
+#exit
+
+# no more space for new thin LV
+#
+# TODO:
+# though maybe 'lvcreate' itself should initiate resize - if dmeventd is not 'fast' enough
+# deploying usage of threshold kernel module paramater would likely help as well
+# for now it stops here:
+not lvcreate -s -Ky -n $lv3 $vg/thin
+lvs -a $vg
+
+pre=$(meta_percent_)
+wait_for_change_ $pre
+
+lvs -a $vg
+
vgremove -f $vg