* [LTP] [PATCH 1/3] nfs_lib.sh: Add nfs_get_remote_path() @ 2021-11-18 17:23 Martin Doucha 2021-11-18 17:23 ` [LTP] [PATCH 2/3] nfs_lib.sh: Add support for test-specific parameters Martin Doucha 2021-11-18 17:23 ` [LTP] [PATCH 3/3] Add test for NFS directory listing regression Martin Doucha 0 siblings, 2 replies; 4+ messages in thread From: Martin Doucha @ 2021-11-18 17:23 UTC (permalink / raw) To: ltp Sometimes it's necessary to manipulate remote NFS directory directly e.g. to simulate external server activity. nfs_get_remote_path() will print the remote path so that it can then be used by tst_rhost_run(). Signed-off-by: Martin Doucha <mdoucha@suse.cz> --- testcases/network/nfs/nfs_stress/nfs_lib.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/testcases/network/nfs/nfs_stress/nfs_lib.sh b/testcases/network/nfs/nfs_stress/nfs_lib.sh index 206f11fdd..790655643 100644 --- a/testcases/network/nfs/nfs_stress/nfs_lib.sh +++ b/testcases/network/nfs/nfs_stress/nfs_lib.sh @@ -52,6 +52,19 @@ get_socket_type() done } +nfs_get_remote_path() +{ + local v + local type=$(get_socket_type ${2:-0}) + + for v in $VERSION; do + break; + done + + v=${1:-$v} + echo "$TST_TMPDIR/$v/$type" +} + nfs_server_udp_enabled() { local config f -- 2.33.0 -- Mailing list info: https://lists.linux.it/listinfo/ltp ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [LTP] [PATCH 2/3] nfs_lib.sh: Add support for test-specific parameters 2021-11-18 17:23 [LTP] [PATCH 1/3] nfs_lib.sh: Add nfs_get_remote_path() Martin Doucha @ 2021-11-18 17:23 ` Martin Doucha 2021-11-18 17:23 ` [LTP] [PATCH 3/3] Add test for NFS directory listing regression Martin Doucha 1 sibling, 0 replies; 4+ messages in thread From: Martin Doucha @ 2021-11-18 17:23 UTC (permalink / raw) To: ltp Signed-off-by: Martin Doucha <mdoucha@suse.cz> --- testcases/network/nfs/nfs_stress/nfs_lib.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/testcases/network/nfs/nfs_stress/nfs_lib.sh b/testcases/network/nfs/nfs_stress/nfs_lib.sh index 790655643..b01215136 100644 --- a/testcases/network/nfs/nfs_stress/nfs_lib.sh +++ b/testcases/network/nfs/nfs_stress/nfs_lib.sh @@ -19,10 +19,12 @@ nfs_parse_args() case "$1" in v) VERSION="$(echo $2 | tr ',' ' ')";; t) SOCKET_TYPE="$(echo $2 | tr ',' ' ')";; + *) [ "$NFS_PARSE_ARGS_CALLER" ] && $NFS_PARSE_ARGS_CALLER "$@";; esac } -TST_OPTS="v:t:" +NFS_PARSE_ARGS_CALLER="$TST_PARSE_ARGS" +TST_OPTS="v:t:$TST_OPTS" TST_PARSE_ARGS=nfs_parse_args TST_USAGE=nfs_usage TST_NEEDS_TMPDIR=1 -- 2.33.0 -- Mailing list info: https://lists.linux.it/listinfo/ltp ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [LTP] [PATCH 3/3] Add test for NFS directory listing regression 2021-11-18 17:23 [LTP] [PATCH 1/3] nfs_lib.sh: Add nfs_get_remote_path() Martin Doucha 2021-11-18 17:23 ` [LTP] [PATCH 2/3] nfs_lib.sh: Add support for test-specific parameters Martin Doucha @ 2021-11-18 17:23 ` Martin Doucha 2021-11-23 9:49 ` Petr Vorel 1 sibling, 1 reply; 4+ messages in thread From: Martin Doucha @ 2021-11-18 17:23 UTC (permalink / raw) To: ltp --- runtest/net.nfs | 11 +++++ testcases/network/nfs/nfs_stress/Makefile | 3 +- testcases/network/nfs/nfs_stress/nfs07.sh | 56 +++++++++++++++++++++++ 3 files changed, 69 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..d8e482751 --- /dev/null +++ b/testcases/network/nfs/nfs_stress/nfs07.sh @@ -0,0 +1,56 @@ +#!/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 + +do_setup() +{ + nfs_setup + + local rpath=$(nfs_get_remote_path) + tst_rhost_run -s -c "touch $rpath/file{1..$FILE_COUNT}" + tst_rhost_run -s -c "mkdir $rpath/dir{1..$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 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [LTP] [PATCH 3/3] Add test for NFS directory listing regression 2021-11-18 17:23 ` [LTP] [PATCH 3/3] Add test for NFS directory listing regression Martin Doucha @ 2021-11-23 9:49 ` Petr Vorel 0 siblings, 0 replies; 4+ messages in thread From: Petr Vorel @ 2021-11-23 9:49 UTC (permalink / raw) To: Martin Doucha; +Cc: ltp Hi Martin, Cc: Alexey ... > +++ b/testcases/network/nfs/nfs_stress/Makefile > @@ -15,6 +15,7 @@ INSTALL_TARGETS := nfs_lib.sh \ > nfs03 \ > nfs04 \ > nfs05 \ > - nfs06 > + nfs06 \ > + nfs07.sh + 1 for .sh name, we should later add it to the rest of NFS shell scripts. > 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..d8e482751 > --- /dev/null > +++ b/testcases/network/nfs/nfs_stress/nfs07.sh > @@ -0,0 +1,56 @@ > +#!/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 nit: nfs07.sh -h does not list this, would you care to add TST_USAGE? > +} > + > +. nfs_lib.sh > + > +do_setup() > +{ > + nfs_setup > + > + local rpath=$(nfs_get_remote_path) > + tst_rhost_run -s -c "touch $rpath/file{1..$FILE_COUNT}" > + tst_rhost_run -s -c "mkdir $rpath/dir{1..$FILE_COUNT}" Unfortunately {1..$FILE_COUNT} is bashism (not work at least on dash). Could you please rewrite it to using for cycle and seq? It might be reasonably slower on bash, but working everywhere. The rest LGTM, good idea to add this test. Kind regards, Petr > +} > + > +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 -- Mailing list info: https://lists.linux.it/listinfo/ltp ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-11-23 9:49 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-11-18 17:23 [LTP] [PATCH 1/3] nfs_lib.sh: Add nfs_get_remote_path() Martin Doucha 2021-11-18 17:23 ` [LTP] [PATCH 2/3] nfs_lib.sh: Add support for test-specific parameters Martin Doucha 2021-11-18 17:23 ` [LTP] [PATCH 3/3] Add test for NFS directory listing regression Martin Doucha 2021-11-23 9:49 ` Petr Vorel
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox