diff mbox series

common/casefold: Support for tmpfs casefold test

Message ID 20240823173008.280917-1-andrealmeid@igalia.com (mailing list archive)
State New, archived
Headers show
Series common/casefold: Support for tmpfs casefold test | expand

Commit Message

André Almeida Aug. 23, 2024, 5:30 p.m. UTC
Test casefold support for tmpfs.

Signed-off-by: André Almeida <andrealmeid@igalia.com>
---
 common/casefold   | 11 +++++++++++
 common/rc         |  3 +++
 tests/generic/556 | 23 +++++++++++++++++------
 3 files changed, 31 insertions(+), 6 deletions(-)

Comments

André Almeida Aug. 23, 2024, 5:35 p.m. UTC | #1
Em 23/08/2024 14:30, André Almeida escreveu:
> Test casefold support for tmpfs.
> 

The kernel side implementation can be find here: 
https://lore.kernel.org/linux-fsdevel/20240823173332.281211-1-andrealmeid@igalia.com/

> Signed-off-by: André Almeida <andrealmeid@igalia.com>
> ---
>   common/casefold   | 11 +++++++++++
>   common/rc         |  3 +++
>   tests/generic/556 | 23 +++++++++++++++++------
>   3 files changed, 31 insertions(+), 6 deletions(-)
> 
> diff --git a/common/casefold b/common/casefold
> index d9126f4c..8a646ae6 100644
> --- a/common/casefold
> +++ b/common/casefold
> @@ -12,6 +12,9 @@ _has_casefold_kernel_support()
>   	f2fs)
>   		test -f '/sys/fs/f2fs/features/casefold'
>   		;;
> +	tmpfs)
> +		test -f '/sys/fs/tmpfs/features/casefold'
> +		;;
>   	*)
>   		# defaults to unsupported
>   		false
> @@ -52,6 +55,10 @@ _scratch_mkfs_casefold()
>   	f2fs)
>   		_scratch_mkfs -C utf8 $*
>   		;;
> +	tmpfs)
> +		# there's no mkfs for tmpfs, so we just mount it
> +		mount -t tmpfs -o casefold=utf8-12.1.0 tmpfs $SCRATCH_MNT
> +		;;
>   	*)
>   		_notrun "Don't know how to mkfs with casefold support on $FSTYP"
>   		;;
> @@ -67,6 +74,10 @@ _scratch_mkfs_casefold_strict()
>   	f2fs)
>   		_scratch_mkfs -C utf8:strict
>   		;;
> +	tmpfs)
> +		# there's no mkfs for tmpfs, so we just mount it
> +		mount -t tmpfs -o casefold=utf8-12.1.0,strict_encoding tmpfs $SCRATCH_MNT
> +		;;
>   	*)
>   		_notrun "Don't know how to mkfs with casefold-strict support on $FSTYP"
>   		;;
> diff --git a/common/rc b/common/rc
> index afc33bbc..e2f4e4eb 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -374,6 +374,9 @@ _scratch_unmount()
>   	btrfs)
>   		$UMOUNT_PROG $SCRATCH_MNT
>   		;;
> +	tmpfs)
> +		$UMOUNT_PROG $SCRATCH_MNT
> +		;;
>   	*)
>   		$UMOUNT_PROG $SCRATCH_DEV
>   		;;
> diff --git a/tests/generic/556 b/tests/generic/556
> index 51d2d482..cbc0146b 100755
> --- a/tests/generic/556
> +++ b/tests/generic/556
> @@ -485,11 +485,20 @@ test_strict_mode_invalid_filename()
>   
>   _scratch_mkfs_casefold >>$seqres.full 2>&1
>   
> -_scratch_mount
> -
> -_check_dmesg_for \
> -	"\(${sdev}\): Using encoding defined by superblock: utf8" || \
> -	_fail "Could not mount with encoding: utf8"
> +# casefold tmpfs was already mounted in the mkfs step
> +if [ "$FSTYP" != "tmpfs" ]; then
> +	_scratch_mount
> +fi
> +
> +if [ "$FSTYP" == "tmpfs" ]; then
> +	_check_dmesg_for \
> +		"tmpfs: Using encoding provided by mount options: utf8" || \
> +		_fail "Could not mount with encoding: utf8"
> +else
> +	_check_dmesg_for \
> +		"\(${sdev}\): Using encoding defined by superblock: utf8" || \
> +		_fail "Could not mount with encoding: utf8"
> +fi
>   
>   test_casefold_flag_basic
>   test_casefold_lookup
> @@ -517,7 +526,9 @@ _check_scratch_fs
>   
>   # Test Strict Mode
>   _scratch_mkfs_casefold_strict >>$seqres.full 2>&1
> -_scratch_mount
> +if [ "$FSTYP" != "tmpfs" ]; then
> +	_scratch_mount
> +fi
>   
>   test_strict_mode_invalid_filename
>
André Almeida Sept. 11, 2024, 2:54 p.m. UTC | #2
Em 23/08/2024 14:30, André Almeida escreveu:
> Test casefold support for tmpfs.
> 

