All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 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.