From d2c6866bdbe6c4ca04c1282c883a3bb0d3541403 Mon Sep 17 00:00:00 2001
From: Zdenek Kabelac <zkabelac@redhat.com>
Date: Fri, 10 May 2024 00:24:23 +0200
Subject: [PATCH] tests: vdo conversion updates

---
 test/shell/lvconvert-thin-vdo.sh | 15 +++++++++++----
 test/shell/lvcreate-thin-vdo.sh  | 10 +++++++++-
 2 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/test/shell/lvconvert-thin-vdo.sh b/test/shell/lvconvert-thin-vdo.sh
index 0cb0b1eaf..8e186e223 100644
--- a/test/shell/lvconvert-thin-vdo.sh
+++ b/test/shell/lvconvert-thin-vdo.sh
@@ -30,26 +30,33 @@ prepare_lvs() {
 #
 aux have_thin 1 0 0 || skip
 aux have_vdo 6 2 0 || skip
+which mkfs.ext4 || skip
 
 aux prepare_vg 4 6400
 
-
 # convert to thin-pool with VDO backend from existing VG/LV
 lvcreate -L5G --name $lv1 $vg
-lvconvert --yes --type thin-pool -c 256K --pooldatavdo y $vg/$lv1
+mkfs.ext4 "$DM_DEV_DIR/$vg/$lv1"
+# Conversion catched present filesystem and should fail
+fail lvconvert -Wy --type thin-pool -c 256K --deduplication n --pooldatavdo y $vg/$lv1
+# With --yes it should work over prompt
+lvconvert --yes -Wy --type thin-pool -c 256K --deduplication n --pooldatavdo y $vg/$lv1
 
 check lv_field $vg/$lv1 segtype thin-pool
 check lv_field $vg/${lv1}_tdata segtype vdo -a
+check lv_field $vg/${lv1}_tdata vdo_deduplication "" -a  # deduplication should be disabled
 
 lvremove -f $vg
 
 
 # convert to thin-pool with VDO backend from existing VDO VG/LV
-lvcreate -L5G --vdo --name $lv1 $vg
-lvconvert --yes --type thin-pool --pooldatavdo y $vg/$lv1
+lvcreate -L5G --vdo --compression y --name $lv1 $vg
+lvconvert --yes -Wy --type thin-pool --pooldatavdo y --compression n --vdosettings 'ack_threads=4' $vg/$lv1
 
 check lv_field $vg/$lv1 segtype thin-pool
 check lv_field $vg/${lv1}_tdata segtype vdo -a
+check lv_field $vg/${lv1}_tdata vdo_compression "" -a  # compression should be disabled
+
 
 lvremove -f $vg
 
diff --git a/test/shell/lvcreate-thin-vdo.sh b/test/shell/lvcreate-thin-vdo.sh
index e73d9d99f..92d9a2851 100644
--- a/test/shell/lvcreate-thin-vdo.sh
+++ b/test/shell/lvcreate-thin-vdo.sh
@@ -20,15 +20,23 @@ export LVM_TEST_THIN_REPAIR_CMD=${LVM_TEST_THIN_REPAIR_CMD-/bin/false}
 
 aux have_thin 1 0 0 || skip
 aux have_vdo 6 2 0 || skip
+which mkfs.ext4 || skip
 
 #
 # Main
 #
 aux prepare_vg 2 6400
 
+# Prepare some 'existing' fs signature, should be at location
+# used by later lvcreate --type thin-pool
+lvcreate -L5m -n $lv1 $vg
+lvcreate -L5G -n $lv2 $vg
+mkfs.ext4 "$DM_DEV_DIR/$vg/$lv2"
+lvremove -f $vg
+# TODO: lvm2 should like allow control over wipesginate when creating thin-pool
+
 # convert to thin-pool with VDO backend from existing VDO VG/LV
 lvcreate --type thin-pool -L5G --pooldatavdo y --name $lv1 $vg
-
 check lv_field $vg/$lv1 segtype thin-pool
 check lv_field $vg/${lv1}_tdata segtype vdo -a
 
-- 
2.43.5