[Fuego] [PATCH] nfs: Add test cases for nfs.

Wang Mingyu <[email protected]>
Newsgroups dev.linux.lists.fuego
Message-ID <[email protected]>
This test set is used to check service(nfs-mountd/nfs-statd) and commands(nfsiostat/nfsserver/nfsstat) of nfs.

Signed-off-by: Wang Mingyu <[email protected]>
---
 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.