public inbox for ltp@lists.linux.it
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox