mrc0mmand / rpms / lvm2

Forked from rpms/lvm2 2 years ago
Clone

Blame SOURCES/lvm2-2_03_12-tests-check-thin-pool-corner-case-allocs.patch

31f061
 test/shell/lvcreate-thin-limits.sh | 30 ++++++++++++++++++++++++++----
31f061
 1 file changed, 26 insertions(+), 4 deletions(-)
31f061
31f061
diff --git a/test/shell/lvcreate-thin-limits.sh b/test/shell/lvcreate-thin-limits.sh
31f061
index 6a9c33d..5dcc160 100644
31f061
--- a/test/shell/lvcreate-thin-limits.sh
31f061
+++ b/test/shell/lvcreate-thin-limits.sh
31f061
@@ -27,13 +27,35 @@ aux can_use_16T || skip
31f061
 aux have_thin 1 0 0 || skip
31f061
 which mkfs.ext4 || skip
31f061
 
31f061
-aux prepare_pvs 1 16777216
31f061
+# 16T device
31f061
+aux prepare_pvs 2 8388608
31f061
 get_devs
31f061
 
31f061
-vgcreate $SHARED -s 4K "$vg" "${DEVICES[@]}"
31f061
+# gives 16777215M device
31f061
+vgcreate $SHARED -s 4M "$vg" "${DEVICES[@]}"
31f061
 
31f061
-not lvcreate -T -L15.995T --poolmetadatasize 5G $vg/pool
31f061
+# For 1st. pass only single PV
31f061
+lvcreate -l100%PV --name $lv1 $vg "$dev2"
31f061
 
31f061
-lvs -ao+seg_pe_ranges $vg
31f061
+for i in 1 0
31f061
+do
31f061
+	SIZE=$(get vg_field "$vg" vg_free --units m)
31f061
+	SIZE=${SIZE%%\.*}
31f061
+
31f061
+	# ~16T - 2 * 5G + something  -> should not fit
31f061
+	not lvcreate -Zn -T -L$(( SIZE - 2 * 5 * 1024 + 1 )) --poolmetadatasize 5G $vg/pool
31f061
+
31f061
+	check vg_field "$vg" lv_count "$i"
31f061
+
31f061
+	# Should fit  data + metadata + pmspare
31f061
+	lvcreate -Zn -T -L$(( SIZE - 2 * 5 * 1024 )) --poolmetadatasize 5G $vg/pool
31f061
+
31f061
+	check vg_field "$vg" vg_free "0"
31f061
+
31f061
+	lvs -ao+seg_pe_ranges $vg
31f061
+
31f061
+        # Remove everything for 2nd. pass
31f061
+	lvremove -ff $vg
31f061
+done
31f061
 
31f061
 vgremove -ff $vg