Due to changes in the kernel side, this diff is required to run the 
tests. I will send a proper v2 when the kernel side gets approved.

diff --git a/tests/generic/556 b/tests/generic/556
index cbc0146b..78cdf1bf 100755
--- a/tests/generic/556
+++ b/tests/generic/556
@@ -492,7 +492,7 @@ fi

  if [ "$FSTYP" == "tmpfs" ]; then
  	_check_dmesg_for \
-		"tmpfs: Using encoding provided by mount options: utf8" || \
+		"tmpfs: Using encoding" || \
  		_fail "Could not mount with encoding: utf8"
  else
  	_check_dmesg_for \

> Signed-off-by: André Almeida <andrealmeid@igalia.com>
> ---
>   common/casefold   | 11 +++++++++++
>   common/rc         |  3 +++
>   tests/generic/556 | 23 +++++++++++++++++------
>   3 files changed, 31 insertions(+), 6 deletions(-)
> 
> diff --git a/common/casefold b/common/casefold
> index d9126f4c..8a646ae6 100644
> --- a/common/casefold
> +++ b/common/casefold
> @@ -12,6 +12,9 @@ _has_casefold_kernel_support()
>   	f2fs)
>   		test -f '/sys/fs/f2fs/features/casefold'
>   		;;
> +	tmpfs)
> +		test -f '/sys/fs/tmpfs/features/casefold'
> +		;;
>   	*)
>   		# defaults to unsupported
>   		false
> @@ -52,6 +55,10 @@ _scratch_mkfs_casefold()
>   	f2fs)
>   		_scratch_mkfs -C utf8 $*
>   		;;
> +	tmpfs)
> +		# there's no mkfs for tmpfs, so we just mount it
> +		mount -t tmpfs -o casefold=utf8-12.1.0 tmpfs $SCRATCH_MNT
> +		;;
>   	*)
>   		_notrun "Don't know how to mkfs with casefold support on $FSTYP"
>   		;;
> @@ -67,6 +74,10 @@ _scratch_mkfs_casefold_strict()
>   	f2fs)
>   		_scratch_mkfs -C utf8:strict
>   		;;
> +	tmpfs)
> +		# there's no mkfs for tmpfs, so we just mount it
> +		mount -t tmpfs -o casefold=utf8-12.1.0,strict_encoding tmpfs $SCRATCH_MNT
> +		;;
>   	*)
>   		_notrun "Don't know how to mkfs with casefold-strict support on $FSTYP"
>   		;;
> diff --git a/common/rc b/common/rc
> index afc33bbc..e2f4e4eb 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -374,6 +374,9 @@ _scratch_unmount()
>   	btrfs)
>   		$UMOUNT_PROG $SCRATCH_MNT
>   		;;
> +	tmpfs)
> +		$UMOUNT_PROG $SCRATCH_MNT
> +		;;
>   	*)
>   		$UMOUNT_PROG $SCRATCH_DEV
>   		;;
> diff --git a/tests/generic/556 b/tests/generic/556
> index 51d2d482..cbc0146b 100755
> --- a/tests/generic/556
> +++ b/tests/generic/556
> @@ -485,11 +485,20 @@ test_strict_mode_invalid_filename()
>   
>   _scratch_mkfs_casefold >>$seqres.full 2>&1
>   
> -_scratch_mount
> -
> -_check_dmesg_for \
> -	"\(${sdev}\): Using encoding defined by superblock: utf8" || \
> -	_fail "Could not mount with encoding: utf8"
> +# casefold tmpfs was already mounted in the mkfs step
> +if [ "$FSTYP" != "tmpfs" ]; then
> +	_scratch_mount
> +fi
> +
> +if [ "$FSTYP" == "tmpfs" ]; then
> +	_check_dmesg_for \
> +		"tmpfs: Using encoding provided by mount options: utf8" || \
> +		_fail "Could not mount with encoding: utf8"
> +else
> +	_check_dmesg_for \
> +		"\(${sdev}\): Using encoding defined by superblock: utf8" || \
> +		_fail "Could not mount with encoding: utf8"
> +fi
>   
>   test_casefold_flag_basic
>   test_casefold_lookup
> @@ -517,7 +526,9 @@ _check_scratch_fs
>   
>   # Test Strict Mode
>   _scratch_mkfs_casefold_strict >>$seqres.full 2>&1
> -_scratch_mount
> +if [ "$FSTYP" != "tmpfs" ]; then
> +	_scratch_mount
> +fi
>   
>   test_strict_mode_invalid_filename
>
diff mbox series

