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 |
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 >
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 --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
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(-)