From: Amir Goldstein <amir73il@gmail.com>
To: Eryu Guan <guaneryu@gmail.com>, Xu Huan <xuhuan.fnst@cn.fujitsu.com>
Cc: fstests@vger.kernel.org
Subject: [PATCH v3] generic/401: fix test in case of no filetype support
Date: Tue, 5 Jun 2018 11:08:50 +0300 [thread overview]
Message-ID: <1528186130-22854-1-git-send-email-amir73il@gmail.com> (raw)
Xu Huan reported that this test fails on nfs in some setup.
Apparently, the assumptions made about xfs/ext* do not hold
for nfs.
Relax the verification of filetype not supported case to
allow either DT_UNKNOWN or actual file type on all files and
not only on special dir entires "." and "..".
Convert the unknown d_type replacement code from awk to bash
so it is a bit more readable and flexible.
Reported-by: Xu Huan <xuhuan.fnst@cn.fujitsu.com>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
---
Xu,
Please check if this patch fixes your problem.
I prefer to keep the test coverage of unsupported case.
I tested with xfs/ext4 with/without filetype support.
Thanks,
Amir.
tests/generic/401 | 42 ++++++++++++++++++++----------------------
1 file changed, 20 insertions(+), 22 deletions(-)
diff --git a/tests/generic/401 b/tests/generic/401
index 74f2bea..34ce76e 100755
--- a/tests/generic/401
+++ b/tests/generic/401
@@ -4,14 +4,13 @@
# Test filetype feature
#
# This test does NOT require that file system support the d_type feature.
-# It verifies that either all file types are reported as DT_UNKNOWN
-# or all file types are reported correctly.
+# It verifies that file types are reported as either DT_UNKNOWN or as
+# the actual file type. For example, special dir entries . and .. MAY be
+# reported as DT_UNKNOWN IF filetype feature is disabled (ext4), but MAY
+# also be reported as DT_DIR in this case (xfs).
#
# For fs for which we know how to test the filetype feature (xfs|ext*)
# verify getting DT_UNKNOWN IFF feature is disabled.
-# Special dir entries . and .. MAY be reported as DT_UNKNOWN IF filetype
-# feature is disabled (ext4), but MAY also be reported as DT_DIR in this
-# case (xfs).
#
#-----------------------------------------------------------------------
#
@@ -73,23 +72,22 @@ mknod $testdir/c c 1 1
mknod $testdir/b b 1 1
mknod $testdir/p p
-# Test d_type of . and ..
-# it must be DT_DIR on fs with filetype support and it could be
-# either DR_DIR or DT_UNKNOWN on fs without filetype support
-src/t_dir_type $testdir d | grep -F '.' | sort
-
-# Test that either all file types are unknown or all are correct
-if _supports_filetype $SCRATCH_MNT; then
- # print real file types
- src/t_dir_type $testdir | grep -vF '.' | sort
-else
- # print fake dir file type for . and .. if they are DT_UNKNOWN
- src/t_dir_type $testdir u | grep -F '.' | \
- awk '{ print $1, "d" }' | sort
- # list unknown files and print filename as fake file type
- src/t_dir_type $testdir u | grep -vF '.' | \
- awk '{ print $1, $1 }' | sort
-fi
+# Test d_type of test files - it must be the actual file type on fs
+# with filetype support and it could be either the actual file type
+# or DT_UNKNOWN on fs without filetype support
+ftype=
+_supports_filetype $SCRATCH_MNT && ftype=1
+src/t_dir_type $testdir | \
+while read name type; do
+ if [ "$ftype" != 1 -a "$type" = u ]; then
+ if [ "$name" = "." -o "$name" = ".." ]; then
+ type=d
+ else
+ type=$name
+ fi
+ fi
+ echo $name $type
+done | sort
status=0
exit
--
2.7.4
next reply other threads:[~2018-06-05 8:07 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-05 8:08 Amir Goldstein [this message]
2018-06-06 2:02 ` [PATCH v3] generic/401: fix test in case of no filetype support xuhuan
2018-06-07 11:13 ` Eryu Guan
2018-06-07 11:29 ` Amir Goldstein
2018-06-08 9:20 ` xuhuan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1528186130-22854-1-git-send-email-amir73il@gmail.com \
--to=amir73il@gmail.com \
--cc=fstests@vger.kernel.org \
--cc=guaneryu@gmail.com \
--cc=xuhuan.fnst@cn.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox