From: Petr Vorel <pvorel@suse.cz>
To: Martin Doucha <mdoucha@suse.cz>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH v2 3/3] Add test for NFS directory listing regression
Date: Tue, 23 Nov 2021 20:40:09 +0100 [thread overview]
Message-ID: <YZ1Dmbh+m6blfLzZ@pevik> (raw)
In-Reply-To: <20211123151537.14913-3-mdoucha@suse.cz>
Hi Martin,
Reviewed-by: Petr Vorel <pvorel@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"
I'd use $FILE_COUNT (safe to use as help is run before setup, thus -n is not
processed).
> +}
> +
> +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)"
+1, very nice
> +}
> +
> +do_test()
> +{
> + local count
> +
> + # Pass the list of files through `sort -u` in case `ls` doesn't fitler
typo: s/fitler/filter/
> + # 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"
maybe mention $FILE_COUNT?
> +}
> +
> +tst_run
Reviewed-by: Petr Vorel <pvorel@suse.cz>
If you agree, I suggest to merge it with these changes:
diff --git testcases/network/nfs/nfs_stress/nfs07.sh testcases/network/nfs/nfs_stress/nfs07.sh
index 2c04746fa..e44573405 100755
--- testcases/network/nfs/nfs_stress/nfs07.sh
+++ testcases/network/nfs/nfs_stress/nfs07.sh
@@ -26,7 +26,7 @@ TST_USAGE="show_usage"
show_usage()
{
nfs_usage
- echo "-n x Create x files and x directories, default is 5000"
+ echo "-n x Create x files and x directories, default is $FILE_COUNT"
}
do_setup()
@@ -45,7 +45,7 @@ do_test()
{
local count
- # Pass the list of files through `sort -u` in case `ls` doesn't fitler
+ # Pass the list of files through `sort -u` in case `ls` doesn't filter
# out potential duplicate filenames returned by buggy NFS
count=`ls | grep '^file' | sort -u | wc -l`
@@ -61,7 +61,7 @@ do_test()
return
fi
- tst_res TPASS "All files and directories were correctly listed"
+ tst_res TPASS "All $FILE_COUNT files and directories were correctly listed"
}
tst_run
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2021-11-23 19:40 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 ` [LTP] [PATCH v2 3/3] Add test for NFS directory listing regression Martin Doucha
2021-11-23 19:40 ` Petr Vorel [this message]
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=YZ1Dmbh+m6blfLzZ@pevik \
--to=pvorel@suse.cz \
--cc=ltp@lists.linux.it \
--cc=mdoucha@suse.cz \
/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