All of lore.kernel.org
 help / color / mirror / Atom feed
From: Martin Doucha <mdoucha@suse.cz>
To: ltp@lists.linux.it
Subject: [LTP] [PATCH v2 3/3] Add test for NFS directory listing regression
Date: Tue, 23 Nov 2021 16:15:37 +0100	[thread overview]
Message-ID: <20211123151537.14913-3-mdoucha@suse.cz> (raw)
In-Reply-To: <20211123151537.14913-1-mdoucha@suse.cz>

---

Changes since v1:
- Replace Bash-style brace expansion with $(seq ...)
- Document command line parameter in usage info

 runtest/net.nfs                           | 11 ++++
 testcases/network/nfs/nfs_stress/Makefile |  3 +-
 testcases/network/nfs/nfs_stress/nfs07.sh | 67 +++++++++++++++++++++++
 3 files changed, 80 insertions(+), 1 deletion(-)
 create mode 100755 testcases/network/nfs/nfs_stress/nfs07.sh

diff --git a/runtest/net.nfs b/runtest/net.nfs
index 3df35809a..042c14ce4 100644
--- a/runtest/net.nfs
+++ b/runtest/net.nfs
@@ -61,6 +61,17 @@ nfs01_06  nfs06 -v "3,3,3,4,4,4" -t "udp,udp,tcp,tcp,tcp,tcp"
 nfs02_06 nfs06 -v "3,4,4.1,4.2,4.2,4.2" -t "udp,tcp,tcp,tcp,tcp,tcp"
 nfs03_ipv6_06 nfs06 -6 -v "4,4.1,4.1,4.2,4.2,4.2" -t "tcp,tcp,tcp,tcp,tcp,tcp"
 
+nfs3_07 nfs07.sh -v 3 -t udp
+nfs3t_07 nfs07.sh -v 3 -t tcp
+nfs4_07 nfs07.sh -v 4 -t tcp
+nfs41_07 nfs07.sh -v 4.1 -t tcp
+nfs42_07 nfs07.sh -v 4.2 -t tcp
+nfs3_ipv6_07 nfs07.sh -6 -v 3 -t udp
+nfs3t_ipv6_07 nfs07.sh -6 -v 3 -t tcp
+nfs4_ipv6_07 nfs07.sh -6 -v 4 -t tcp
+nfs41_ipv6_07 nfs07.sh -6 -v 4.1 -t tcp
+nfs42_ipv6_07 nfs07.sh -6 -v 4.2 -t tcp
+
 nfslock3_01 nfslock01 -v 3 -t udp
 nfslock3t_01 nfslock01 -v 3 -t tcp
 nfslock4_01 nfslock01 -v 4 -t tcp
diff --git a/testcases/network/nfs/nfs_stress/Makefile b/testcases/network/nfs/nfs_stress/Makefile
index 856008ce2..0b7408e29 100644
--- a/testcases/network/nfs/nfs_stress/Makefile
+++ b/testcases/network/nfs/nfs_stress/Makefile
@@ -15,6 +15,7 @@ INSTALL_TARGETS		:= nfs_lib.sh \
 			   nfs03 \
 			   nfs04 \
 			   nfs05 \
-			   nfs06
+			   nfs06 \
+			   nfs07.sh
 
 include $(top_srcdir)/include/mk/generic_leaf_target.mk
diff --git a/testcases/network/nfs/nfs_stress/nfs07.sh b/testcases/network/nfs/nfs_stress/nfs07.sh
new file mode 100755
index 000000000..2c04746fa
--- /dev/null
+++ b/testcases/network/nfs/nfs_stress/nfs07.sh
@@ -0,0 +1,67 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (c) 2021 SUSE LLC <mdoucha@suse.cz>
+#
+#  DESCRIPTION: Create a large number of files and directories on NFS volume.
+#  Then check whether they can be listed via NFS.
+
+FILE_COUNT=5000
+
+TST_OPTS="n:"
+TST_PARSE_ARGS=do_parse_args
+TST_TESTFUNC="do_test"
+TST_SETUP="do_setup"
+
+do_parse_args()
+{
+	case "$1" in
+	n) FILE_COUNT="$2";;
+	esac
+}
+
+. nfs_lib.sh
+
+TST_USAGE="show_usage"
+
+show_usage()
+{
+	nfs_usage
+	echo "-n x    Create x files and x directories, default is 5000"
+}
+
+do_setup()
+{
+	nfs_setup
+
+	local rpath=$(nfs_get_remote_path | sed -e 's/%/%%/g')
+	local file_fmt="$rpath/file%1.0f"
+	local dir_fmt="$rpath/dir%1.0f"
+
+	tst_rhost_run -s -c "touch \$(seq -f \"$file_fmt\" -s ' ' $FILE_COUNT)"
+	tst_rhost_run -s -c "mkdir \$(seq -f \"$dir_fmt\" -s ' ' $FILE_COUNT)"
+}
+
+do_test()
+{
+	local count
+
+	# Pass the list of files through `sort -u` in case `ls` doesn't fitler
+	# out potential duplicate filenames returned by buggy NFS
+	count=`ls | grep '^file' | sort -u | wc -l`
+
+	if [ $count -ne $FILE_COUNT ]; then
+		tst_res TFAIL "Listing files failed: $count != $FILE_COUNT"
+		return
+	fi
+
+	count=`ls | grep '^dir' | sort -u | wc -l`
+
+	if [ $count -ne $FILE_COUNT ]; then
+		tst_res TFAIL "Listing dirs failed: $count != $FILE_COUNT"
+		return
+	fi
+
+	tst_res TPASS "All files and directories were correctly listed"
+}
+
+tst_run
-- 
2.33.0


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

  parent reply	other threads:[~2021-11-23 15:16 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-23 15:15 [LTP] [PATCH v2 1/3] nfs_lib.sh: Add nfs_get_remote_path() Martin Doucha
2021-11-23 15:15 ` [LTP] [PATCH v2 2/3] nfs_lib.sh: Add support for test-specific parameters Martin Doucha
2021-11-23 19:29   ` Petr Vorel
2021-11-23 15:15 ` Martin Doucha [this message]
2021-11-23 19:40   ` [LTP] [PATCH v2 3/3] Add test for NFS directory listing regression Petr Vorel
2021-11-24  9:27     ` Martin Doucha
2021-11-24  9:50       ` Petr Vorel
2021-11-24 10:06         ` Martin Doucha
2021-11-24 10:27           ` Petr Vorel
2021-11-24 14:07         ` Alexey Kodanev
2021-11-24 14:12           ` Martin Doucha
2021-11-25 11:06             ` Petr Vorel
2021-11-25 13:27           ` Petr Vorel
2021-11-23 19:26 ` [LTP] [PATCH v2 1/3] nfs_lib.sh: Add nfs_get_remote_path() Petr Vorel

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=20211123151537.14913-3-mdoucha@suse.cz \
    --to=mdoucha@suse.cz \
    --cc=ltp@lists.linux.it \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.