Implemented a single wrapper script which can be used
to execute _most_ of the rpc-tirpc test binaries.

Signed-off-by: Stanislav Kholmanskikh <stanislav.kholmansk...@oracle.com>
---
Changes since V2:
* if RHOST is not set, rsh is not used
* added several comments to the script
* renamed SERVERTIMEOUT to SERVER_STARTUP_SLEEP

 testcases/network/rpc/rpc-tirpc/Makefile    |    5 +
 testcases/network/rpc/rpc-tirpc/rpc_test.sh |  119 +++++++++++++++++++++++++++
 2 files changed, 124 insertions(+), 0 deletions(-)
 create mode 100755 testcases/network/rpc/rpc-tirpc/rpc_test.sh

diff --git a/testcases/network/rpc/rpc-tirpc/Makefile 
b/testcases/network/rpc/rpc-tirpc/Makefile
index 1620b2c..2006616 100644
--- a/testcases/network/rpc/rpc-tirpc/Makefile
+++ b/testcases/network/rpc/rpc-tirpc/Makefile
@@ -19,4 +19,9 @@
 top_srcdir             ?= ../../../..
 
 include        $(top_srcdir)/include/mk/env_pre.mk
+
+INSTALL_TARGETS                := rpc_test.sh
+
+MAKE_TARGETS           :=
+
 include $(top_srcdir)/include/mk/generic_trunk_target.mk
diff --git a/testcases/network/rpc/rpc-tirpc/rpc_test.sh 
b/testcases/network/rpc/rpc-tirpc/rpc_test.sh
new file mode 100755
index 0000000..76627dd
--- /dev/null
+++ b/testcases/network/rpc/rpc-tirpc/rpc_test.sh
@@ -0,0 +1,119 @@
+#!/bin/sh
+#
+# Copyright (c) 2014 Oracle and/or its affiliates. All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it would be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write the Free Software Foundation,
+# Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# This is a wrapper script to execute tests from the RPC/TI-RPC tests
+# suite (http://nfsv4.bullopensource.org/doc/rpc_testsuite.php) in LTP
+#
+# This wrapper uses the RHOST environment variable:
+#
+# If the RHOST variable is set, then the rpc server instance (if needed)
+# is started on RHOST, using rsh, and the client program is passed
+# the RHOST value.
+#
+# If the RHOST variable is not set, then the rpc server instance (if needed)
+# is started on the local host, and the client program is passed `hostname`.
+
+SERVER_HOST=${RHOST:-`hostname`}
+SERVER=""
+CLIENT=""
+CLIENT_EXTRA_OPTS=""
+CLEANER=""
+# Program number to register the services to rpcbind
+PROGNUMNOSVC=536875000
+SERVER_STARTUP_SLEEP=1
+
+run_cmd()
+{
+       if [ ! -z "$RHOST" ]; then
+               rsh -n "$RHOST" "$1"
+       else
+               $1
+       fi
+}
+
+cleanup()
+{
+       if [ ! -z "$SERVER" ]; then
+               run_cmd "killall -9 $SERVER"
+               run_cmd "$CLEANER $PROGNUMNOSVC"
+       fi
+}
+
+usage()
+{
+       echo "USAGE: $0 [-s sprog] -c clprog [ -e extra ]"
+       echo ""
+       echo "sprog   - server program binary"
+       echo "clprog  - client program binary"
+       echo "extra   - extra client options"
+       echo ""
+       echo "This scripts connects to the RHOST host by rsh and starts"
+       echo "sprog there. After that it executes clprog passing it the"
+       echo "RHOST value."
+       echo "After the test completes, this script kills sprog on RHOST"
+       echo "and performs a cleaning operation."
+       echo ""
+       echo "If RHOST is not set, the local host is used."
+
+       exit 1
+}
+
+while getopts s:c:e:h arg; do
+       case $arg in
+               s) SERVER="$LTPROOT/testcases/bin/$OPTARG" ;;
+               c) CLIENT="$OPTARG" ;;
+               e) CLIENT_EXTRA_OPTS="$OPTARG" ;;
+               h) usage ;;
+       esac
+done
+
+if [ ! -z "$SERVER" ]; then
+       if `echo "$SERVER" | grep -e '^tirpc'`; then
+               CLEANER="$LTPROOT/testcases/bin/tirpc_cleaner"
+       else
+               CLEANER="$LTPROOT/testcases/bin/rpc_cleaner"
+       fi
+fi
+
+if [ -z "$CLIENT" ]; then
+       echo "client program not set"
+       echo ""
+       usage
+fi
+
+TCID="$CLIENT"
+TST_TOTAL=1
+TST_COUNT=1
+. test.sh
+TST_CLEANUP=cleanup
+
+if [ ! -z "$SERVER" ]; then
+       run_cmd "$SERVER $PROGNUMNOSVC" &
+       sleep "$SERVER_STARTUP_SLEEP"
+fi
+
+"$CLIENT" "$SERVER_HOST" "$PROGNUMNOSVC" $CLIENT_EXTRA_OPTS
+ret=$?
+
+if [ "$ret" -eq 0 ]; then
+       tst_resm TPASS "Test passed"
+else
+       tst_resm TFAIL "Test failed"
+fi
+
+tst_exit
-- 
1.7.1


------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.  Get 
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to