[Fuego] [PATCH] nfs: Add test cases for nfs.
Wang Mingyu
wangmy at cn.fujitsu.com
Wed Sep 4 01:09:21 UTC 2019
This test set is used to check service(nfs-mountd/nfs-statd) and commands(nfsiostat/nfsserver/nfsstat) of nfs.
Signed-off-by: Wang Mingyu <wangmy at cn.fujitsu.com>
---
tests/Functional.nfs/fuego_test.sh | 22 +++++
tests/Functional.nfs/nfs_test.sh | 4 +
tests/Functional.nfs/spec.json | 7 ++
tests/Functional.nfs/tests/nfs-mountd_ps.sh | 69 +++++++++++++++
tests/Functional.nfs/tests/nfs-statd_ps.sh | 50 +++++++++++
tests/Functional.nfs/tests/nfsiostat.sh | 60 +++++++++++++
tests/Functional.nfs/tests/nfsserver_ps.sh | 96 +++++++++++++++++++++
tests/Functional.nfs/tests/nfsstat.sh | 32 +++++++
8 files changed, 340 insertions(+)
create mode 100644 tests/Functional.nfs/fuego_test.sh
create mode 100755 tests/Functional.nfs/nfs_test.sh
create mode 100644 tests/Functional.nfs/spec.json
create mode 100644 tests/Functional.nfs/tests/nfs-mountd_ps.sh
create mode 100644 tests/Functional.nfs/tests/nfs-statd_ps.sh
create mode 100644 tests/Functional.nfs/tests/nfsiostat.sh
create mode 100644 tests/Functional.nfs/tests/nfsserver_ps.sh
create mode 100644 tests/Functional.nfs/tests/nfsstat.sh
diff --git a/tests/Functional.nfs/fuego_test.sh b/tests/Functional.nfs/fuego_test.sh
new file mode 100644
index 0000000..624c25f
--- /dev/null
+++ b/tests/Functional.nfs/fuego_test.sh
@@ -0,0 +1,22 @@
+function test_pre_check {
+ assert_has_program nfsstat
+ assert_has_program nfsiostat
+ assert_has_program rpc.nfsd
+ assert_has_program rpc.statd
+ assert_has_program rpc.mountd
+}
+
+function test_deploy {
+ put $TEST_HOME/nfs_test.sh $BOARD_TESTDIR/fuego.$TESTDIR/
+ put $FUEGO_CORE/scripts/fuego_board_function_lib.sh $BOARD_TESTDIR/fuego.$TESTDIR
+ put -r $TEST_HOME/tests $BOARD_TESTDIR/fuego.$TESTDIR/
+}
+
+function test_run {
+ report "cd $BOARD_TESTDIR/fuego.$TESTDIR;\
+ ./nfs_test.sh"
+}
+
+function test_processing {
+ log_compare "$TESTDIR" "0" "TEST-FAIL" "n"
+}
diff --git a/tests/Functional.nfs/nfs_test.sh b/tests/Functional.nfs/nfs_test.sh
new file mode 100755
index 0000000..dd5ce37
--- /dev/null
+++ b/tests/Functional.nfs/nfs_test.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+for i in tests/*.sh; do
+ sh $i
+done
diff --git a/tests/Functional.nfs/spec.json b/tests/Functional.nfs/spec.json
new file mode 100644
index 0000000..69a241c
--- /dev/null
+++ b/tests/Functional.nfs/spec.json
@@ -0,0 +1,7 @@
+{
+ "testName": "Functional.nfs",
+ "specs": {
+ "default": {}
+ }
+}
+
diff --git a/tests/Functional.nfs/tests/nfs-mountd_ps.sh b/tests/Functional.nfs/tests/nfs-mountd_ps.sh
new file mode 100644
index 0000000..c24345e
--- /dev/null
+++ b/tests/Functional.nfs/tests/nfs-mountd_ps.sh
@@ -0,0 +1,69 @@
+#!/bin/sh
+
+# In the target start nfs-mountd, and confirm the process condition by command ps.
+
+test="nfs-mountd_ps"
+
+. ./fuego_board_function_lib.sh
+
+set_init_manager
+
+service_status=$(get_service_status nfs-mountd)
+exec_service_on_target nfs-mountd stop
+
+if [ -f /etc/exports ]
+then
+ mv /etc/exports /etc/exports_bak
+fi
+
+touch /etc/exports
+
+restore_target() {
+ if [ -f /etc/exports_bak ]
+ then
+ mv /etc/exports_bak /etc/exports
+ else
+ rm -f /etc/exports
+ fi
+}
+
+if exec_service_on_target nfs-mountd start
+then
+ echo " -> start of nfs-mountd succeeded."
+else
+ echo " -> start of nfs-mountd failed."
+ echo " -> $test: TEST-FAIL"
+ restore_target
+ exit
+fi
+
+sleep 5
+
+if ps aux | grep "[/]usr/sbin/rpc.mountd"
+then
+ echo " -> get the process of rpc.mountd."
+else
+ echo " -> can't get the process of rpc.mountd."
+ echo " -> $test: TEST-FAIL"
+ if [ "$service_status" = "inactive" ]
+ then
+ exec_service_on_target nfs-mountd stop
+ fi
+ restore_target
+ exit
+fi
+
+exec_service_on_target nfs-mountd stop
+
+if ps aux | grep "[/]usr/sbin/rpc.mountd"
+then
+ echo " -> $test: TEST-FAIL"
+else
+ echo " -> $test: TEST-PASS"
+fi
+
+if [ "$service_status" = "active" -o "$service_status" = "unknown"]
+then
+ exec_service_on_target nfs-mountd start
+fi
+restore_target
diff --git a/tests/Functional.nfs/tests/nfs-statd_ps.sh b/tests/Functional.nfs/tests/nfs-statd_ps.sh
new file mode 100644
index 0000000..43dc43b
--- /dev/null
+++ b/tests/Functional.nfs/tests/nfs-statd_ps.sh
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+# In the target start nfs-statd, and confirm the process condition by command ps.
+
+test="nfs-statd_ps"
+
+. ./fuego_board_function_lib.sh
+
+set_init_manager
+
+service_status=$(get_service_status nfs-statd)
+exec_service_on_target nfs-statd stop
+
+if exec_service_on_target nfs-statd start
+then
+ echo " -> start of nfs-statd succeeded."
+else
+ echo " -> start of nfs-statd failed."
+ echo " -> $test: TEST-FAIL"
+ exit
+fi
+
+sleep 5
+
+if ps aux | grep "[/]usr/sbin/rpc.statd"
+then
+ echo " -> get the process of rpc.statd."
+else
+ echo " -> can't get the process of rpc.statd."
+ echo " -> $test: TEST-FAIL"
+ if [ "$service_status" = "inactive" ]
+ then
+ exec_service_on_target nfs-statd stop
+ fi
+ exit
+fi
+
+exec_service_on_target nfs-statd stop
+
+if ps aux | grep "[/]usr/sbin/rpc.statd"
+then
+ echo " -> $test: TEST-FAIL"
+else
+ echo " -> $test: TEST-PASS"
+fi
+
+if [ "$service_status" = "active" -o "$service_status" = "unknown" ]
+then
+ exec_service_on_target nfs-statd start
+fi
diff --git a/tests/Functional.nfs/tests/nfsiostat.sh b/tests/Functional.nfs/tests/nfsiostat.sh
new file mode 100644
index 0000000..c1a683d
--- /dev/null
+++ b/tests/Functional.nfs/tests/nfsiostat.sh
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+# In the target run the command nfiosstat, and displays NFS client per-mount statisitics..
+# option : -a, -d, -h, -p, -s, --version
+
+test="nfsiostat"
+
+if nfsiostat -a | grep "attribute cache"
+then
+ echo " -> Display statistics related to the attribute cache succeeded."
+else
+ echo " -> Display statistics related to the attribute cache failed."
+ echo " -> $test: TEST-FAIL"
+ exit
+fi
+
+if nfsiostat -d | grep "lookup"
+then
+ echo " -> Display statistics related to directory operations succeeded."
+else
+ echo " -> Display statistics related to directory operations failed."
+ echo " -> $test: TEST-FAIL"
+ exit
+fi
+
+if nfsiostat -h | grep "Usage"
+then
+ echo " -> Show help message succeeded."
+else
+ echo " -> Show help message failed."
+ echo " -> $test: TEST-FAIL"
+ exit
+fi
+
+if nfsiostat -p | grep "page"
+then
+ echo " -> Display statistics related to the page cache succeeded."
+else
+ echo " -> Display statistics related to the page cache failed."
+ echo " -> $test: TEST-FAIL"
+ exit
+fi
+
+
+if nfsiostat -s | grep "ops"
+then
+ echo " -> Sort NFS mount points by ops/second succeeded."
+else
+ echo " -> Sort NFS mount points by ops/second failed."
+ echo " -> $test: TEST-FAIL"
+ exit
+fi
+
+if nfsiostat --version | grep "version"
+then
+ echo " -> $test: TEST-PASS"
+else
+ echo " -> Show version number failed."
+ echo " -> $test: TEST-FAIL"
+fi
diff --git a/tests/Functional.nfs/tests/nfsserver_ps.sh b/tests/Functional.nfs/tests/nfsserver_ps.sh
new file mode 100644
index 0000000..ddb4483
--- /dev/null
+++ b/tests/Functional.nfs/tests/nfsserver_ps.sh
@@ -0,0 +1,96 @@
+#!/bin/sh
+
+# In the target start nfsserver, and confirm the process condition by command ps.
+
+test="nfsserver_ps"
+
+. ./fuego_board_function_lib.sh
+
+set_init_manager
+
+if [ "$init_manager" = "systemd" ]
+then
+ service_name="nfs-server"
+else
+ service_name="nfsserver"
+fi
+
+nfs_status=$(get_service_status $service_name)
+
+rpcbind_status=$(get_service_status rpcbind)
+
+exec_service_on_target $service_name stop
+exec_service_on_target rpcbind stop
+
+if [ -f /etc/exports ]
+then
+ mv /etc/exports /etc/exports_bak
+fi
+
+touch /etc/exports
+
+restore_target() {
+ if [ -f /etc/exports_bak ]
+ then
+ mv /etc/exports_bak /etc/exports
+ else
+ rm -f /etc/exports
+ fi
+}
+
+exec_service_on_target rpcbind start
+if exec_service_on_target $service_name start
+then
+ echo " -> start of nfsserver succeeded."
+else
+ echo " -> start of nfsserver failed."
+ echo " -> $test: TEST-FAIL"
+ if [ "$rpcbind_status" = "inactive" ]
+ then
+ exec_service_on_target rpcbind stop
+ fi
+ restore_target
+ exit
+fi
+
+sleep 5
+
+if ps aux | grep "[\[]nfsd"
+then
+ echo " -> get the process of nfsd."
+else
+ echo " -> can't get the process of nfsd."
+ echo " -> $test: TEST-FAIL"
+ if [ "$rpcbind_status" = "inactive" ]
+ then
+ exec_service_on_target rpcbind stop
+ fi
+ if [ "$nfs_status" = "inactive" ]
+ then
+ exec_service_on_target $service_name stop
+ fi
+ restore_target
+ exit
+fi
+
+exec_service_on_target rpcbind stop
+exec_service_on_target $service_name stop
+
+sleep 5
+
+if ps aux | grep "[\[]nfsd"
+then
+ echo " -> $test: TEST-FAIL"
+else
+ echo " -> $test: TEST-PASS"
+fi
+restore_target
+if [ "$rpcbind_status" = "active" -o "$rpcbind_status" = "unknown" ]
+then
+ exec_service_on_target rpcbind start
+fi
+
+if [ "$nfs_status" = "active" -o "$nfs_status" = "unknown" ]
+then
+ exec_service_on_target $service_name start
+fi
diff --git a/tests/Functional.nfs/tests/nfsstat.sh b/tests/Functional.nfs/tests/nfsstat.sh
new file mode 100644
index 0000000..b579206
--- /dev/null
+++ b/tests/Functional.nfs/tests/nfsstat.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+# In the target run the command nfsstat, and display statistics kept about NFS client and server activity.
+# option : -r, -c, -s
+
+test="nfsstat"
+
+if nfsstat -c | grep "Client"
+then
+ echo " -> Print only client-side statistics succeeded."
+else
+ echo " -> Print only client-side statistics failed."
+ echo " -> $test: TEST-FAIL"
+ exit
+fi
+
+if nfsstat -r | grep "rpc"
+then
+ echo " -> Print only RPC statistics succeeded."
+else
+ echo " -> Print only RPC statistics failed."
+ echo " -> $test: TEST-FAIL"
+ exit
+fi
+
+if nfsstat -s | grep "Server"
+then
+ echo " -> $test: TEST-PASS"
+else
+ echo " -> Print only server-side statistics failed."
+ echo " -> $test: TEST-FAIL"
+fi
--
2.17.1
More information about the Fuego
mailing list