Skip to contentSkip to conversation

ext4/053: update the test_dummy_encryption tests

PATCH In review Eric Biggers 4 participants 6 messages May 30, 2022 – Jun 3, 2022

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 ext4/053: update the test_dummy_encryption tests

From: Eric Biggers <[email protected]>

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.

---

v2: mention the commit ID now that it is merged, and add a Reviewed-by

 tests/ext4/053 | 35 +++++++++++++++++++++--------------
 1 file changed, 21 insertions(+), 14 deletions(-)
tests/ext4/053 +21 -14
index 187a2515..23e553c5 100755
@@ -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

base-commit: d3cc66012a287b6db81aad408b6970a4a96a67da

Signature · 1 line
2.36.1
#1 lore raw
Quoted 6 lines · Eric Biggers

From: Eric Biggers <[email protected]>

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.

Quoted 6 lines

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.

I thought we were going to put in a kernel version check in so that this won't break on pre-5.19 kernels? The thinking was that we wouldn't be backporting commit 5f41fdaea63d to LTS or distro kernels, so the version number check would be reliable in this instance.

Otherwise people who are testing enterprise kernels, LTS kernels, etc., will see this test fail.

- Ted

#2 lore raw
Quoted 19 lines · Theodore Ts'o
Quoted 6 lines · Eric Biggers

From: Eric Biggers <[email protected]>

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.

Quoted 6 lines

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.

I thought we were going to put in a kernel version check in so that this won't break on pre-5.19 kernels? The thinking was that we wouldn't be backporting commit 5f41fdaea63d to LTS or distro kernels, so the version number check would be reliable in this instance.

Quoted 4 lines

Otherwise people who are testing enterprise kernels, LTS kernels, etc., will see this test fail.

- Ted

This was already discussed in the original thread. IIUC, both Zorro and Lukas prefer *not* having the kernel version check.

The whole test script is still gated on 5.12, so I'll only have to backport the commit to 5.15 (unless the 5.12 version check gets removed).

- Eric

#3 lore raw
In reply to Eric Biggers
Quoted 10 lines · Eric Biggers

From: Eric Biggers <[email protected]>

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.

Quoted 5 lines

---

v2: mention the commit ID now that it is merged, and add a Reviewed-by

Hi Eric,

If I don't remember wrong, it was a patchset with 2 patches. Now you only send this patch out, do you hope to merge this one only, or merge both?

Thanks,
Zorro

Quoted 62 lines
 tests/ext4/053 | 35 +++++++++++++++++++++--------------
 1 file changed, 21 insertions(+), 14 deletions(-)
tests/ext4/053 +21 -14
index 187a2515..23e553c5 100755
@@ -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

base-commit: d3cc66012a287b6db81aad408b6970a4a96a67da

Signature · 1 line
2.36.1
#4 lore raw
Quoted 17 lines · Zorro Lang
Quoted 10 lines · Eric Biggers

From: Eric Biggers <[email protected]>

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.

Quoted 5 lines

---

v2: mention the commit ID now that it is merged, and add a Reviewed-by

Quoted 8 lines

Hi Eric,

If I don't remember wrong, it was a patchset with 2 patches. Now you only send this patch out, do you hope to merge this one only, or merge both?

Thanks,
Zorro

Just this one for now. The second patch would add a test for the bug fix
https://lore.kernel.org/linux-ext4/[email protected],
but that wasn't applied for 5.19 due to a cross-tree dependency. I'll be resending that test patch later. One step at a time...

- Eric

#5 lore raw
Quoted 23 lines · Eric Biggers
Quoted 22 lines · Zorro Lang
Quoted 10 lines · Eric Biggers

From: Eric Biggers <[email protected]>

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.

Quoted 5 lines

---

v2: mention the commit ID now that it is merged, and add a Reviewed-by

Hi Eric,

If I don't remember wrong, it was a patchset with 2 patches. Now you only send this patch out, do you hope to merge this one only, or merge both?

Quoted 8 lines
Quoted 3 lines

Thanks,
Zorro

Just this one for now. The second patch would add a test for the bug fix
https://lore.kernel.org/linux-ext4/[email protected],
but that wasn't applied for 5.19 due to a cross-tree dependency. I'll be resending that test patch later. One step at a time...

Sure, thanks for clarify that :)

Thanks,
Zorro

Quoted 3 lines

- Eric