summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOndrej Kozina <okozina@redhat.com>2017-10-24 11:55:14 +0200
committerOndrej Kozina <okozina@redhat.com>2017-10-24 13:41:00 +0200
commit213cea3aaa19dffef6e922e914225d21f05589f2 (patch)
treeb3b04b8218f5f3117288bd22e2a71dc0cb6527de
parentaf781897fa7d124c073c1763f47adac3d7186907 (diff)
downloadlvm2-213cea3aaa19dffef6e922e914225d21f05589f2.tar.gz
test: add regression test for fsadm bug
the bug in LUKS grow/shrink decision in fsadm was masked due to fact that default LVM2 extent size was larger than LUKS1 default data offset for dm-crypt mapping. The new test address this bug.
-rw-r--r--test/shell/fsadm-crypt.sh62
1 files changed, 60 insertions, 2 deletions
diff --git a/test/shell/fsadm-crypt.sh b/test/shell/fsadm-crypt.sh
index bd2c6869d..5104feba1 100644
--- a/test/shell/fsadm-crypt.sh
+++ b/test/shell/fsadm-crypt.sh
@@ -16,7 +16,7 @@ SKIP_WITH_LVMPOLLD=1
. lib/inittest
-aux prepare_vg 1 200
+aux prepare_vg 1 300
# set to "skip" to avoid testing given fs and test warning result
# i.e. check_reiserfs=skip
@@ -188,7 +188,7 @@ create_crypt_device()
which lsblk > /dev/null || skip
check_missing cryptsetup || skip
-# Test for block sizes != 1024 (rhbz #480022)
+vgchange -s 128k
lvcreate -n $lv1 -L25M $vg
lvcreate -n ${lv1}bar -L35M $vg
lvcreate -n ${lv1}plain -L35M $vg
@@ -217,6 +217,15 @@ test_ext2_resize() {
fscheck_ext3 "$3"
}
+test_ext2_small_shrink() {
+ mkfs.ext2 "$3"
+
+ lvresize -L-1 -r $1
+ lvresize -L-1 -r $1
+
+ fscheck_ext3 "$3"
+}
+
test_ext3_resize() {
mkfs.ext3 -b4096 -j "$3"
@@ -237,6 +246,15 @@ test_ext3_resize() {
umount "$mount_dir"
}
+test_ext3_small_shrink() {
+ mkfs.ext3 "$3"
+
+ lvresize -L-1 -r $1
+ lvresize -L-1 -r $1
+
+ fscheck_ext3 "$3"
+}
+
test_xfs_resize() {
mkfs.xfs -l internal,size=1000b -f "$3"
@@ -252,6 +270,13 @@ test_xfs_resize() {
fscheck_xfs "$3"
}
+test_xfs_small_shrink() {
+ mkfs.xfs -l internal,size=1000b -f "$3"
+
+ not lvresize -L-1 -r $1
+ fscheck_xfs "$3"
+}
+
test_reiserfs_resize() {
mkfs.reiserfs -s 513 -f "$3"
@@ -267,6 +292,15 @@ test_reiserfs_resize() {
fscheck_reiserfs "$3"
}
+test_reiserfs_small_shrink() {
+ mkfs.reiserfs -s 513 -f "$3"
+
+ lvresize -L-1 -r $1
+ lvresize -L-1 -r $1
+
+ fscheck_reiserfs "$3"
+}
+
# $1 LVM backend (vg/lv name)
# $2 LVM backend device (/dev/vg/lv)
# $3 active dm-crypt device (/dev/mapper/some_name )
@@ -478,6 +512,12 @@ if check_missing ext2; then
test_ext2_plain "$vg_lv3" "$dev_vg_lv3" "$CRYPT_DEV_PLAIN" "$CRYPT_NAME_PLAIN"
crypt_close "$CRYPT_NAME_PLAIN"
+ lvresize -f -L100M $vg_lv
+ cryptsetup resize $CRYPT_NAME
+ test_ext2_small_shrink "$vg_lv" "$dev_vg_lv" "$CRYPT_DEV"
+ lvresize -f -L25M $vg_lv
+ cryptsetup resize $CRYPT_NAME
+
if [ -z "$SKIP_DETACHED" ]; then
crypt_open_detached "$dev_vg_lv3" $PWD2 "$CRYPT_NAME2" "$dev_vg_lv2"
test_ext2_detached "$vg_lv2" "$dev_vg_lv2" "$CRYPT_DEV2" "$CRYPT_NAME2"
@@ -496,6 +536,12 @@ if check_missing ext3; then
test_ext3_plain "$vg_lv3" "$dev_vg_lv3" "$CRYPT_DEV_PLAIN" "$CRYPT_NAME_PLAIN"
crypt_close "$CRYPT_NAME_PLAIN"
+ lvresize -f -L100M $vg_lv
+ cryptsetup resize $CRYPT_NAME
+ test_ext3_small_shrink "$vg_lv" "$dev_vg_lv" "$CRYPT_DEV"
+ lvresize -f -L25M $vg_lv
+ cryptsetup resize $CRYPT_NAME
+
if [ -z "$SKIP_DETACHED" ]; then
crypt_open_detached "$dev_vg_lv3" $PWD2 "$CRYPT_NAME2" "$dev_vg_lv2"
test_ext3_detached "$vg_lv2" "$dev_vg_lv2" "$CRYPT_DEV2" "$CRYPT_NAME2"
@@ -514,6 +560,12 @@ if check_missing xfs; then
test_xfs_plain "$vg_lv3" "$dev_vg_lv3" "$CRYPT_DEV_PLAIN" "$CRYPT_NAME_PLAIN"
crypt_close "$CRYPT_NAME_PLAIN"
+ lvresize -f -L100M $vg_lv
+ cryptsetup resize $CRYPT_NAME
+ test_xfs_small_shrink "$vg_lv" "$dev_vg_lv" "$CRYPT_DEV"
+ lvresize -f -L25M $vg_lv
+ cryptsetup resize $CRYPT_NAME
+
if [ -z "$SKIP_DETACHED" ]; then
crypt_open_detached "$dev_vg_lv3" $PWD2 "$CRYPT_NAME2" "$dev_vg_lv2"
test_xfs_detached "$vg_lv2" "$dev_vg_lv2" "$CRYPT_DEV2" "$CRYPT_NAME2"
@@ -532,6 +584,12 @@ if check_missing reiserfs; then
test_reiserfs_plain "$vg_lv3" "$dev_vg_lv3" "$CRYPT_DEV_PLAIN" "$CRYPT_NAME_PLAIN"
crypt_close "$CRYPT_NAME_PLAIN"
+ lvresize -f -L100M $vg_lv
+ cryptsetup resize $CRYPT_NAME
+ test_reiserfs_small_shrink "$vg_lv" "$dev_vg_lv" "$CRYPT_DEV"
+ lvresize -f -L25M $vg_lv
+ cryptsetup resize $CRYPT_NAME
+
if [ -z "$SKIP_DETACHED" ]; then
crypt_open_detached "$dev_vg_lv3" $PWD2 "$CRYPT_NAME2" "$dev_vg_lv2"
test_reiserfs_detached "$vg_lv2" "$dev_vg_lv2" "$CRYPT_DEV2" "$CRYPT_NAME2"