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

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