ext4/053: update the test_dummy_encryption tests
authorEric Biggers <ebiggers@google.com>
Mon, 30 May 2022 17:30:44 +0000 (10:30 -0700)
committerZorro Lang <zlang@kernel.org>
Thu, 2 Jun 2022 12:41:48 +0000 (20:41 +0800)
Kernel commit 5f41fdaea63d ("ext4: only allow test_dummy_encryption when
supported") tightened the requirements on when the test_dummy_encryption
mount option is accepted.  Update ext4/053 accordingly.

Move the test cases to later in the file to group them with the other
test cases that use do_mkfs to add custom mkfs options instead of using
the "default" filesystem that the test creates at the beginning.

Reviewed-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Zorro Lang <zlang@kernel.org>
tests/ext4/053

index 187a25154cd60419e81c404c022c83658ccef327..23e553c5b21ec9b5e6f952d6741828594f8f29f4 100755 (executable)
@@ -511,20 +511,6 @@ for fstype in ext2 ext3 ext4; do
        mnt noinit_itable
        mnt max_dir_size_kb=4096
 
-       if _has_kernel_config CONFIG_FS_ENCRYPTION; then
-               mnt test_dummy_encryption
-               mnt test_dummy_encryption=v1
-               mnt test_dummy_encryption=v2
-               not_mnt test_dummy_encryption=v3
-               not_mnt test_dummy_encryption=
-       else
-               mnt test_dummy_encryption ^test_dummy_encryption
-               mnt test_dummy_encryption=v1 ^test_dummy_encryption=v1
-               mnt test_dummy_encryption=v2 ^test_dummy_encryption=v2
-               mnt test_dummy_encryption=v3 ^test_dummy_encryption=v3
-               not_mnt test_dummy_encryption=
-       fi
-
        if _has_kernel_config CONFIG_FS_ENCRYPTION_INLINE_CRYPT; then
                mnt inlinecrypt
        else
@@ -686,6 +672,27 @@ for fstype in ext2 ext3 ext4; do
        mnt_then_not_remount defaults jqfmt=vfsv1
        remount defaults grpjquota=,usrjquota= ignored
 
+       echo "== Testing the test_dummy_encryption option" >> $seqres.full
+       # Since kernel commit 5f41fdaea63d ("ext4: only allow
+       # test_dummy_encryption when supported"), the test_dummy_encryption
+       # option is only allowed when the filesystem has the encrypt feature and
+       # the kernel has CONFIG_FS_ENCRYPTION.  The encrypt feature requirement
+       # implies that this option is never allowed on ext2 or ext3 mounts.
+       if [[ $fstype == ext4 ]] && _has_kernel_config CONFIG_FS_ENCRYPTION; then
+               do_mkfs -O encrypt $SCRATCH_DEV ${SIZE}k
+               mnt test_dummy_encryption
+               mnt test_dummy_encryption=v1
+               mnt test_dummy_encryption=v2
+               not_mnt test_dummy_encryption=bad
+               not_mnt test_dummy_encryption=
+               do_mkfs -O ^encrypt $SCRATCH_DEV ${SIZE}k
+       fi
+       not_mnt test_dummy_encryption
+       not_mnt test_dummy_encryption=v1
+       not_mnt test_dummy_encryption=v2
+       not_mnt test_dummy_encryption=bad
+       not_mnt test_dummy_encryption=
+
 done #for fstype in ext2 ext3 ext4; do
 
 $UMOUNT_PROG $SCRATCH_MNT > /dev/null 2>&1