Patch

diff --git a/common/casefold b/common/casefold
index d9126f4c..8a646ae6 100644
--- a/common/casefold
+++ b/common/casefold
@@ -12,6 +12,9 @@  _has_casefold_kernel_support()
 	f2fs)
 		test -f '/sys/fs/f2fs/features/casefold'
 		;;
+	tmpfs)
+		test -f '/sys/fs/tmpfs/features/casefold'
+		;;
 	*)
 		# defaults to unsupported
 		false
@@ -52,6 +55,10 @@  _scratch_mkfs_casefold()
 	f2fs)
 		_scratch_mkfs -C utf8 $*
 		;;
+	tmpfs)
+		# there's no mkfs for tmpfs, so we just mount it
+		mount -t tmpfs -o casefold=utf8-12.1.0 tmpfs $SCRATCH_MNT
+		;;
 	*)
 		_notrun "Don't know how to mkfs with casefold support on $FSTYP"
 		;;
@@ -67,6 +74,10 @@  _scratch_mkfs_casefold_strict()
 	f2fs)
 		_scratch_mkfs -C utf8:strict
 		;;
+	tmpfs)
+		# there's no mkfs for tmpfs, so we just mount it
+		mount -t tmpfs -o casefold=utf8-12.1.0,strict_encoding tmpfs $SCRATCH_MNT
+		;;
 	*)
 		_notrun "Don't know how to mkfs with casefold-strict support on $FSTYP"
 		;;
diff --git a/common/rc b/common/rc
index afc33bbc..e2f4e4eb 100644
--- a/common/rc
+++ b/common/rc
@@ -374,6 +374,9 @@  _scratch_unmount()
 	btrfs)
 		$UMOUNT_PROG $SCRATCH_MNT
 		;;
+	tmpfs)
+		$UMOUNT_PROG $SCRATCH_MNT
+		;;
 	*)
 		$UMOUNT_PROG $SCRATCH_DEV
 		;;
diff --git a/tests/generic/556 b/tests/generic/556
index 51d2d482..cbc0146b 100755
--- a/tests/generic/556
+++ b/tests/generic/556
@@ -485,11 +485,20 @@  test_strict_mode_invalid_filename()
 
 _scratch_mkfs_casefold >>$seqres.full 2>&1
 
-_scratch_mount
-
-_check_dmesg_for \
-	"\(${sdev}\): Using encoding defined by superblock: utf8" || \
-	_fail "Could not mount with encoding: utf8"
+# casefold tmpfs was already mounted in the mkfs step
+if [ "$FSTYP" != "tmpfs" ]; then
+	_scratch_mount
+fi
+
+if [ "$FSTYP" == "tmpfs" ]; then
+	_check_dmesg_for \
+		"tmpfs: Using encoding provided by mount options: utf8" || \
+		_fail "Could not mount with encoding: utf8"
+else
+	_check_dmesg_for \
+		"\(${sdev}\): Using encoding defined by superblock: utf8" || \
+		_fail "Could not mount with encoding: utf8"
+fi
 
 test_casefold_flag_basic
 test_casefold_lookup
@@ -517,7 +526,9 @@  _check_scratch_fs
 
 # Test Strict Mode
 _scratch_mkfs_casefold_strict >>$seqres.full 2>&1
-_scratch_mount
+if [ "$FSTYP" != "tmpfs" ]; then
+	_scratch_mount
+fi
 
 test_strict_mode_invalid_filename