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