* [PATCHSET] fstests: catch up with xfsprogs 7.0
@ 2026-05-07 22:23 Darrick J. Wong
2026-05-07 22:23 ` [PATCH 1/2] generic/45[34]: add detection of confusable variation sequences Darrick J. Wong
2026-05-07 22:23 ` [PATCH 2/2] generic/45[34]: don't warn on mixed bidirectional characters Darrick J. Wong
0 siblings, 2 replies; 5+ messages in thread
From: Darrick J. Wong @ 2026-05-07 22:23 UTC (permalink / raw)
To: djwong, zlang; +Cc: gedalya, linux-xfs, fstests
Hi all,
Miscellanous fixes for 7.0.
If you're going to start using this code, I strongly recommend pulling
from my git trees, which are linked below.
With a bit of luck, this should all go splendidly.
Comments and questions are, as always, welcome.
--D
fstests git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfstests-dev.git/log/?h=fstests-7.0-fixes
---
Commits in this patchset:
* generic/45[34]: add detection of confusable variation sequences
* generic/45[34]: don't warn on mixed bidirectional characters
---
tests/generic/453 | 45 +++++++++++++++++++++++++++++++++++++++++++++
tests/generic/454 | 46 ++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 91 insertions(+)
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] generic/45[34]: add detection of confusable variation sequences
2026-05-07 22:23 [PATCHSET] fstests: catch up with xfsprogs 7.0 Darrick J. Wong
@ 2026-05-07 22:23 ` Darrick J. Wong
2026-05-08 7:07 ` Zorro Lang
2026-05-07 22:23 ` [PATCH 2/2] generic/45[34]: don't warn on mixed bidirectional characters Darrick J. Wong
1 sibling, 1 reply; 5+ messages in thread
From: Darrick J. Wong @ 2026-05-07 22:23 UTC (permalink / raw)
To: djwong, zlang; +Cc: linux-xfs, fstests
From: Darrick J. Wong <djwong@kernel.org>
ArsTechnica recently wrote about a GitHub supply chain attack wherein
non-rendering unicode sequences were embedded in javascript files to
hide payloads that could be decrypted trivially later. While these are
unlikely to appear in file and attribute names, xfs_scrub will warn about
this sort of steganography, so let's make sure it works.
Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
---
tests/generic/453 | 35 +++++++++++++++++++++++++++++++++++
tests/generic/454 | 36 ++++++++++++++++++++++++++++++++++++
2 files changed, 71 insertions(+)
diff --git a/tests/generic/453 b/tests/generic/453
index bd5ce8b2bb11d9..0193b010306c48 100755
--- a/tests/generic/453
+++ b/tests/generic/453
@@ -233,6 +233,20 @@ setf "\xf0\x9f\xab\xb6\xf0\x9f\x8f\xbc" "medium light"
setf "\xf0\x9f\xab\xb6\xf0\x9f\x8f\xbb" "light"
setf "\xf0\x9f\xab\xb6" "neutral"
+# confusion with variation selectors
+setf "variations.txt" v0
+setf "varia\xef\xb8\x80tions.txt" v1
+setf "\xef\xb8\x80variations.txt" v2
+setf "vari\xef\xb8\x80\xef\xb8\x81ations.txt" v3
+setf "varia\xf3\xa0\x87\xa4tions.txt" v4
+
+# deprecated tags are considered control characters
+setf "tags_moocow.txt" u0
+setf "tags_m\xf3\xa0\x81\xadoocow.txt" u1
+
+# totally hidden name? "(Hi)" is the file name
+setf "\xf3\xa0\x80\xa8\xf3\xa0\x81\x88\xf3\xa0\x81\xa9\xf3\xa0\x80\xa9" "(Hi)"
+
ls -laR $testdir >> $seqres.full
echo "Test files"
@@ -331,6 +345,20 @@ testf "\xf0\x9f\xab\xb6\xf0\x9f\x8f\xbc" "medium light"
testf "\xf0\x9f\xab\xb6\xf0\x9f\x8f\xbb" "light"
testf "\xf0\x9f\xab\xb6" "neutral"
+# confusion with variation selectors
+testf "variations.txt" v0
+testf "varia\xef\xb8\x80tions.txt" v1
+testf "\xef\xb8\x80variations.txt" v2
+testf "vari\xef\xb8\x80\xef\xb8\x81ations.txt" v3
+testf "varia\xf3\xa0\x87\xa4tions.txt" v4
+
+# deprecated tags are considered control characters
+testf "tags_moocow.txt" u0
+testf "tags_m\xf3\xa0\x81\xadoocow.txt" u1
+
+# totally hidden name? "(Hi)" is the file name
+testf "\xf3\xa0\x80\xa8\xf3\xa0\x81\x88\xf3\xa0\x81\xa9\xf3\xa0\x80\xa9" "(Hi)"
+
echo "Uniqueness of inodes?"
stat -c '%i' "${testdir}/"* | sort | uniq -c | while read nr inum; do
if [ "${nr}" -gt 1 ]; then
@@ -368,6 +396,13 @@ if _check_xfs_scrub_does_unicode "$SCRATCH_MNT" "$SCRATCH_DEV"; then
grep -q "llamapirate" $tmp.scrub || echo "No complaints about hidden llm instructions in filenames?"
fi
+ if grep -q "variations" $tmp.scrub; then
+ grep -q 'varia.xef.xb8' $tmp.scrub || echo "No complaints about variation sequence confusion?"
+ grep -q 'varia.xf3.xa0' $tmp.scrub || echo "No complaints about extended variation sequence confusion?"
+ grep -q 'x80variations' $tmp.scrub || echo "No complaints about variations starting a name?"
+ grep -q 'tags_m.xf3.xa0.x81' $tmp.scrub || echo "No complaints about deprecated unicode tags in a name?"
+ fi
+
echo "Actual xfs_scrub output:" >> $seqres.full
cat $tmp.scrub >> $seqres.full
fi
diff --git a/tests/generic/454 b/tests/generic/454
index 9f6ddb4a0e48b2..3454cae5d5ea6c 100755
--- a/tests/generic/454
+++ b/tests/generic/454
@@ -154,6 +154,20 @@ setf "\xf0\x9f\xab\xb6\xf0\x9f\x8f\xbc" "medium light"
setf "\xf0\x9f\xab\xb6\xf0\x9f\x8f\xbb" "light"
setf "\xf0\x9f\xab\xb6" "neutral"
+# confusion with variation selectors
+setf "variations.txt" v0
+setf "varia\xef\xb8\x80tions.txt" v1
+setf "\xef\xb8\x80variations.txt" v2
+setf "vari\xef\xb8\x80\xef\xb8\x81ations.txt" v3
+setf "varia\xf3\xa0\x87\xa4tions.txt" v4
+
+# deprecated tags are considered control characters
+setf "tags_moocow.txt" u0
+setf "tags_m\xf3\xa0\x81\xadoocow.txt" u1
+
+# totally hidden name? "(Hi)" is the file name
+setf "\xf3\xa0\x80\xa8\xf3\xa0\x81\x88\xf3\xa0\x81\xa9\xf3\xa0\x80\xa9" "(Hi)"
+
_getfattr --absolute-names -d "${testfile}" >> $seqres.full
echo "Test files"
@@ -229,6 +243,20 @@ testf "\xf0\x9f\xab\xb6\xf0\x9f\x8f\xbc" "medium light"
testf "\xf0\x9f\xab\xb6\xf0\x9f\x8f\xbb" "light"
testf "\xf0\x9f\xab\xb6" "neutral"
+# confusion with variation selectors
+testf "variations.txt" v0
+testf "varia\xef\xb8\x80tions.txt" v1
+testf "\xef\xb8\x80variations.txt" v2
+testf "vari\xef\xb8\x80\xef\xb8\x81ations.txt" v3
+testf "varia\xf3\xa0\x87\xa4tions.txt" v4
+
+# deprecated tags are considered control characters
+testf "tags_moocow.txt" u0
+testf "tags_m\xf3\xa0\x81\xadoocow.txt" u1
+
+# totally hidden name? "(Hi)" is the file name
+testf "\xf3\xa0\x80\xa8\xf3\xa0\x81\x88\xf3\xa0\x81\xa9\xf3\xa0\x80\xa9" "(Hi)"
+
echo "Uniqueness of keys?"
crazy_keys="$(_getfattr --absolute-names -d "${testfile}" | grep -E -c '(french_|chinese_|greek_|arabic_|urk)')"
expected_keys=11
@@ -249,6 +277,14 @@ if _check_xfs_scrub_does_unicode "$SCRATCH_MNT" "$SCRATCH_DEV"; then
grep -q "prohibition_" $tmp.scrub || echo "No complaints about prohibited sequence confusables?"
grep -q "zerojoin_" $tmp.scrub || echo "No complaints about zero-width join confusables?"
grep -q "llamapirate" $tmp.scrub || echo "No complaints about hidden llm instructions in filenames?"
+
+ if grep -q "variations" $tmp.scrub; then
+ grep -q 'varia.xef.xb8' $tmp.scrub || echo "No complaints about variation sequence confusion?"
+ grep -q 'varia.xf3.xa0' $tmp.scrub || echo "No complaints about extended variation sequence confusion?"
+ grep -q 'x80variations' $tmp.scrub || echo "No complaints about variations starting a name?"
+ grep -q 'tags_m.xf3.xa0.x81' $tmp.scrub || echo "No complaints about deprecated unicode tags in a name?"
+ fi
+
echo "Actual xfs_scrub output:" >> $seqres.full
echo "${output}" >> $seqres.full
fi
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH 1/2] generic/45[34]: add detection of confusable variation sequences
2026-05-07 22:23 ` [PATCH 1/2] generic/45[34]: add detection of confusable variation sequences Darrick J. Wong
@ 2026-05-08 7:07 ` Zorro Lang
0 siblings, 0 replies; 5+ messages in thread
From: Zorro Lang @ 2026-05-08 7:07 UTC (permalink / raw)
To: Darrick J. Wong; +Cc: linux-xfs, fstests
On Thu, May 07, 2026 at 03:23:19PM -0700, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@kernel.org>
>
> ArsTechnica recently wrote about a GitHub supply chain attack wherein
> non-rendering unicode sequences were embedded in javascript files to
> hide payloads that could be decrypted trivially later. While these are
> unlikely to appear in file and attribute names, xfs_scrub will warn about
> this sort of steganography, so let's make sure it works.
>
> Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
> ---
Make sense to me, I saw your patch:
commit 95329f9fa13040962c5a2a5e91a29ba215eb341f
Author: Darrick J. Wong <djwong@kernel.org>
Date: Mon Apr 13 07:57:00 2026 -0700
xfs_scrub: warn about unicode variation selectors in names
Maybe we can metion the fix in the test case or in the commit log?
Reviewed-by: Zorro Lang <zlang@kernel.org>
> tests/generic/453 | 35 +++++++++++++++++++++++++++++++++++
> tests/generic/454 | 36 ++++++++++++++++++++++++++++++++++++
> 2 files changed, 71 insertions(+)
>
>
> diff --git a/tests/generic/453 b/tests/generic/453
> index bd5ce8b2bb11d9..0193b010306c48 100755
> --- a/tests/generic/453
> +++ b/tests/generic/453
> @@ -233,6 +233,20 @@ setf "\xf0\x9f\xab\xb6\xf0\x9f\x8f\xbc" "medium light"
> setf "\xf0\x9f\xab\xb6\xf0\x9f\x8f\xbb" "light"
> setf "\xf0\x9f\xab\xb6" "neutral"
>
> +# confusion with variation selectors
> +setf "variations.txt" v0
> +setf "varia\xef\xb8\x80tions.txt" v1
> +setf "\xef\xb8\x80variations.txt" v2
> +setf "vari\xef\xb8\x80\xef\xb8\x81ations.txt" v3
> +setf "varia\xf3\xa0\x87\xa4tions.txt" v4
> +
> +# deprecated tags are considered control characters
> +setf "tags_moocow.txt" u0
> +setf "tags_m\xf3\xa0\x81\xadoocow.txt" u1
> +
> +# totally hidden name? "(Hi)" is the file name
> +setf "\xf3\xa0\x80\xa8\xf3\xa0\x81\x88\xf3\xa0\x81\xa9\xf3\xa0\x80\xa9" "(Hi)"
> +
> ls -laR $testdir >> $seqres.full
>
> echo "Test files"
> @@ -331,6 +345,20 @@ testf "\xf0\x9f\xab\xb6\xf0\x9f\x8f\xbc" "medium light"
> testf "\xf0\x9f\xab\xb6\xf0\x9f\x8f\xbb" "light"
> testf "\xf0\x9f\xab\xb6" "neutral"
>
> +# confusion with variation selectors
> +testf "variations.txt" v0
> +testf "varia\xef\xb8\x80tions.txt" v1
> +testf "\xef\xb8\x80variations.txt" v2
> +testf "vari\xef\xb8\x80\xef\xb8\x81ations.txt" v3
> +testf "varia\xf3\xa0\x87\xa4tions.txt" v4
> +
> +# deprecated tags are considered control characters
> +testf "tags_moocow.txt" u0
> +testf "tags_m\xf3\xa0\x81\xadoocow.txt" u1
> +
> +# totally hidden name? "(Hi)" is the file name
> +testf "\xf3\xa0\x80\xa8\xf3\xa0\x81\x88\xf3\xa0\x81\xa9\xf3\xa0\x80\xa9" "(Hi)"
> +
> echo "Uniqueness of inodes?"
> stat -c '%i' "${testdir}/"* | sort | uniq -c | while read nr inum; do
> if [ "${nr}" -gt 1 ]; then
> @@ -368,6 +396,13 @@ if _check_xfs_scrub_does_unicode "$SCRATCH_MNT" "$SCRATCH_DEV"; then
> grep -q "llamapirate" $tmp.scrub || echo "No complaints about hidden llm instructions in filenames?"
> fi
>
> + if grep -q "variations" $tmp.scrub; then
> + grep -q 'varia.xef.xb8' $tmp.scrub || echo "No complaints about variation sequence confusion?"
> + grep -q 'varia.xf3.xa0' $tmp.scrub || echo "No complaints about extended variation sequence confusion?"
> + grep -q 'x80variations' $tmp.scrub || echo "No complaints about variations starting a name?"
> + grep -q 'tags_m.xf3.xa0.x81' $tmp.scrub || echo "No complaints about deprecated unicode tags in a name?"
> + fi
> +
> echo "Actual xfs_scrub output:" >> $seqres.full
> cat $tmp.scrub >> $seqres.full
> fi
> diff --git a/tests/generic/454 b/tests/generic/454
> index 9f6ddb4a0e48b2..3454cae5d5ea6c 100755
> --- a/tests/generic/454
> +++ b/tests/generic/454
> @@ -154,6 +154,20 @@ setf "\xf0\x9f\xab\xb6\xf0\x9f\x8f\xbc" "medium light"
> setf "\xf0\x9f\xab\xb6\xf0\x9f\x8f\xbb" "light"
> setf "\xf0\x9f\xab\xb6" "neutral"
>
> +# confusion with variation selectors
> +setf "variations.txt" v0
> +setf "varia\xef\xb8\x80tions.txt" v1
> +setf "\xef\xb8\x80variations.txt" v2
> +setf "vari\xef\xb8\x80\xef\xb8\x81ations.txt" v3
> +setf "varia\xf3\xa0\x87\xa4tions.txt" v4
> +
> +# deprecated tags are considered control characters
> +setf "tags_moocow.txt" u0
> +setf "tags_m\xf3\xa0\x81\xadoocow.txt" u1
> +
> +# totally hidden name? "(Hi)" is the file name
> +setf "\xf3\xa0\x80\xa8\xf3\xa0\x81\x88\xf3\xa0\x81\xa9\xf3\xa0\x80\xa9" "(Hi)"
> +
> _getfattr --absolute-names -d "${testfile}" >> $seqres.full
>
> echo "Test files"
> @@ -229,6 +243,20 @@ testf "\xf0\x9f\xab\xb6\xf0\x9f\x8f\xbc" "medium light"
> testf "\xf0\x9f\xab\xb6\xf0\x9f\x8f\xbb" "light"
> testf "\xf0\x9f\xab\xb6" "neutral"
>
> +# confusion with variation selectors
> +testf "variations.txt" v0
> +testf "varia\xef\xb8\x80tions.txt" v1
> +testf "\xef\xb8\x80variations.txt" v2
> +testf "vari\xef\xb8\x80\xef\xb8\x81ations.txt" v3
> +testf "varia\xf3\xa0\x87\xa4tions.txt" v4
> +
> +# deprecated tags are considered control characters
> +testf "tags_moocow.txt" u0
> +testf "tags_m\xf3\xa0\x81\xadoocow.txt" u1
> +
> +# totally hidden name? "(Hi)" is the file name
> +testf "\xf3\xa0\x80\xa8\xf3\xa0\x81\x88\xf3\xa0\x81\xa9\xf3\xa0\x80\xa9" "(Hi)"
> +
> echo "Uniqueness of keys?"
> crazy_keys="$(_getfattr --absolute-names -d "${testfile}" | grep -E -c '(french_|chinese_|greek_|arabic_|urk)')"
> expected_keys=11
> @@ -249,6 +277,14 @@ if _check_xfs_scrub_does_unicode "$SCRATCH_MNT" "$SCRATCH_DEV"; then
> grep -q "prohibition_" $tmp.scrub || echo "No complaints about prohibited sequence confusables?"
> grep -q "zerojoin_" $tmp.scrub || echo "No complaints about zero-width join confusables?"
> grep -q "llamapirate" $tmp.scrub || echo "No complaints about hidden llm instructions in filenames?"
> +
> + if grep -q "variations" $tmp.scrub; then
> + grep -q 'varia.xef.xb8' $tmp.scrub || echo "No complaints about variation sequence confusion?"
> + grep -q 'varia.xf3.xa0' $tmp.scrub || echo "No complaints about extended variation sequence confusion?"
> + grep -q 'x80variations' $tmp.scrub || echo "No complaints about variations starting a name?"
> + grep -q 'tags_m.xf3.xa0.x81' $tmp.scrub || echo "No complaints about deprecated unicode tags in a name?"
> + fi
> +
> echo "Actual xfs_scrub output:" >> $seqres.full
> echo "${output}" >> $seqres.full
> fi
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/2] generic/45[34]: don't warn on mixed bidirectional characters
2026-05-07 22:23 [PATCHSET] fstests: catch up with xfsprogs 7.0 Darrick J. Wong
2026-05-07 22:23 ` [PATCH 1/2] generic/45[34]: add detection of confusable variation sequences Darrick J. Wong
@ 2026-05-07 22:23 ` Darrick J. Wong
2026-05-08 7:22 ` Zorro Lang
1 sibling, 1 reply; 5+ messages in thread
From: Darrick J. Wong @ 2026-05-07 22:23 UTC (permalink / raw)
To: djwong, zlang; +Cc: gedalya, linux-xfs, fstests
From: Darrick J. Wong <djwong@kernel.org>
We're dropping this warning from xfs_scrub because the warning is
incorrect, so let's make sure the QA system checks that it's gone.
Cc: gedalya@gedalya.net
Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
---
tests/generic/453 | 10 ++++++++++
tests/generic/454 | 10 ++++++++++
2 files changed, 20 insertions(+)
diff --git a/tests/generic/453 b/tests/generic/453
index 0193b010306c48..9b121d995ad1ab 100755
--- a/tests/generic/453
+++ b/tests/generic/453
@@ -247,6 +247,10 @@ setf "tags_m\xf3\xa0\x81\xadoocow.txt" u1
# totally hidden name? "(Hi)" is the file name
setf "\xf3\xa0\x80\xa8\xf3\xa0\x81\x88\xf3\xa0\x81\xa9\xf3\xa0\x80\xa9" "(Hi)"
+# Gedalya complained about being flagged for mixing Hebrew (RTL) and Latin
+# (LTR) codepoints in the same name. This is a common practice.
+setf "\xd7\xa2\xd7\x91\xd7\xa8\xd7\x99\xd7\xaa.pdf" "mixed rtl and ltr chars?"
+
ls -laR $testdir >> $seqres.full
echo "Test files"
@@ -359,6 +363,10 @@ testf "tags_m\xf3\xa0\x81\xadoocow.txt" u1
# totally hidden name? "(Hi)" is the file name
testf "\xf3\xa0\x80\xa8\xf3\xa0\x81\x88\xf3\xa0\x81\xa9\xf3\xa0\x80\xa9" "(Hi)"
+# Gedalya complained about being flagged for mixing Hebrew (RTL) and Latin
+# (LTR) codepoints in the same name. This is a common practice.
+testf "\xd7\xa2\xd7\x91\xd7\xa8\xd7\x99\xd7\xaa.pdf" "mixed rtl and ltr chars?"
+
echo "Uniqueness of inodes?"
stat -c '%i' "${testdir}/"* | sort | uniq -c | while read nr inum; do
if [ "${nr}" -gt 1 ]; then
@@ -403,6 +411,8 @@ if _check_xfs_scrub_does_unicode "$SCRATCH_MNT" "$SCRATCH_DEV"; then
grep -q 'tags_m.xf3.xa0.x81' $tmp.scrub || echo "No complaints about deprecated unicode tags in a name?"
fi
+ grep -q 'mixes bidirectional characters' $tmp.scrub && echo "Unnecessary complaints about mixed bidi characters in a name?"
+
echo "Actual xfs_scrub output:" >> $seqres.full
cat $tmp.scrub >> $seqres.full
fi
diff --git a/tests/generic/454 b/tests/generic/454
index 3454cae5d5ea6c..81c9a721561cf8 100755
--- a/tests/generic/454
+++ b/tests/generic/454
@@ -168,6 +168,10 @@ setf "tags_m\xf3\xa0\x81\xadoocow.txt" u1
# totally hidden name? "(Hi)" is the file name
setf "\xf3\xa0\x80\xa8\xf3\xa0\x81\x88\xf3\xa0\x81\xa9\xf3\xa0\x80\xa9" "(Hi)"
+# Gedalya complained about being flagged for mixing Hebrew (RTL) and Latin
+# (LTR) codepoints in the same name. This is a common practice.
+setf "\xd7\xa2\xd7\x91\xd7\xa8\xd7\x99\xd7\xaa.pdf" "mixed rtl and ltr chars?"
+
_getfattr --absolute-names -d "${testfile}" >> $seqres.full
echo "Test files"
@@ -256,6 +260,10 @@ testf "tags_m\xf3\xa0\x81\xadoocow.txt" u1
# totally hidden name? "(Hi)" is the file name
testf "\xf3\xa0\x80\xa8\xf3\xa0\x81\x88\xf3\xa0\x81\xa9\xf3\xa0\x80\xa9" "(Hi)"
+#
+# Gedalya complained about being flagged for mixing Hebrew (RTL) and Latin
+# (LTR) codepoints in the same name. This is a common practice.
+testf "\xd7\xa2\xd7\x91\xd7\xa8\xd7\x99\xd7\xaa.pdf" "mixed rtl and ltr chars?"
echo "Uniqueness of keys?"
crazy_keys="$(_getfattr --absolute-names -d "${testfile}" | grep -E -c '(french_|chinese_|greek_|arabic_|urk)')"
@@ -285,6 +293,8 @@ if _check_xfs_scrub_does_unicode "$SCRATCH_MNT" "$SCRATCH_DEV"; then
grep -q 'tags_m.xf3.xa0.x81' $tmp.scrub || echo "No complaints about deprecated unicode tags in a name?"
fi
+ grep -q 'mixes bidirectional characters' $tmp.scrub && echo "Unnecessary complaints about mixed bidi characters in a name?"
+
echo "Actual xfs_scrub output:" >> $seqres.full
echo "${output}" >> $seqres.full
fi
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH 2/2] generic/45[34]: don't warn on mixed bidirectional characters
2026-05-07 22:23 ` [PATCH 2/2] generic/45[34]: don't warn on mixed bidirectional characters Darrick J. Wong
@ 2026-05-08 7:22 ` Zorro Lang
0 siblings, 0 replies; 5+ messages in thread
From: Zorro Lang @ 2026-05-08 7:22 UTC (permalink / raw)
To: Darrick J. Wong; +Cc: gedalya, linux-xfs, fstests
On Thu, May 07, 2026 at 03:23:34PM -0700, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@kernel.org>
>
> We're dropping this warning from xfs_scrub because the warning is
> incorrect, so let's make sure the QA system checks that it's gone.
>
> Cc: gedalya@gedalya.net
> Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
> ---
/me is just back from a paper about BIDI (Bidirectional Text), so the
"\xd7...\xaa" is RTL part, then ".pdf" is LTR part. OK, this test makes
sense to me. Darrick is going to become a word/char processing master now :)
Reviewed-by: Zorro Lang <zlang@kernel.org>
> tests/generic/453 | 10 ++++++++++
> tests/generic/454 | 10 ++++++++++
> 2 files changed, 20 insertions(+)
>
>
> diff --git a/tests/generic/453 b/tests/generic/453
> index 0193b010306c48..9b121d995ad1ab 100755
> --- a/tests/generic/453
> +++ b/tests/generic/453
> @@ -247,6 +247,10 @@ setf "tags_m\xf3\xa0\x81\xadoocow.txt" u1
> # totally hidden name? "(Hi)" is the file name
> setf "\xf3\xa0\x80\xa8\xf3\xa0\x81\x88\xf3\xa0\x81\xa9\xf3\xa0\x80\xa9" "(Hi)"
>
> +# Gedalya complained about being flagged for mixing Hebrew (RTL) and Latin
> +# (LTR) codepoints in the same name. This is a common practice.
> +setf "\xd7\xa2\xd7\x91\xd7\xa8\xd7\x99\xd7\xaa.pdf" "mixed rtl and ltr chars?"
> +
> ls -laR $testdir >> $seqres.full
>
> echo "Test files"
> @@ -359,6 +363,10 @@ testf "tags_m\xf3\xa0\x81\xadoocow.txt" u1
> # totally hidden name? "(Hi)" is the file name
> testf "\xf3\xa0\x80\xa8\xf3\xa0\x81\x88\xf3\xa0\x81\xa9\xf3\xa0\x80\xa9" "(Hi)"
>
> +# Gedalya complained about being flagged for mixing Hebrew (RTL) and Latin
> +# (LTR) codepoints in the same name. This is a common practice.
> +testf "\xd7\xa2\xd7\x91\xd7\xa8\xd7\x99\xd7\xaa.pdf" "mixed rtl and ltr chars?"
> +
> echo "Uniqueness of inodes?"
> stat -c '%i' "${testdir}/"* | sort | uniq -c | while read nr inum; do
> if [ "${nr}" -gt 1 ]; then
> @@ -403,6 +411,8 @@ if _check_xfs_scrub_does_unicode "$SCRATCH_MNT" "$SCRATCH_DEV"; then
> grep -q 'tags_m.xf3.xa0.x81' $tmp.scrub || echo "No complaints about deprecated unicode tags in a name?"
> fi
>
> + grep -q 'mixes bidirectional characters' $tmp.scrub && echo "Unnecessary complaints about mixed bidi characters in a name?"
> +
> echo "Actual xfs_scrub output:" >> $seqres.full
> cat $tmp.scrub >> $seqres.full
> fi
> diff --git a/tests/generic/454 b/tests/generic/454
> index 3454cae5d5ea6c..81c9a721561cf8 100755
> --- a/tests/generic/454
> +++ b/tests/generic/454
> @@ -168,6 +168,10 @@ setf "tags_m\xf3\xa0\x81\xadoocow.txt" u1
> # totally hidden name? "(Hi)" is the file name
> setf "\xf3\xa0\x80\xa8\xf3\xa0\x81\x88\xf3\xa0\x81\xa9\xf3\xa0\x80\xa9" "(Hi)"
>
> +# Gedalya complained about being flagged for mixing Hebrew (RTL) and Latin
> +# (LTR) codepoints in the same name. This is a common practice.
> +setf "\xd7\xa2\xd7\x91\xd7\xa8\xd7\x99\xd7\xaa.pdf" "mixed rtl and ltr chars?"
> +
> _getfattr --absolute-names -d "${testfile}" >> $seqres.full
>
> echo "Test files"
> @@ -256,6 +260,10 @@ testf "tags_m\xf3\xa0\x81\xadoocow.txt" u1
>
> # totally hidden name? "(Hi)" is the file name
> testf "\xf3\xa0\x80\xa8\xf3\xa0\x81\x88\xf3\xa0\x81\xa9\xf3\xa0\x80\xa9" "(Hi)"
> +#
> +# Gedalya complained about being flagged for mixing Hebrew (RTL) and Latin
> +# (LTR) codepoints in the same name. This is a common practice.
> +testf "\xd7\xa2\xd7\x91\xd7\xa8\xd7\x99\xd7\xaa.pdf" "mixed rtl and ltr chars?"
>
> echo "Uniqueness of keys?"
> crazy_keys="$(_getfattr --absolute-names -d "${testfile}" | grep -E -c '(french_|chinese_|greek_|arabic_|urk)')"
> @@ -285,6 +293,8 @@ if _check_xfs_scrub_does_unicode "$SCRATCH_MNT" "$SCRATCH_DEV"; then
> grep -q 'tags_m.xf3.xa0.x81' $tmp.scrub || echo "No complaints about deprecated unicode tags in a name?"
> fi
>
> + grep -q 'mixes bidirectional characters' $tmp.scrub && echo "Unnecessary complaints about mixed bidi characters in a name?"
> +
> echo "Actual xfs_scrub output:" >> $seqres.full
> echo "${output}" >> $seqres.full
> fi
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-05-08 7:22 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-07 22:23 [PATCHSET] fstests: catch up with xfsprogs 7.0 Darrick J. Wong
2026-05-07 22:23 ` [PATCH 1/2] generic/45[34]: add detection of confusable variation sequences Darrick J. Wong
2026-05-08 7:07 ` Zorro Lang
2026-05-07 22:23 ` [PATCH 2/2] generic/45[34]: don't warn on mixed bidirectional characters Darrick J. Wong
2026-05-08 7:22 ` Zorro Lang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox