* [LTP] [PATCH 1/4] network/stress/ssh: rename ssh4-stress
@ 2015-01-19 14:49 Alexey Kodanev
2015-01-19 14:49 ` [LTP] [PATCH 2/4] network/stress/ssh: cleanup, use test_net.sh library Alexey Kodanev
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Alexey Kodanev @ 2015-01-19 14:49 UTC (permalink / raw)
To: ltp-list; +Cc: vasily.isaenko
Signed-off-by: Alexey Kodanev <alexey.kodanev@oracle.com>
---
testcases/network/stress/ssh/ssh-stress | 461 ++++++++++++++++++++++++++++++
testcases/network/stress/ssh/ssh4-stress | 461 ------------------------------
testcases/network/stress/ssh/ssh6-stress | 47 ---
3 files changed, 461 insertions(+), 508 deletions(-)
create mode 100644 testcases/network/stress/ssh/ssh-stress
delete mode 100644 testcases/network/stress/ssh/ssh4-stress
delete mode 100644 testcases/network/stress/ssh/ssh6-stress
diff --git a/testcases/network/stress/ssh/ssh-stress b/testcases/network/stress/ssh/ssh-stress
new file mode 100644
index 0000000..8521b75
--- /dev/null
+++ b/testcases/network/stress/ssh/ssh-stress
@@ -0,0 +1,461 @@
+#!/bin/sh
+
+################################################################################
+## ##
+## Copyright (c) International Business Machines Corp., 2005 ##
+## ##
+## 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 will 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 to the Free Software ##
+## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ##
+## ##
+## ##
+################################################################################
+#
+# File:
+# ssh4-stress
+#
+# Description:
+# Stress test for SSH over IPv4
+# test01 - Verify the ssh server or the kernel is not down after a large
+# number of ssh sessions are created.
+# test02 - Verify the ssh server or the kernel is not down after a large
+# number of clients log in/out asynchronously for a long time.
+# test03 - Verify the ssh server or the kernek is not down after a TCP
+# traffic is forwarded via ssh port-forwarding for a long time
+#
+# Author:
+# Mitsuru Chinen <mitch@jp.ibm.com>
+#
+# History:
+# Oct 19 2005 - Created (Mitsuru Chinen)
+#
+#-----------------------------------------------------------------------
+# Uncomment line below for debug output.
+#trace_logic=${trace_logic:-"set -x"}
+$trace_logic
+
+# Make sure the value of LTPROOT
+LTPROOT=${LTPROOT:-`(cd ../../../../ ; pwd)`}
+export LTPROOT
+
+# Total number of the test case
+TST_TOTAL=3
+export TST_TOTAL
+
+# The version of IP
+IP_VER=${IP_VER:-4}
+
+# Default of the test case ID and the test case count
+TCID=ssh${IP_VER}-stress
+TST_COUNT=0
+export TCID
+export TST_COUNT
+
+# Check the environmanet variable
+. check_envval || exit $TST_TOTAL
+
+# Dulation of the test [sec]
+NS_DURATION=${NS_DURATION:-3600} # 1 hour
+
+# Quantity of the connection for multi connection test
+CONNECTION_TOTAL=${CONNECTION_TOTAL:-4000}
+
+# Temporary direcotry to store sshd setting or ssh key
+# Note: ssh doesn't work when those directory are under /tmp.
+SSH_TMPDIR_PARENT="/root"
+
+# The number of the test link where tests run
+LINK_NUM=${LINK_NUM:-0}
+
+# Network portion of the IPv4 address
+IPV4_NETWORK=${IPV4_NETWORK:-"10.0.0"}
+
+# Host portion of the IPv4 address on the local host
+LHOST_IPV4_HOST=${LHOST_IPV4_HOST:-"2"}
+
+# Host portion of the IPv4 address on the remote host
+RHOST_IPV4_HOST=${RHOST_IPV4_HOST:-"1"}
+
+# Network portion of the IPv6 address
+IPV6_NETWORK="fd00:1:1:1"
+
+# Host portion of the IPv6 address of the local host
+LHOST_IPV6_HOST=":2"
+
+# Host portion of the IPv6 address of the remote host
+RHOST_IPV6_HOST=":1"
+
+#-----------------------------------------------------------------------
+#
+# Function:
+# do_cleanup
+#
+# Description:
+# Clean up after running ssh stress test
+#
+#-----------------------------------------------------------------------
+do_cleanup()
+{
+ # Stop the ssh daemon
+ kill `cat ${sshd_dir}/sshd.pid`
+
+ # Delete the dictory that stores configuration files
+ rm -rf $sshd_dir
+ $LTP_RSH $RHOST "rm -rf $rhost_ssh_dir"
+
+ # Delete the temporary files
+ rm -f $message_file
+
+ # Initialize the interface
+ initialize_if lhost ${LINK_NUM}
+ initialize_if rhost ${LINK_NUM}
+
+ # Kill the tcp traffic server
+ killall_tcp_traffic
+}
+
+
+#-----------------------------------------------------------------------
+#
+# Function:
+# do_setup
+#
+# Description:
+# Setup for the ssh stress tests
+# - Assign IP address to the interfaces belong to the specified Link
+# - Run a sshd daemon for testing
+# - Create keys for password-less login
+#
+# Set Values:
+# lhost_addr: IP address of the local host
+# rhost_addr: IP address of the remote host
+# rhost_config: ssh_config at the remote host
+#
+#-----------------------------------------------------------------------
+do_setup()
+{
+ trap do_cleanup 0
+
+ # Get the sshd command with absolute path
+ SSHD=`which sshd`
+ if [ x"${SSHD}" = x ]; then
+ tst_resm TBROK "sshd daemon is not found"
+ exit $TST_TOTAL
+ fi
+
+ # Kill the tcp traffic server
+ killall_tcp_traffic
+
+ # Initialize the interface
+ initialize_if lhost ${LINK_NUM}
+ initialize_if rhost ${LINK_NUM}
+
+ # Get the Interface name
+ lhost_ifname=`get_ifname lhost ${LINK_NUM}`
+ if [ $? -ne 0 ]; then
+ tst_resm TBROK "Failed to get the interface name at the local host"
+ exit $TST_TOTAL
+ fi
+
+ case $IP_VER in
+ 4)
+ # Set IPv4 address to the interfaces
+ set_ipv4addr lhost $LINK_NUM ${IPV4_NETWORK} ${LHOST_IPV4_HOST}
+ if [ $? -ne 0 ]; then
+ tst_resm TBROK "Failed to add any IP address at the local host"
+ exit 1
+ fi
+ set_ipv4addr rhost $LINK_NUM ${IPV4_NETWORK} ${RHOST_IPV4_HOST}
+ if [ $? -ne 0 ]; then
+ tst_resm TBROK "Failed to add any IP address at the remote host"
+ exit 1
+ fi
+
+ lhost_addr="${IPV4_NETWORK}.${LHOST_IPV4_HOST}"
+ rhost_addr="${IPV4_NETWORK}.${RHOST_IPV4_HOST}"
+ check_icmpv4_connectivity $lhost_ifname $rhost_addr
+ if [ $? -ne 0 ]; then
+ tst_resm TBROK "Failed to ping to $rhost_addr"
+ exit 1
+ fi
+ ;;
+
+ 6)
+ # Set IPv6 address to the interfaces
+ add_ipv6addr lhost $LINK_NUM ${IPV6_NETWORK} ${LHOST_IPV6_HOST}
+ if [ $? -ne 0 ]; then
+ tst_resm TBROK "Failed to add any IP address at the local host"
+ exit 1
+ fi
+ add_ipv6addr rhost $LINK_NUM ${IPV6_NETWORK} ${RHOST_IPV6_HOST}
+ if [ $? -ne 0 ]; then
+ tst_resm TBROK "Failed to add any IP address at the remote host"
+ exit 1
+ fi
+
+ lhost_addr="${IPV6_NETWORK}:${LHOST_IPV6_HOST}"
+ rhost_addr="${IPV6_NETWORK}:${RHOST_IPV6_HOST}"
+ check_icmpv6_connectivity $lhost_ifname $rhost_addr
+ if [ $? -ne 0 ]; then
+ tst_resm TBROK "Failed to ping to $rhost_addr"
+ exit 1
+ fi
+ ;;
+
+ *)
+ tst_resm TBROK "Unknown IP version: $IP_VER"
+ exit 1
+ ;;
+ esac
+
+ #
+ # Start sshd for testing
+ #
+ port=`find_portbundle tcp 1025 1`
+ if [ $? -ne 0 ]; then
+ tst_resm TFAIL "No port is available."
+ exit 1
+ fi
+ sshd_dir=`TMPDIR="$SSH_TMPDIR_PARENT" mktemp -d`
+ cat << EOD > ${sshd_dir}/sshd_config
+Port $port
+ListenAddress $lhost_addr
+PermitRootLogin yes
+AuthorizedKeysFile ${sshd_dir}/authorized_keys
+PasswordAuthentication no
+AllowTcpForwarding yes
+TCPKeepAlive yes
+UseDNS no
+PidFile ${sshd_dir}/sshd.pid
+EOD
+
+
+ $SSHD -f ${sshd_dir}/sshd_config
+ if [ $? -ne 0 ]; then
+ tst_resm TBROK "Failed to run sshd daemon."
+ exit 1
+ fi
+
+ #
+ # Generate configuration file and key at the remote host
+ #
+ rhost_ssh_dir=`$LTP_RSH $RHOST "mktemp -d -p $SSH_TMPDIR_PARENT"`
+ ret=`$LTP_RSH $RHOST '( cd '$rhost_ssh_dir' && ssh-keygen -t rsa -N "" -f id_rsa ) >/dev/null 2>&1 ; echo $?'`
+ if [ $ret -ne 0 ]; then
+ tst_resm TBROK "Failed to generate key."
+ exit 1
+ fi
+
+ rhost_config=${rhost_ssh_dir}/ssh_config
+ rmtshell="$LTP_RSH"
+ echo $LTP_RSH | grep "rsh.*-n" >/dev/null 2>&1
+ if [ $? -eq 0 ]; then
+ rmtshell="`echo $LTP_RSH | sed "s/-n//"`"
+ fi
+
+ cat << EOD | $rmtshell $RHOST "cat > $rhost_config"
+Port $port
+StrictHostKeyChecking no
+PasswordAuthentication no
+UserKnownHostsFile $rhost_ssh_dir/known_hosts
+IdentityFile $rhost_ssh_dir/id_rsa
+EOD
+ $LTP_RSH $RHOST "cd $rhost_ssh_dir && cat id_rsa.pub" > ${sshd_dir}/authorized_keys
+ $LTP_RSH $RHOST "chmod 700 $rhost_ssh_dir ; chmod 600 $rhost_ssh_dir/*"
+
+ chmod 700 $sshd_dir
+ chmod 600 $sshd_dir/*
+}
+
+
+#-----------------------------------------------------------------------
+#
+# Function:
+# test01
+#
+# Description:
+# Verify the ssh connectivity is not broken after creating a large
+# number of ssh sessions
+#
+#-----------------------------------------------------------------------
+test01()
+{
+ TCID=ssh${IP_VER}-stress01
+ TST_COUNT=1
+ tst_resm TINFO "Verify the ssh connectivity over IPv${IP_VER} is not broken after creating ${CONNECTION_TOTAL} ssh sessions"
+
+ # Script name at the remote host
+ rmtscript="ssh-stress01-rmt"
+
+ # Run the script at the remote host
+ message_file=`mktemp -p $TMPDIR`
+ not_run_rmtscript=true
+ for rmtdir in ${LTPROOT}/testcases/bin ${PWD} ; do
+ ret=`$LTP_RSH $RHOST 'test -x '${rmtdir}/${rmtscript}' ; echo $?'`
+ if [ $ret -eq 0 ]; then
+ not_run_rmtscript=false
+ $LTP_RSH $RHOST "${rmtdir}/${rmtscript} $IP_VER $lhost_addr $rhost_config $CONNECTION_TOTAL" > $message_file
+ break
+ fi
+ done
+ if $not_run_rmtscript ; then
+ tst_resm TBROK "Failed to run the test script at the remote host"
+ rm -f $message_file
+ exit 1
+ fi
+
+ if [ -s $message_file ]; then
+ tst_resm TFAIL "`cat $message_file`"
+ rm -f $message_file
+ return 1
+ else
+ tst_resm TPASS "Test is finished successfully."
+ rm -f $message_file
+ return 0
+ fi
+
+}
+
+
+#-----------------------------------------------------------------------
+#
+# Function:
+# test02
+#
+# Description:
+# Verify the ssh connectivity is not broken after logged in/out
+# by many clients asynchronously for a long time
+#
+#-----------------------------------------------------------------------
+test02()
+{
+ TCID=ssh${IP_VER}-stress02
+ TST_COUNT=2
+ tst_resm TINFO "Verify the ssh connectivity over IPv${IP_VER} is not broken after logged in/out by many clients asynchronously in ${NS_DURATION}[sec]"
+ tst_resm TINFO "The number of client is not over $CONNECTION_TOTAL"
+
+ # Script name at the remote host
+ rmtscript="ssh-stress02-rmt"
+
+ # Run the script at the remote host
+ message_file=`mktemp -p $TMPDIR`
+ not_run_rmtscript=true
+ for rmtdir in ${LTPROOT}/testcases/bin ${PWD} ; do
+ ret=`$LTP_RSH $RHOST 'test -x '${rmtdir}/${rmtscript}' ; echo $?'`
+ if [ $ret -eq 0 ]; then
+ not_run_rmtscript=false
+ $LTP_RSH $RHOST "${rmtdir}/${rmtscript} $IP_VER $lhost_addr $rhost_config $CONNECTION_TOTAL $NS_DURATION" > $message_file
+ break
+ fi
+ done
+ if $not_run_rmtscript ; then
+ tst_resm TBROK "Failed to run the test script at the remote host"
+ rm -f $message_file
+ exit 1
+ fi
+
+ if [ -s $message_file ]; then
+ tst_resm TFAIL "`cat $message_file`"
+ rm -f $message_file
+ return 1
+ else
+ tst_resm TPASS "Test is finished successfully."
+ rm -f $message_file
+ return 0
+ fi
+}
+
+
+#-----------------------------------------------------------------------
+#
+# Function:
+# test03
+#
+# Description:
+# Verify the ssh connectivity is not broken after forwarding TCP traffic
+# for a long time
+#
+#-----------------------------------------------------------------------
+test03()
+{
+ TCID=ssh${IP_VER}-stress03
+ TST_COUNT=3
+ tst_resm TINFO "Verify the ssh connectivity over IPv${IP_VER} is not broken after forwarding TCP traffic in ${NS_DURATION}[sec]"
+
+ # Script name at the remote host
+ rmtscript="ssh-stress03-rmt"
+
+ # Run a TCP traffic server
+ traffic_port=`find_portbundle tcp 1025 1` || exit 1
+ info_file=`mktemp -p $TMPDIR`
+ ns-tcpserver -b -f $IP_VER -p $traffic_port -o $info_file
+ if [ $? -ne 0 ]; then
+ tst_resm TFAIL "Failed to run a tcp traffic server."
+ rm -f $info_file
+ exit 1
+ fi
+
+ while true ; do
+ if [ -s $info_file ]; then
+ break
+ fi
+ done
+
+ server_pid=`grep PID: $info_file | cut -f 2 -d ' '`
+ rm -f $info_file
+
+ # Run the script at the remote host
+ message_file=`mktemp -p $TMPDIR`
+ not_run_rmtscript=true
+ for rmtdir in ${LTPROOT}/testcases/bin ${PWD} ; do
+ ret=`$LTP_RSH $RHOST 'test -x '${rmtdir}/${rmtscript}' ; echo $?'`
+ if [ $ret -eq 0 ]; then
+ not_run_rmtscript=false
+ $LTP_RSH $RHOST "${rmtdir}/${rmtscript} $LTPROOT $IP_VER $lhost_addr $rhost_config $traffic_port $NS_DURATION" > $message_file
+ break
+ fi
+ done
+ if $not_run_rmtscript ; then
+ tst_resm TBROK "Failed to run the test script at the remote host"
+ rm -f $message_file
+ exit 1
+ fi
+
+ if [ -s $message_file ]; then
+ tst_resm TFAIL "`cat $message_file`"
+ rm -f $message_file
+ return 1
+ else
+ tst_resm TPASS "Test is finished successfully."
+ rm -f $message_file
+ return 0
+ fi
+}
+
+
+#-----------------------------------------------------------------------
+#
+# Main
+#
+# Exit Value:
+# The number of the failure
+#
+#-----------------------------------------------------------------------
+
+RC=0
+do_setup
+test01 || RC=`expr $RC + 1`
+test02 || RC=`expr $RC + 1`
+test03 || RC=`expr $RC + 1`
+
+exit $RC
diff --git a/testcases/network/stress/ssh/ssh4-stress b/testcases/network/stress/ssh/ssh4-stress
deleted file mode 100644
index 8521b75..0000000
--- a/testcases/network/stress/ssh/ssh4-stress
+++ /dev/null
@@ -1,461 +0,0 @@
-#!/bin/sh
-
-################################################################################
-## ##
-## Copyright (c) International Business Machines Corp., 2005 ##
-## ##
-## 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 will 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 to the Free Software ##
-## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ##
-## ##
-## ##
-################################################################################
-#
-# File:
-# ssh4-stress
-#
-# Description:
-# Stress test for SSH over IPv4
-# test01 - Verify the ssh server or the kernel is not down after a large
-# number of ssh sessions are created.
-# test02 - Verify the ssh server or the kernel is not down after a large
-# number of clients log in/out asynchronously for a long time.
-# test03 - Verify the ssh server or the kernek is not down after a TCP
-# traffic is forwarded via ssh port-forwarding for a long time
-#
-# Author:
-# Mitsuru Chinen <mitch@jp.ibm.com>
-#
-# History:
-# Oct 19 2005 - Created (Mitsuru Chinen)
-#
-#-----------------------------------------------------------------------
-# Uncomment line below for debug output.
-#trace_logic=${trace_logic:-"set -x"}
-$trace_logic
-
-# Make sure the value of LTPROOT
-LTPROOT=${LTPROOT:-`(cd ../../../../ ; pwd)`}
-export LTPROOT
-
-# Total number of the test case
-TST_TOTAL=3
-export TST_TOTAL
-
-# The version of IP
-IP_VER=${IP_VER:-4}
-
-# Default of the test case ID and the test case count
-TCID=ssh${IP_VER}-stress
-TST_COUNT=0
-export TCID
-export TST_COUNT
-
-# Check the environmanet variable
-. check_envval || exit $TST_TOTAL
-
-# Dulation of the test [sec]
-NS_DURATION=${NS_DURATION:-3600} # 1 hour
-
-# Quantity of the connection for multi connection test
-CONNECTION_TOTAL=${CONNECTION_TOTAL:-4000}
-
-# Temporary direcotry to store sshd setting or ssh key
-# Note: ssh doesn't work when those directory are under /tmp.
-SSH_TMPDIR_PARENT="/root"
-
-# The number of the test link where tests run
-LINK_NUM=${LINK_NUM:-0}
-
-# Network portion of the IPv4 address
-IPV4_NETWORK=${IPV4_NETWORK:-"10.0.0"}
-
-# Host portion of the IPv4 address on the local host
-LHOST_IPV4_HOST=${LHOST_IPV4_HOST:-"2"}
-
-# Host portion of the IPv4 address on the remote host
-RHOST_IPV4_HOST=${RHOST_IPV4_HOST:-"1"}
-
-# Network portion of the IPv6 address
-IPV6_NETWORK="fd00:1:1:1"
-
-# Host portion of the IPv6 address of the local host
-LHOST_IPV6_HOST=":2"
-
-# Host portion of the IPv6 address of the remote host
-RHOST_IPV6_HOST=":1"
-
-#-----------------------------------------------------------------------
-#
-# Function:
-# do_cleanup
-#
-# Description:
-# Clean up after running ssh stress test
-#
-#-----------------------------------------------------------------------
-do_cleanup()
-{
- # Stop the ssh daemon
- kill `cat ${sshd_dir}/sshd.pid`
-
- # Delete the dictory that stores configuration files
- rm -rf $sshd_dir
- $LTP_RSH $RHOST "rm -rf $rhost_ssh_dir"
-
- # Delete the temporary files
- rm -f $message_file
-
- # Initialize the interface
- initialize_if lhost ${LINK_NUM}
- initialize_if rhost ${LINK_NUM}
-
- # Kill the tcp traffic server
- killall_tcp_traffic
-}
-
-
-#-----------------------------------------------------------------------
-#
-# Function:
-# do_setup
-#
-# Description:
-# Setup for the ssh stress tests
-# - Assign IP address to the interfaces belong to the specified Link
-# - Run a sshd daemon for testing
-# - Create keys for password-less login
-#
-# Set Values:
-# lhost_addr: IP address of the local host
-# rhost_addr: IP address of the remote host
-# rhost_config: ssh_config at the remote host
-#
-#-----------------------------------------------------------------------
-do_setup()
-{
- trap do_cleanup 0
-
- # Get the sshd command with absolute path
- SSHD=`which sshd`
- if [ x"${SSHD}" = x ]; then
- tst_resm TBROK "sshd daemon is not found"
- exit $TST_TOTAL
- fi
-
- # Kill the tcp traffic server
- killall_tcp_traffic
-
- # Initialize the interface
- initialize_if lhost ${LINK_NUM}
- initialize_if rhost ${LINK_NUM}
-
- # Get the Interface name
- lhost_ifname=`get_ifname lhost ${LINK_NUM}`
- if [ $? -ne 0 ]; then
- tst_resm TBROK "Failed to get the interface name at the local host"
- exit $TST_TOTAL
- fi
-
- case $IP_VER in
- 4)
- # Set IPv4 address to the interfaces
- set_ipv4addr lhost $LINK_NUM ${IPV4_NETWORK} ${LHOST_IPV4_HOST}
- if [ $? -ne 0 ]; then
- tst_resm TBROK "Failed to add any IP address at the local host"
- exit 1
- fi
- set_ipv4addr rhost $LINK_NUM ${IPV4_NETWORK} ${RHOST_IPV4_HOST}
- if [ $? -ne 0 ]; then
- tst_resm TBROK "Failed to add any IP address at the remote host"
- exit 1
- fi
-
- lhost_addr="${IPV4_NETWORK}.${LHOST_IPV4_HOST}"
- rhost_addr="${IPV4_NETWORK}.${RHOST_IPV4_HOST}"
- check_icmpv4_connectivity $lhost_ifname $rhost_addr
- if [ $? -ne 0 ]; then
- tst_resm TBROK "Failed to ping to $rhost_addr"
- exit 1
- fi
- ;;
-
- 6)
- # Set IPv6 address to the interfaces
- add_ipv6addr lhost $LINK_NUM ${IPV6_NETWORK} ${LHOST_IPV6_HOST}
- if [ $? -ne 0 ]; then
- tst_resm TBROK "Failed to add any IP address at the local host"
- exit 1
- fi
- add_ipv6addr rhost $LINK_NUM ${IPV6_NETWORK} ${RHOST_IPV6_HOST}
- if [ $? -ne 0 ]; then
- tst_resm TBROK "Failed to add any IP address at the remote host"
- exit 1
- fi
-
- lhost_addr="${IPV6_NETWORK}:${LHOST_IPV6_HOST}"
- rhost_addr="${IPV6_NETWORK}:${RHOST_IPV6_HOST}"
- check_icmpv6_connectivity $lhost_ifname $rhost_addr
- if [ $? -ne 0 ]; then
- tst_resm TBROK "Failed to ping to $rhost_addr"
- exit 1
- fi
- ;;
-
- *)
- tst_resm TBROK "Unknown IP version: $IP_VER"
- exit 1
- ;;
- esac
-
- #
- # Start sshd for testing
- #
- port=`find_portbundle tcp 1025 1`
- if [ $? -ne 0 ]; then
- tst_resm TFAIL "No port is available."
- exit 1
- fi
- sshd_dir=`TMPDIR="$SSH_TMPDIR_PARENT" mktemp -d`
- cat << EOD > ${sshd_dir}/sshd_config
-Port $port
-ListenAddress $lhost_addr
-PermitRootLogin yes
-AuthorizedKeysFile ${sshd_dir}/authorized_keys
-PasswordAuthentication no
-AllowTcpForwarding yes
-TCPKeepAlive yes
-UseDNS no
-PidFile ${sshd_dir}/sshd.pid
-EOD
-
-
- $SSHD -f ${sshd_dir}/sshd_config
- if [ $? -ne 0 ]; then
- tst_resm TBROK "Failed to run sshd daemon."
- exit 1
- fi
-
- #
- # Generate configuration file and key at the remote host
- #
- rhost_ssh_dir=`$LTP_RSH $RHOST "mktemp -d -p $SSH_TMPDIR_PARENT"`
- ret=`$LTP_RSH $RHOST '( cd '$rhost_ssh_dir' && ssh-keygen -t rsa -N "" -f id_rsa ) >/dev/null 2>&1 ; echo $?'`
- if [ $ret -ne 0 ]; then
- tst_resm TBROK "Failed to generate key."
- exit 1
- fi
-
- rhost_config=${rhost_ssh_dir}/ssh_config
- rmtshell="$LTP_RSH"
- echo $LTP_RSH | grep "rsh.*-n" >/dev/null 2>&1
- if [ $? -eq 0 ]; then
- rmtshell="`echo $LTP_RSH | sed "s/-n//"`"
- fi
-
- cat << EOD | $rmtshell $RHOST "cat > $rhost_config"
-Port $port
-StrictHostKeyChecking no
-PasswordAuthentication no
-UserKnownHostsFile $rhost_ssh_dir/known_hosts
-IdentityFile $rhost_ssh_dir/id_rsa
-EOD
- $LTP_RSH $RHOST "cd $rhost_ssh_dir && cat id_rsa.pub" > ${sshd_dir}/authorized_keys
- $LTP_RSH $RHOST "chmod 700 $rhost_ssh_dir ; chmod 600 $rhost_ssh_dir/*"
-
- chmod 700 $sshd_dir
- chmod 600 $sshd_dir/*
-}
-
-
-#-----------------------------------------------------------------------
-#
-# Function:
-# test01
-#
-# Description:
-# Verify the ssh connectivity is not broken after creating a large
-# number of ssh sessions
-#
-#-----------------------------------------------------------------------
-test01()
-{
- TCID=ssh${IP_VER}-stress01
- TST_COUNT=1
- tst_resm TINFO "Verify the ssh connectivity over IPv${IP_VER} is not broken after creating ${CONNECTION_TOTAL} ssh sessions"
-
- # Script name at the remote host
- rmtscript="ssh-stress01-rmt"
-
- # Run the script at the remote host
- message_file=`mktemp -p $TMPDIR`
- not_run_rmtscript=true
- for rmtdir in ${LTPROOT}/testcases/bin ${PWD} ; do
- ret=`$LTP_RSH $RHOST 'test -x '${rmtdir}/${rmtscript}' ; echo $?'`
- if [ $ret -eq 0 ]; then
- not_run_rmtscript=false
- $LTP_RSH $RHOST "${rmtdir}/${rmtscript} $IP_VER $lhost_addr $rhost_config $CONNECTION_TOTAL" > $message_file
- break
- fi
- done
- if $not_run_rmtscript ; then
- tst_resm TBROK "Failed to run the test script at the remote host"
- rm -f $message_file
- exit 1
- fi
-
- if [ -s $message_file ]; then
- tst_resm TFAIL "`cat $message_file`"
- rm -f $message_file
- return 1
- else
- tst_resm TPASS "Test is finished successfully."
- rm -f $message_file
- return 0
- fi
-
-}
-
-
-#-----------------------------------------------------------------------
-#
-# Function:
-# test02
-#
-# Description:
-# Verify the ssh connectivity is not broken after logged in/out
-# by many clients asynchronously for a long time
-#
-#-----------------------------------------------------------------------
-test02()
-{
- TCID=ssh${IP_VER}-stress02
- TST_COUNT=2
- tst_resm TINFO "Verify the ssh connectivity over IPv${IP_VER} is not broken after logged in/out by many clients asynchronously in ${NS_DURATION}[sec]"
- tst_resm TINFO "The number of client is not over $CONNECTION_TOTAL"
-
- # Script name at the remote host
- rmtscript="ssh-stress02-rmt"
-
- # Run the script at the remote host
- message_file=`mktemp -p $TMPDIR`
- not_run_rmtscript=true
- for rmtdir in ${LTPROOT}/testcases/bin ${PWD} ; do
- ret=`$LTP_RSH $RHOST 'test -x '${rmtdir}/${rmtscript}' ; echo $?'`
- if [ $ret -eq 0 ]; then
- not_run_rmtscript=false
- $LTP_RSH $RHOST "${rmtdir}/${rmtscript} $IP_VER $lhost_addr $rhost_config $CONNECTION_TOTAL $NS_DURATION" > $message_file
- break
- fi
- done
- if $not_run_rmtscript ; then
- tst_resm TBROK "Failed to run the test script at the remote host"
- rm -f $message_file
- exit 1
- fi
-
- if [ -s $message_file ]; then
- tst_resm TFAIL "`cat $message_file`"
- rm -f $message_file
- return 1
- else
- tst_resm TPASS "Test is finished successfully."
- rm -f $message_file
- return 0
- fi
-}
-
-
-#-----------------------------------------------------------------------
-#
-# Function:
-# test03
-#
-# Description:
-# Verify the ssh connectivity is not broken after forwarding TCP traffic
-# for a long time
-#
-#-----------------------------------------------------------------------
-test03()
-{
- TCID=ssh${IP_VER}-stress03
- TST_COUNT=3
- tst_resm TINFO "Verify the ssh connectivity over IPv${IP_VER} is not broken after forwarding TCP traffic in ${NS_DURATION}[sec]"
-
- # Script name at the remote host
- rmtscript="ssh-stress03-rmt"
-
- # Run a TCP traffic server
- traffic_port=`find_portbundle tcp 1025 1` || exit 1
- info_file=`mktemp -p $TMPDIR`
- ns-tcpserver -b -f $IP_VER -p $traffic_port -o $info_file
- if [ $? -ne 0 ]; then
- tst_resm TFAIL "Failed to run a tcp traffic server."
- rm -f $info_file
- exit 1
- fi
-
- while true ; do
- if [ -s $info_file ]; then
- break
- fi
- done
-
- server_pid=`grep PID: $info_file | cut -f 2 -d ' '`
- rm -f $info_file
-
- # Run the script at the remote host
- message_file=`mktemp -p $TMPDIR`
- not_run_rmtscript=true
- for rmtdir in ${LTPROOT}/testcases/bin ${PWD} ; do
- ret=`$LTP_RSH $RHOST 'test -x '${rmtdir}/${rmtscript}' ; echo $?'`
- if [ $ret -eq 0 ]; then
- not_run_rmtscript=false
- $LTP_RSH $RHOST "${rmtdir}/${rmtscript} $LTPROOT $IP_VER $lhost_addr $rhost_config $traffic_port $NS_DURATION" > $message_file
- break
- fi
- done
- if $not_run_rmtscript ; then
- tst_resm TBROK "Failed to run the test script at the remote host"
- rm -f $message_file
- exit 1
- fi
-
- if [ -s $message_file ]; then
- tst_resm TFAIL "`cat $message_file`"
- rm -f $message_file
- return 1
- else
- tst_resm TPASS "Test is finished successfully."
- rm -f $message_file
- return 0
- fi
-}
-
-
-#-----------------------------------------------------------------------
-#
-# Main
-#
-# Exit Value:
-# The number of the failure
-#
-#-----------------------------------------------------------------------
-
-RC=0
-do_setup
-test01 || RC=`expr $RC + 1`
-test02 || RC=`expr $RC + 1`
-test03 || RC=`expr $RC + 1`
-
-exit $RC
diff --git a/testcases/network/stress/ssh/ssh6-stress b/testcases/network/stress/ssh/ssh6-stress
deleted file mode 100644
index 3096c3e..0000000
--- a/testcases/network/stress/ssh/ssh6-stress
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh
-
-################################################################################
-## ##
-## Copyright (c) International Business Machines Corp., 2005 ##
-## ##
-## 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 will 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 to the Free Software ##
-## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ##
-## ##
-## ##
-################################################################################
-#
-# File:
-# ssh6-stress
-#
-# Description:
-# This script is the stress test for ssh over IPv6
-#
-# Setup:
-# See ltp-yyyymmdd/testcases/network/stress/README
-#
-# Author:
-# Mitsuru Chinen <mitch@jp.ibm.com>
-#
-# History:
-# Oct 19 2005 - Created (Mitsuru Chinen)
-#
-#-----------------------------------------------------------------------
-# Uncomment line below for debug output.
-#trace_logic=${trace_logic:-"set -x"}
-$trace_logic
-
-# The version of IP
-IP_VER=6
-
-. ssh4-stress
--
1.7.1
------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply related [flat|nested] 5+ messages in thread* [LTP] [PATCH 2/4] network/stress/ssh: cleanup, use test_net.sh library 2015-01-19 14:49 [LTP] [PATCH 1/4] network/stress/ssh: rename ssh4-stress Alexey Kodanev @ 2015-01-19 14:49 ` Alexey Kodanev 2015-01-19 14:49 ` [LTP] [PATCH 3/4] network/stress/ssh: make use of tcp_fastopen client/server Alexey Kodanev ` (2 subsequent siblings) 3 siblings, 0 replies; 5+ messages in thread From: Alexey Kodanev @ 2015-01-19 14:49 UTC (permalink / raw) To: ltp-list; +Cc: vasily.isaenko Signed-off-by: Alexey Kodanev <alexey.kodanev@oracle.com> --- testcases/network/stress/ssh/00_Descriptions.txt | 28 +- testcases/network/stress/ssh/ssh-stress | 513 +++++----------------- testcases/network/stress/ssh/ssh-stress01-rmt | 128 ++---- testcases/network/stress/ssh/ssh-stress02-rmt | 148 ++----- testcases/network/stress/ssh/ssh-stress03-rmt | 179 +++------ 5 files changed, 251 insertions(+), 745 deletions(-) diff --git a/testcases/network/stress/ssh/00_Descriptions.txt b/testcases/network/stress/ssh/00_Descriptions.txt index b3a2f31..543e60d 100644 --- a/testcases/network/stress/ssh/00_Descriptions.txt +++ b/testcases/network/stress/ssh/00_Descriptions.txt @@ -1,21 +1,11 @@ -ssh4-stress01 - Verify the ssh connectivity over IPv4 is not broken after creating - many ssh sessions -ssh4-stress02 - Verify the ssh connectivity over IPv4 is not broken after logged - in/out by many clients asynchronously for a long time +ssh-stress01 + Verify the ssh connectivity over IPv4/IPv6 is not broken + after creating many ssh sessions -ssh4-stress03 - Verify the ssh connectivity over IPv4 is not broken after forwarding - TCP traffic for a long time +ssh-stress02 + Verify the ssh connectivity over IPv4/IPv6 is not broken + after logged in/out by many clients asynchronously for a long time -ssh6-stress01 - Verify the ssh connectivity over IPv6 is not broken after creating - many ssh sessions -ssh6-stress02 - Verify the ssh connectivity over IPv6 is not broken after logged - in/out by many clients asynchronously for a long time - -ssh6-stress03 - Verify the ssh connectivity over IPv6 is not broken after forwarding - TCP traffic for a long time +ssh-stress03 + Verify the ssh connectivity over IPv4/IPv6 is not broken + after forwarding TCP traffic for a long time diff --git a/testcases/network/stress/ssh/ssh-stress b/testcases/network/stress/ssh/ssh-stress index 8521b75..72bef25 100644 --- a/testcases/network/stress/ssh/ssh-stress +++ b/testcases/network/stress/ssh/ssh-stress @@ -1,461 +1,148 @@ #!/bin/sh -################################################################################ -## ## -## Copyright (c) International Business Machines Corp., 2005 ## -## ## -## 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 will 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 to the Free Software ## -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ## -## ## -## ## -################################################################################ +# Copyright (c) 2015 Oracle and/or its affiliates. All Rights Reserved. +# Copyright (c) International Business Machines Corp., 2005 # -# File: -# ssh4-stress +# 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. # -# Description: -# Stress test for SSH over IPv4 -# test01 - Verify the ssh server or the kernel is not down after a large -# number of ssh sessions are created. -# test02 - Verify the ssh server or the kernel is not down after a large -# number of clients log in/out asynchronously for a long time. -# test03 - Verify the ssh server or the kernek is not down after a TCP -# traffic is forwarded via ssh port-forwarding for a long time +# 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. # -# Author: -# Mitsuru Chinen <mitch@jp.ibm.com> +# 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 # -# History: -# Oct 19 2005 - Created (Mitsuru Chinen) +# Author: Mitsuru Chinen <mitch@jp.ibm.com> # -#----------------------------------------------------------------------- -# Uncomment line below for debug output. -#trace_logic=${trace_logic:-"set -x"} -$trace_logic -# Make sure the value of LTPROOT -LTPROOT=${LTPROOT:-`(cd ../../../../ ; pwd)`} -export LTPROOT - -# Total number of the test case +TCID=ssh-stress TST_TOTAL=3 -export TST_TOTAL - -# The version of IP -IP_VER=${IP_VER:-4} - -# Default of the test case ID and the test case count -TCID=ssh${IP_VER}-stress -TST_COUNT=0 -export TCID -export TST_COUNT - -# Check the environmanet variable -. check_envval || exit $TST_TOTAL - -# Dulation of the test [sec] -NS_DURATION=${NS_DURATION:-3600} # 1 hour - -# Quantity of the connection for multi connection test -CONNECTION_TOTAL=${CONNECTION_TOTAL:-4000} - -# Temporary direcotry to store sshd setting or ssh key -# Note: ssh doesn't work when those directory are under /tmp. -SSH_TMPDIR_PARENT="/root" +TST_CLEANUP="cleanup" -# The number of the test link where tests run -LINK_NUM=${LINK_NUM:-0} +. test_net.sh -# Network portion of the IPv4 address -IPV4_NETWORK=${IPV4_NETWORK:-"10.0.0"} +# Temporary directory to store sshd setting or ssh key +# Note: ssh doesn't work when those directory is under /tmp. +TMPDIR="/root" -# Host portion of the IPv4 address on the local host -LHOST_IPV4_HOST=${LHOST_IPV4_HOST:-"2"} - -# Host portion of the IPv4 address on the remote host -RHOST_IPV4_HOST=${RHOST_IPV4_HOST:-"1"} - -# Network portion of the IPv6 address -IPV6_NETWORK="fd00:1:1:1" +cleanup() +{ + # Stop the ssh daemon + test -s sshd.pid && kill $(cat sshd.pid) + test "$server_pid" && kill -9 $server_pid > /dev/null 2>&1 + tst_rmdir + TMPDIR= +} -# Host portion of the IPv6 address of the local host -LHOST_IPV6_HOST=":2" +setup() +{ + trap "tst_brkm TBROK 'test interrupted'" INT -# Host portion of the IPv6 address of the remote host -RHOST_IPV6_HOST=":1" + tst_require_root + tst_check_cmds sshd ssh od -#----------------------------------------------------------------------- -# -# Function: -# do_cleanup -# -# Description: -# Clean up after running ssh stress test -# -#----------------------------------------------------------------------- -do_cleanup() -{ - # Stop the ssh daemon - kill `cat ${sshd_dir}/sshd.pid` + ipver=${TST_IPV6:-"4"} - # Delete the dictory that stores configuration files - rm -rf $sshd_dir - $LTP_RSH $RHOST "rm -rf $rhost_ssh_dir" + # Get the sshd command with absolute path + SSHD=$(which sshd) + test "$SSHD" || tst_brkm TBROK "sshd daemon is not found" - # Delete the temporary files - rm -f $message_file + check_icmpv${ipver}_connectivity $(tst_iface) $(tst_ipaddr rhost) || \ + tst_brkm TBROK "Failed to ping to $(tst_ipaddr rhost)" - # Initialize the interface - initialize_if lhost ${LINK_NUM} - initialize_if rhost ${LINK_NUM} + port=$(tst_rhost_run -c "tst_get_unused_port ipv${ipver} stream") - # Kill the tcp traffic server - killall_tcp_traffic -} + tst_tmpdir + tmpdir=$TST_TMPDIR -#----------------------------------------------------------------------- -# -# Function: -# do_setup -# -# Description: -# Setup for the ssh stress tests -# - Assign IP address to the interfaces belong to the specified Link -# - Run a sshd daemon for testing -# - Create keys for password-less login -# -# Set Values: -# lhost_addr: IP address of the local host -# rhost_addr: IP address of the remote host -# rhost_config: ssh_config at the remote host -# -#----------------------------------------------------------------------- -do_setup() -{ - trap do_cleanup 0 - - # Get the sshd command with absolute path - SSHD=`which sshd` - if [ x"${SSHD}" = x ]; then - tst_resm TBROK "sshd daemon is not found" - exit $TST_TOTAL - fi - - # Kill the tcp traffic server - killall_tcp_traffic - - # Initialize the interface - initialize_if lhost ${LINK_NUM} - initialize_if rhost ${LINK_NUM} - - # Get the Interface name - lhost_ifname=`get_ifname lhost ${LINK_NUM}` - if [ $? -ne 0 ]; then - tst_resm TBROK "Failed to get the interface name at the local host" - exit $TST_TOTAL - fi - - case $IP_VER in - 4) - # Set IPv4 address to the interfaces - set_ipv4addr lhost $LINK_NUM ${IPV4_NETWORK} ${LHOST_IPV4_HOST} - if [ $? -ne 0 ]; then - tst_resm TBROK "Failed to add any IP address at the local host" - exit 1 - fi - set_ipv4addr rhost $LINK_NUM ${IPV4_NETWORK} ${RHOST_IPV4_HOST} - if [ $? -ne 0 ]; then - tst_resm TBROK "Failed to add any IP address at the remote host" - exit 1 - fi - - lhost_addr="${IPV4_NETWORK}.${LHOST_IPV4_HOST}" - rhost_addr="${IPV4_NETWORK}.${RHOST_IPV4_HOST}" - check_icmpv4_connectivity $lhost_ifname $rhost_addr - if [ $? -ne 0 ]; then - tst_resm TBROK "Failed to ping to $rhost_addr" - exit 1 - fi - ;; - - 6) - # Set IPv6 address to the interfaces - add_ipv6addr lhost $LINK_NUM ${IPV6_NETWORK} ${LHOST_IPV6_HOST} - if [ $? -ne 0 ]; then - tst_resm TBROK "Failed to add any IP address at the local host" - exit 1 - fi - add_ipv6addr rhost $LINK_NUM ${IPV6_NETWORK} ${RHOST_IPV6_HOST} - if [ $? -ne 0 ]; then - tst_resm TBROK "Failed to add any IP address at the remote host" - exit 1 - fi - - lhost_addr="${IPV6_NETWORK}:${LHOST_IPV6_HOST}" - rhost_addr="${IPV6_NETWORK}:${RHOST_IPV6_HOST}" - check_icmpv6_connectivity $lhost_ifname $rhost_addr - if [ $? -ne 0 ]; then - tst_resm TBROK "Failed to ping to $rhost_addr" - exit 1 - fi - ;; - - *) - tst_resm TBROK "Unknown IP version: $IP_VER" - exit 1 - ;; - esac - - # - # Start sshd for testing - # - port=`find_portbundle tcp 1025 1` - if [ $? -ne 0 ]; then - tst_resm TFAIL "No port is available." - exit 1 - fi - sshd_dir=`TMPDIR="$SSH_TMPDIR_PARENT" mktemp -d` - cat << EOD > ${sshd_dir}/sshd_config + cat << EOD > $tmpdir/sshd_config Port $port -ListenAddress $lhost_addr +ListenAddress $(tst_ipaddr) PermitRootLogin yes -AuthorizedKeysFile ${sshd_dir}/authorized_keys +AuthorizedKeysFile $tmpdir/authorized_keys PasswordAuthentication no AllowTcpForwarding yes TCPKeepAlive yes UseDNS no -PidFile ${sshd_dir}/sshd.pid +PidFile $tmpdir/sshd.pid EOD + $SSHD -f $tmpdir/sshd_config || \ + tst_brkm TBROK "Failed to run sshd daemon" - $SSHD -f ${sshd_dir}/sshd_config - if [ $? -ne 0 ]; then - tst_resm TBROK "Failed to run sshd daemon." - exit 1 - fi - - # - # Generate configuration file and key at the remote host - # - rhost_ssh_dir=`$LTP_RSH $RHOST "mktemp -d -p $SSH_TMPDIR_PARENT"` - ret=`$LTP_RSH $RHOST '( cd '$rhost_ssh_dir' && ssh-keygen -t rsa -N "" -f id_rsa ) >/dev/null 2>&1 ; echo $?'` - if [ $ret -ne 0 ]; then - tst_resm TBROK "Failed to generate key." - exit 1 - fi - - rhost_config=${rhost_ssh_dir}/ssh_config - rmtshell="$LTP_RSH" - echo $LTP_RSH | grep "rsh.*-n" >/dev/null 2>&1 - if [ $? -eq 0 ]; then - rmtshell="`echo $LTP_RSH | sed "s/-n//"`" - fi - - cat << EOD | $rmtshell $RHOST "cat > $rhost_config" -Port $port -StrictHostKeyChecking no -PasswordAuthentication no -UserKnownHostsFile $rhost_ssh_dir/known_hosts -IdentityFile $rhost_ssh_dir/id_rsa -EOD - $LTP_RSH $RHOST "cd $rhost_ssh_dir && cat id_rsa.pub" > ${sshd_dir}/authorized_keys - $LTP_RSH $RHOST "chmod 700 $rhost_ssh_dir ; chmod 600 $rhost_ssh_dir/*" + tst_resm TINFO "Generate configuration file and key at the remote host" + rtmpdir=$(tst_rhost_run -c "mktemp -d -p $TMPDIR") + tst_rhost_run -s -c "ssh-keygen -t rsa -N \"\" -f $rtmpdir/id_rsa > /dev/null" - chmod 700 $sshd_dir - chmod 600 $sshd_dir/* -} + rconfig=$rtmpdir/ssh_config + tst_rhost_run -s -c "printf \"\ +Port $port\n\ +StrictHostKeyChecking no\n\ +PasswordAuthentication no\n\ +UserKnownHostsFile $rtmpdir/known_hosts\n\ +IdentityFile $rtmpdir/id_rsa\n\" > $rconfig" + + tst_rhost_run -s -c "chmod 700 $rtmpdir; chmod 600 $rtmpdir/*" + + tst_resm TINFO "Generate authorized_keys" + tst_rhost_run -c "cat ${rtmpdir}/id_rsa.pub" > $tmpdir/authorized_keys + + tst_resm TINFO "restore context of authorized_keys" + local rc=$(which restorecon) + test "$rc" && $rc $tmpdir/authorized_keys + + chmod 700 $tmpdir + chmod 600 $tmpdir/* +} -#----------------------------------------------------------------------- -# -# Function: -# test01 -# -# Description: -# Verify the ssh connectivity is not broken after creating a large -# number of ssh sessions -# -#----------------------------------------------------------------------- test01() { - TCID=ssh${IP_VER}-stress01 - TST_COUNT=1 - tst_resm TINFO "Verify the ssh connectivity over IPv${IP_VER} is not broken after creating ${CONNECTION_TOTAL} ssh sessions" - - # Script name at the remote host - rmtscript="ssh-stress01-rmt" - - # Run the script at the remote host - message_file=`mktemp -p $TMPDIR` - not_run_rmtscript=true - for rmtdir in ${LTPROOT}/testcases/bin ${PWD} ; do - ret=`$LTP_RSH $RHOST 'test -x '${rmtdir}/${rmtscript}' ; echo $?'` - if [ $ret -eq 0 ]; then - not_run_rmtscript=false - $LTP_RSH $RHOST "${rmtdir}/${rmtscript} $IP_VER $lhost_addr $rhost_config $CONNECTION_TOTAL" > $message_file - break - fi - done - if $not_run_rmtscript ; then - tst_resm TBROK "Failed to run the test script at the remote host" - rm -f $message_file - exit 1 - fi - - if [ -s $message_file ]; then - tst_resm TFAIL "`cat $message_file`" - rm -f $message_file - return 1 - else - tst_resm TPASS "Test is finished successfully." - rm -f $message_file - return 0 - fi + tst_resm TINFO "Creating '$CONNECTION_TOTAL' ssh sessions" -} + tst_rhost_run -s -c "ssh-stress01-rmt $ipver $(tst_ipaddr) \ + $rconfig $CONNECTION_TOTAL" + tst_resm TPASS "Test is finished successfully" +} -#----------------------------------------------------------------------- -# -# Function: -# test02 -# -# Description: -# Verify the ssh connectivity is not broken after logged in/out -# by many clients asynchronously for a long time -# -#----------------------------------------------------------------------- test02() { - TCID=ssh${IP_VER}-stress02 - TST_COUNT=2 - tst_resm TINFO "Verify the ssh connectivity over IPv${IP_VER} is not broken after logged in/out by many clients asynchronously in ${NS_DURATION}[sec]" - tst_resm TINFO "The number of client is not over $CONNECTION_TOTAL" - - # Script name at the remote host - rmtscript="ssh-stress02-rmt" - - # Run the script at the remote host - message_file=`mktemp -p $TMPDIR` - not_run_rmtscript=true - for rmtdir in ${LTPROOT}/testcases/bin ${PWD} ; do - ret=`$LTP_RSH $RHOST 'test -x '${rmtdir}/${rmtscript}' ; echo $?'` - if [ $ret -eq 0 ]; then - not_run_rmtscript=false - $LTP_RSH $RHOST "${rmtdir}/${rmtscript} $IP_VER $lhost_addr $rhost_config $CONNECTION_TOTAL $NS_DURATION" > $message_file - break - fi - done - if $not_run_rmtscript ; then - tst_resm TBROK "Failed to run the test script at the remote host" - rm -f $message_file - exit 1 - fi - - if [ -s $message_file ]; then - tst_resm TFAIL "`cat $message_file`" - rm -f $message_file - return 1 - else - tst_resm TPASS "Test is finished successfully." - rm -f $message_file - return 0 - fi -} + tst_resm TINFO "Log in/out by many clients asynchronously" + tst_resm TINFO "'$CONNECTION_TOTAL' clients, time $NS_DURATION sec" + tst_rhost_run -s -c "ssh-stress02-rmt $ipver $(tst_ipaddr) \ + $rconfig $CONNECTION_TOTAL $NS_DURATION" + + tst_resm TPASS "Test is finished successfully" +} -#----------------------------------------------------------------------- -# -# Function: -# test03 -# -# Description: -# Verify the ssh connectivity is not broken after forwarding TCP traffic -# for a long time -# -#----------------------------------------------------------------------- test03() { - TCID=ssh${IP_VER}-stress03 - TST_COUNT=3 - tst_resm TINFO "Verify the ssh connectivity over IPv${IP_VER} is not broken after forwarding TCP traffic in ${NS_DURATION}[sec]" - - # Script name at the remote host - rmtscript="ssh-stress03-rmt" - - # Run a TCP traffic server - traffic_port=`find_portbundle tcp 1025 1` || exit 1 - info_file=`mktemp -p $TMPDIR` - ns-tcpserver -b -f $IP_VER -p $traffic_port -o $info_file - if [ $? -ne 0 ]; then - tst_resm TFAIL "Failed to run a tcp traffic server." - rm -f $info_file - exit 1 - fi - - while true ; do - if [ -s $info_file ]; then - break - fi - done - - server_pid=`grep PID: $info_file | cut -f 2 -d ' '` - rm -f $info_file - - # Run the script at the remote host - message_file=`mktemp -p $TMPDIR` - not_run_rmtscript=true - for rmtdir in ${LTPROOT}/testcases/bin ${PWD} ; do - ret=`$LTP_RSH $RHOST 'test -x '${rmtdir}/${rmtscript}' ; echo $?'` - if [ $ret -eq 0 ]; then - not_run_rmtscript=false - $LTP_RSH $RHOST "${rmtdir}/${rmtscript} $LTPROOT $IP_VER $lhost_addr $rhost_config $traffic_port $NS_DURATION" > $message_file - break - fi - done - if $not_run_rmtscript ; then - tst_resm TBROK "Failed to run the test script at the remote host" - rm -f $message_file - exit 1 - fi - - if [ -s $message_file ]; then - tst_resm TFAIL "`cat $message_file`" - rm -f $message_file - return 1 - else - tst_resm TPASS "Test is finished successfully." - rm -f $message_file - return 0 - fi -} + tst_resm TINFO "Forwarding TCP traffic in $NS_DURATION sec" + # Run a TCP traffic server + port=$(tst_get_unused_port ipv${ipver} stream) -#----------------------------------------------------------------------- -# -# Main -# -# Exit Value: -# The number of the failure -# -#----------------------------------------------------------------------- + ns-tcpserver -b -f $ipver -p $port -o info_file || \ + tst_brkm TBROK "Failed to run a tcp traffic server" + server_pid=$(grep 'PID:' info_file | cut -f 2 -d ' ') + tst_rhost_run -s -c "ssh-stress03-rmt $ipver $(tst_ipaddr) \ + $rconfig $port $NS_DURATION" + + tst_resm TPASS "Test is finished successfully" +} + +setup -RC=0 -do_setup -test01 || RC=`expr $RC + 1` -test02 || RC=`expr $RC + 1` -test03 || RC=`expr $RC + 1` +test01 +test02 +test03 -exit $RC +tst_exit diff --git a/testcases/network/stress/ssh/ssh-stress01-rmt b/testcases/network/stress/ssh/ssh-stress01-rmt index a20d7a1..2a84957 100644 --- a/testcases/network/stress/ssh/ssh-stress01-rmt +++ b/testcases/network/stress/ssh/ssh-stress01-rmt @@ -1,114 +1,68 @@ #!/bin/sh -################################################################################ -## ## -## Copyright (c) International Business Machines Corp., 2005 ## -## ## -## 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 will 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 to the Free Software ## -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ## -## ## -## ## -################################################################################ +# Copyright (c) 2015 Oracle and/or its affiliates. All Rights Reserved. +# Copyright (c) International Business Machines Corp., 2005 # -# File: -# ssh-stress01-rmt +# 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. # -# Description: -# This is the remote script for ssh-ipv${IP_VER}-stress01 +# 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. # -# Author: -# Mitsuru Chinen <mitch@jp.ibm.com> +# 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 # -# Arguments: -# $1: version of IP -# $2: IP address log into -# $3: ssh_config file -# $4: quantity of connection +# Author: Mitsuru Chinen <mitch@jp.ibm.com> # -# Exit Value: -# 0: Success -# >0: Fail -# -# History: -# Oct 19 2005 - Created (Mitsuru Chinen) -# -#----------------------------------------------------------------------- -# Uncomment line below for debug output. -#trace_logic=${trace_logic:-"set -x"} -$trace_logic -# Check the arguments +TCID="ssh_stress01_rmt" +TST_TOTAL=1 + +. test.sh + if [ $# -ne 4 ]; then - echo "Usage: $0 IP_version server_addr config_dir connect_quantity" - exit 1 + tst_brkm TBROK "Usage: $0 ipver rhost config connections" fi + ip_ver="$1" server_ipaddr="$2" ssh_config="$3" -connect_quontity="$4" - -# Unset the maximum number of processes -ulimit -u unlimited +connections="$4" -# Specify the option of ssh accoring to the version of IP -case $ip_ver in - 4) - ver_opt="-4" - ;; - 6) - ver_opt="-6" - ;; - *) - echo "$ver_opt is unknown IP version" - exit 1 - ;; -esac +ssh -$ip_ver -F $ssh_config $server_ipaddr \ + "true < /dev/null > /dev/null 2>&1" > /dev/null -# Check the connectivity first -if [ ! -f $ssh_config ]; then - echo "$ssh_config is something wrong." - exit 1 -fi -ssh $ver_opt -F $ssh_config $server_ipaddr "true </dev/null >/dev/null 2>&1" >/dev/null 2>&1 -if [ $? -ne 0 ]; then - echo "Failed to connect $server_ipaddr" - exit 1 -fi +[ $? -ne 0 ] && tst_brkm TBROK "Can't connect to '$server_ipaddr'" -# # Make ssh connections -# num=0 -while [ $num -lt $connect_quontity ]; do - ssh $ver_opt -f -N -F $ssh_config $server_ipaddr - if [ $? -ne 0 ]; then - echo "$num seems the maximun number of ssh connection." >&2 - break - fi - num=`expr $num + 1` +while [ $num -lt $connections ]; do + ssh -$ip_ver -f -N -F $ssh_config $server_ipaddr + if [ $? -ne 0 ]; then + tst_resm TINFO "'$num' seems the max num of ssh conn" + break + fi + num=$(($num + 1)) done # Disconnect all ssh connection -for ssh_pid in `ps auxw | fgrep -v grep | grep "ssh[[:blank:]].*${ssh_config}" | awk '{print $2}'` ; do - kill $ssh_pid +all_conn=$(ps auxw | grep -Fv grep | \ + grep "ssh[[:blank:]].*${ssh_config}" | awk '{print $2}') + +for ssh_pid in "$all_conn"; do + kill $ssh_pid done # Check the connectivity again -ssh $ver_opt -F $ssh_config $server_ipaddr "true </dev/null >/dev/null 2>&1" >/dev/null 2>&1 +ssh -$ip_ver -F $ssh_config $server_ipaddr \ + "true < /dev/null > /dev/null 2>&1" > /dev/null if [ $? -ne 0 ]; then - echo "Failed to connect $server_ipaddr. ssh connectivity is lost." - exit 1 + tst_brkm TBROK "Failed to connect $server_ipaddr" fi -exit 0 +tst_exit diff --git a/testcases/network/stress/ssh/ssh-stress02-rmt b/testcases/network/stress/ssh/ssh-stress02-rmt index 1984552..05f4c38 100644 --- a/testcases/network/stress/ssh/ssh-stress02-rmt +++ b/testcases/network/stress/ssh/ssh-stress02-rmt @@ -1,128 +1,76 @@ #!/bin/sh -################################################################################ -## ## -## Copyright (c) International Business Machines Corp., 2005 ## -## ## -## 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 will 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 to the Free Software ## -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ## -## ## -## ## -################################################################################ +# Copyright (c) 2015 Oracle and/or its affiliates. All Rights Reserved. +# Copyright (c) International Business Machines Corp., 2005 # -# File: -# ssh-stress02-rmt +# 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. # -# Description: -# This is the remote script for ssh-ipv${IP_VER}-stress02 +# 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. # -# Author: -# Mitsuru Chinen <mitch@jp.ibm.com> +# 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 # -# Arguments: -# $1: version of IP -# $2: IP address log into -# $3: ssh_config file -# $4: quantity of connection -# $5: duration +# Author: Mitsuru Chinen <mitch@jp.ibm.com> # -# Exit Value: -# 0: Success -# >0: Fail -# -# History: -# Oct 19 2005 - Created (Mitsuru Chinen) -# -#----------------------------------------------------------------------- -# Uncomment line below for debug output. -#trace_logic=${trace_logic:-"set -x"} -$trace_logic + +TCID="ssh_stress02_rmt" +TST_TOTAL=1 + +. test.sh # Check the arguments if [ $# -ne 5 ]; then - echo "Usage: $0 IP_version server_addr config_dir connect_quantity duration" - exit 1 + tst_brkm TBROK "Usage: $0 ipver rhost config connections duration" fi + ip_ver="$1" server_ipaddr="$2" ssh_config="$3" -connect_quontity="$4" +connections="$4" duration="$5" -# Unset the maximum number of processes -ulimit -u unlimited - -# Specify the option of ssh accoring to the version of IP -case $ip_ver in - 4) - ver_opt="-4" - ;; - 6) - ver_opt="-6" - ;; - *) - echo "$ver_opt is unknown IP version" - exit 1 - ;; -esac +ssh -$ip_ver -F $ssh_config $server_ipaddr \ + "true < /dev/null > /dev/null 2>&1" > /dev/null +[ $? -ne 0 ] && tst_brkm TBROK "Failed to connect '$server_ipaddr'" -# Check the connectivity first -if [ ! -f $ssh_config ]; then - echo "$ssh_config is something wrong." - exit 1 -fi -ssh $ver_opt -F $ssh_config $server_ipaddr "true </dev/null >/dev/null 2>&1" >/dev/null 2>&1 -if [ $? -ne 0 ]; then - echo "Failed to connect $server_ipaddr" - exit 1 -fi - -# -# Mail loop -# -start_epoc=`date +%s` +start_epoc=$(date +%s) while true ; do - # Exit when the specified seconds have passed. - current_epoc=`date +%s` - elapse_epoc=`expr $current_epoc - $start_epoc` - if [ $elapse_epoc -ge $duration ]; then - break - fi + # Exit when the specified seconds have passed. + current_epoc=$(date +%s) + elapse_epoc=$(($current_epoc - $start_epoc)) + + [ $elapse_epoc -ge $duration ] && break - # Do not make ssh connection over the specified quontity - ssh_num=`jobs | wc -l` - if [ $ssh_num -ge $connect_quontity ]; then - sleep 1 - continue; - fi + # Do not make ssh connection over the specified quantity + ssh_num=$(jobs | wc -l) + if [ $ssh_num -ge $connections ]; then + sleep 1 + continue; + fi - # specified wait time and login time - wait_sec=`expr $RANDOM \* 3 / 32768` - login_sec=`expr $RANDOM \* 10 / 32768` + # specified wait time and login time + wait_sec=$(($(od -A n -d -N 1 /dev/random) * 3 / 255)) + login_sec=$(($(od -A n -d -N 1 /dev/random) * 10 / 255)) - # Login to the server - (sleep $wait_sec ; ssh $ver_opt -F $ssh_config -l root $server_ipaddr "sleep $login_sec </dev/null >/dev/null 2>&1") >/dev/null 2>&1 & + # Login to the server + (sleep $wait_sec ; ssh -$ip_ver -F $ssh_config -l root $server_ipaddr \ + "sleep $login_sec < /dev/null > /dev/null 2>&1") > \ + /dev/null 2>&1 & done # wait for the finish of all process wait # Check the connectivity again -ssh $ver_opt -F $ssh_config $server_ipaddr "true </dev/null >/dev/null 2>&1" >/dev/null 2>&1 -if [ $? -ne 0 ]; then - echo "Failed to connect $server_ipaddr. ssh connectivity is lost." - exit 1 -fi +ssh -$ip_ver -F $ssh_config $server_ipaddr \ + "true < /dev/null > /dev/null 2>&1" > /dev/null +[ $? -ne 0 ] && tst_brkm TBROK "Failed to connect '$server_ipaddr'" -exit 0 +tst_exit diff --git a/testcases/network/stress/ssh/ssh-stress03-rmt b/testcases/network/stress/ssh/ssh-stress03-rmt index 3ec263d..9dcebe7 100644 --- a/testcases/network/stress/ssh/ssh-stress03-rmt +++ b/testcases/network/stress/ssh/ssh-stress03-rmt @@ -1,150 +1,77 @@ #!/bin/sh -################################################################################ -## ## -## Copyright (c) International Business Machines Corp., 2005 ## -## ## -## 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 will 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 to the Free Software ## -## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 03111-1307 USA ## -## ## -## ## -################################################################################ +# Copyright (c) 2015 Oracle and/or its affiliates. All Rights Reserved. +# Copyright (c) International Business Machines Corp., 2005 # -# File: -# ssh-stress03-rmt +# 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. # -# Description: -# This is the remote script for ssh-ipv${IP_VER}-stress03 +# 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. # -# Author: -# Mitsuru Chinen <mitch@jp.ibm.com> +# 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 # -# Arguments: -# $1: version of IP -# $2: IP address log into -# $3: ssh_config file -# $4: quantity of connection -# $5: duration +# Author: Mitsuru Chinen <mitch@jp.ibm.com> # -# Exit Value: -# 0: Success -# >0: Fail -# -# History: -# Oct 19 2005 - Created (Mitsuru Chinen) -# -#----------------------------------------------------------------------- -# Uncomment line below for debug output. -#trace_logic=${trace_logic:-"set -x"} -$trace_logic + +TCID="ssh_stress03_rmt" +TST_TOTAL=1 + +. test.sh # Check the arguments -if [ $# -ne 6 ]; then - echo "Usage: $0 LTPROOT IP_version server_addr ssh_config remote_port duration" - exit 1 +if [ $# -ne 5 ]; then + tst_brkm TBROK "Usage: $0 ipver rhost config port duration" fi -ltproot="$1" -ip_ver="$2" -server_ipaddr="$3" -ssh_config="$4" -remote_port="$5" -duration="$6" -# Check the connectivity first -if [ ! -f $ssh_config ]; then - echo "$ssh_config is something wrong." - exit 1 -fi -ssh $ver_opt -F $ssh_config $server_ipaddr "true </dev/null >/dev/null 2>&1" >/dev/null 2>&1 -if [ $? -ne 0 ]; then - echo "Failed to connect $server_ipaddr" - exit 1 -fi +ip_ver="$1" +server_ipaddr="$2" +ssh_config="$3" +rport="$4" +duration="$5" -# Find an available port -stat_file=`mktemp` -netstat -a -n -t | awk '{ print $4 }' | sed "s/^.*://" >$stat_file 2>/dev/null -local_port=1025 -while true ; do - grep -l "^${local_port}$" $stat_file >/dev/null 2>&1 - if [ $? -eq 0 ]; then - local_port=`expr $local_port + 1` - if [ $local_port -gt 65535 ]; then - echo "No port is avaiable" - rm -f $stat_file - exit 1 - fi - else - rm -f $stat_file - break - fi -done +ssh -$ip_ver -F $ssh_config $server_ipaddr \ + "true < /dev/null > /dev/null 2>&1" > /dev/null +[ $? -ne 0 ] && tst_brkm TBROK "Failed to connect '$server_ipaddr'" -# Search the TCP traffic client -client_not_found=true -for clientdir in ${ltproot}/testcases/bin ${ltproot}/testcases/network/stress/bin ; do - client="${clientdir}/ns-tcpclient" - if [ -x $client ]; then - client_not_found=false - break - fi -done -if $client_not_found ; then - echo "TCP traffic client is not found" - exit 1 -fi +lport=$(tst_get_unused_port ipv${ip_ver} stream) -# Set the ssh portforwarding +# Set the ssh port-forwarding case $ip_ver in - 4) - localhost="127.0.0.1" - ssh -4 -f -N -L ${local_port}:${server_ipaddr}:${remote_port} root@${server_ipaddr} -F $ssh_config - ;; - 6) - localhost="::1" - ssh -6 -f -N -L ${local_port}/[${server_ipaddr}]/${remote_port} root@${server_ipaddr} -F $ssh_config - ;; - *) - echo "$ver_opt is unknown IP version" - exit 1 - ;; +4) + localhost="127.0.0.1" + ssh -4 -f -N -L $lport:$server_ipaddr:$rport \ + root@$server_ipaddr -F $ssh_config +;; +6) + localhost="::1" + ssh -6 -f -N -L $lport/[$server_ipaddr]/$rport \ + root@$server_ipaddr -F $ssh_config +;; esac - - # Start the TCP traffic client -$client -S $localhost -p ${local_port} -f $ip_ver -t $duration -if [ $? -ne 0 ]; then - echo "TCP traffic client is dead." +ns-tcpclient -S $localhost -p $lport -f $ip_ver -t $duration +ret=$? - # Stop the ssh port forwording - for ssh_pid in `ps auxw | fgrep -v grep | grep "ssh[[:blank:]].*${ssh_config}" | awk '{print $2}'` ; do +# Stop the ssh port forwarding +all_conn=$(ps auxw | grep -Fv grep | \ + grep "ssh[[:blank:]].*${ssh_config}" | awk '{print $2}') +for ssh_pid in $all_conn ; do kill $ssh_pid - done - exit 1 -fi - -# Stop the ssh port forwording -for ssh_pid in `ps auxw | fgrep -v grep | grep "ssh[[:blank:]].*${ssh_config}" | awk '{print $2}'` ; do - kill $ssh_pid done +[ $ret -ne 0 ] && tst_brkm TBROK "TCP traffic client is dead" + # Check the connectivity again -ssh $ver_opt -F $ssh_config $server_ipaddr "true </dev/null >/dev/null 2>&1" >/dev/null 2>&1 -if [ $? -ne 0 ]; then - echo "Failed to connect $server_ipaddr. ssh connectivity is lost." - exit 1 -fi +ssh -$ip_ver -F $ssh_config $server_ipaddr \ + "true < /dev/null > /dev/null 2>&1" > /dev/null +[ $? -ne 0 ] && tst_brkm TBROK "Failed to connect '$server_ipaddr'" -exit 0 +tst_exit -- 1.7.1 ------------------------------------------------------------------------------ New Year. New Location. New Benefits. New Data Center in Ashburn, VA. GigeNET is offering a free month of service with a new server in Ashburn. Choose from 2 high performing configs, both with 100TB of bandwidth. Higher redundancy.Lower latency.Increased capacity.Completely compliant. http://p.sf.net/sfu/gigenet _______________________________________________ Ltp-list mailing list Ltp-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ltp-list ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [LTP] [PATCH 3/4] network/stress/ssh: make use of tcp_fastopen client/server 2015-01-19 14:49 [LTP] [PATCH 1/4] network/stress/ssh: rename ssh4-stress Alexey Kodanev 2015-01-19 14:49 ` [LTP] [PATCH 2/4] network/stress/ssh: cleanup, use test_net.sh library Alexey Kodanev @ 2015-01-19 14:49 ` Alexey Kodanev 2015-01-19 14:49 ` [LTP] [PATCH 4/4] runtest/network-stress.appl: fix ssh test names Alexey Kodanev 2015-05-13 12:16 ` [LTP] [PATCH 1/4] network/stress/ssh: rename ssh4-stress Alexey Kodanev 3 siblings, 0 replies; 5+ messages in thread From: Alexey Kodanev @ 2015-01-19 14:49 UTC (permalink / raw) To: ltp-list; +Cc: vasily.isaenko Signed-off-by: Alexey Kodanev <alexey.kodanev@oracle.com> --- testcases/network/stress/ssh/ssh-stress | 13 ++++++------- testcases/network/stress/ssh/ssh-stress03-rmt | 8 ++++---- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/testcases/network/stress/ssh/ssh-stress b/testcases/network/stress/ssh/ssh-stress index 72bef25..d1e37bf 100644 --- a/testcases/network/stress/ssh/ssh-stress +++ b/testcases/network/stress/ssh/ssh-stress @@ -34,7 +34,7 @@ cleanup() { # Stop the ssh daemon test -s sshd.pid && kill $(cat sshd.pid) - test "$server_pid" && kill -9 $server_pid > /dev/null 2>&1 + pkill 'tcp_fastopen$' tst_rmdir TMPDIR= } @@ -44,7 +44,7 @@ setup() trap "tst_brkm TBROK 'test interrupted'" INT tst_require_root - tst_check_cmds sshd ssh od + tst_check_cmds pkill sshd ssh od ipver=${TST_IPV6:-"4"} @@ -125,16 +125,15 @@ test02() test03() { - tst_resm TINFO "Forwarding TCP traffic in $NS_DURATION sec" + tst_resm TINFO "Forwarding TCP traffic with $NS_TIMES requests" # Run a TCP traffic server port=$(tst_get_unused_port ipv${ipver} stream) - ns-tcpserver -b -f $ipver -p $port -o info_file || \ - tst_brkm TBROK "Failed to run a tcp traffic server" - server_pid=$(grep 'PID:' info_file | cut -f 2 -d ' ') + tcp_fastopen -R 3 -g $port > tcp_server.log 2>&1 & + tst_rhost_run -s -c "ssh-stress03-rmt $ipver $(tst_ipaddr) \ - $rconfig $port $NS_DURATION" + $rconfig $port $NS_TIMES" tst_resm TPASS "Test is finished successfully" } diff --git a/testcases/network/stress/ssh/ssh-stress03-rmt b/testcases/network/stress/ssh/ssh-stress03-rmt index 9dcebe7..a5b7af0 100644 --- a/testcases/network/stress/ssh/ssh-stress03-rmt +++ b/testcases/network/stress/ssh/ssh-stress03-rmt @@ -27,14 +27,14 @@ TST_TOTAL=1 # Check the arguments if [ $# -ne 5 ]; then - tst_brkm TBROK "Usage: $0 ipver rhost config port duration" + tst_brkm TBROK "Usage: $0 ipver rhost config port requests" fi ip_ver="$1" server_ipaddr="$2" ssh_config="$3" rport="$4" -duration="$5" +requests="$5" ssh -$ip_ver -F $ssh_config $server_ipaddr \ "true < /dev/null > /dev/null 2>&1" > /dev/null @@ -56,8 +56,8 @@ case $ip_ver in ;; esac -# Start the TCP traffic client -ns-tcpclient -S $localhost -p $lport -f $ip_ver -t $duration +# Start the TCP traffic clients +tcp_fastopen -r $requests -l -H $localhost -g $lport > /dev/null ret=$? # Stop the ssh port forwarding -- 1.7.1 ------------------------------------------------------------------------------ New Year. New Location. New Benefits. New Data Center in Ashburn, VA. GigeNET is offering a free month of service with a new server in Ashburn. Choose from 2 high performing configs, both with 100TB of bandwidth. Higher redundancy.Lower latency.Increased capacity.Completely compliant. http://p.sf.net/sfu/gigenet _______________________________________________ Ltp-list mailing list Ltp-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ltp-list ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [LTP] [PATCH 4/4] runtest/network-stress.appl: fix ssh test names 2015-01-19 14:49 [LTP] [PATCH 1/4] network/stress/ssh: rename ssh4-stress Alexey Kodanev 2015-01-19 14:49 ` [LTP] [PATCH 2/4] network/stress/ssh: cleanup, use test_net.sh library Alexey Kodanev 2015-01-19 14:49 ` [LTP] [PATCH 3/4] network/stress/ssh: make use of tcp_fastopen client/server Alexey Kodanev @ 2015-01-19 14:49 ` Alexey Kodanev 2015-05-13 12:16 ` [LTP] [PATCH 1/4] network/stress/ssh: rename ssh4-stress Alexey Kodanev 3 siblings, 0 replies; 5+ messages in thread From: Alexey Kodanev @ 2015-01-19 14:49 UTC (permalink / raw) To: ltp-list; +Cc: vasily.isaenko Signed-off-by: Alexey Kodanev <alexey.kodanev@oracle.com> --- runtest/network_stress.appl | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/runtest/network_stress.appl b/runtest/network_stress.appl index 9aee474..91dbdd3 100644 --- a/runtest/network_stress.appl +++ b/runtest/network_stress.appl @@ -2,8 +2,8 @@ # Stress test for major application protocol (ssh, dns, http, ftp) # -ssh4-stress ssh4-stress -ssh6-stress ssh6-stress +ssh4-stress ssh-stress +ssh6-stress ssh-stress -6 dns4-stress dns-stress dns6-stress dns-stress -6 -- 1.7.1 ------------------------------------------------------------------------------ New Year. New Location. New Benefits. New Data Center in Ashburn, VA. GigeNET is offering a free month of service with a new server in Ashburn. Choose from 2 high performing configs, both with 100TB of bandwidth. Higher redundancy.Lower latency.Increased capacity.Completely compliant. http://p.sf.net/sfu/gigenet _______________________________________________ Ltp-list mailing list Ltp-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ltp-list ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [LTP] [PATCH 1/4] network/stress/ssh: rename ssh4-stress 2015-01-19 14:49 [LTP] [PATCH 1/4] network/stress/ssh: rename ssh4-stress Alexey Kodanev ` (2 preceding siblings ...) 2015-01-19 14:49 ` [LTP] [PATCH 4/4] runtest/network-stress.appl: fix ssh test names Alexey Kodanev @ 2015-05-13 12:16 ` Alexey Kodanev 3 siblings, 0 replies; 5+ messages in thread From: Alexey Kodanev @ 2015-05-13 12:16 UTC (permalink / raw) To: ltp-list; +Cc: vasily.isaenko Hi, On 01/19/2015 05:49 PM, Alexey Kodanev wrote: > Signed-off-by: Alexey Kodanev <alexey.kodanev@oracle.com> > --- > testcases/network/stress/ssh/ssh-stress | 461 ++++++++++++++++++++++++++++++ > testcases/network/stress/ssh/ssh4-stress | 461 ------------------------------ > testcases/network/stress/ssh/ssh6-stress | 47 --- > 3 files changed, 461 insertions(+), 508 deletions(-) > create mode 100644 testcases/network/stress/ssh/ssh-stress > delete mode 100644 testcases/network/stress/ssh/ssh4-stress > delete mode 100644 testcases/network/stress/ssh/ssh6-stress > Patch-set applied. Best regards, Alexey ------------------------------------------------------------------------------ One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y _______________________________________________ Ltp-list mailing list Ltp-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ltp-list ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-05-13 12:13 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-01-19 14:49 [LTP] [PATCH 1/4] network/stress/ssh: rename ssh4-stress Alexey Kodanev 2015-01-19 14:49 ` [LTP] [PATCH 2/4] network/stress/ssh: cleanup, use test_net.sh library Alexey Kodanev 2015-01-19 14:49 ` [LTP] [PATCH 3/4] network/stress/ssh: make use of tcp_fastopen client/server Alexey Kodanev 2015-01-19 14:49 ` [LTP] [PATCH 4/4] runtest/network-stress.appl: fix ssh test names Alexey Kodanev 2015-05-13 12:16 ` [LTP] [PATCH 1/4] network/stress/ssh: rename ssh4-stress Alexey Kodanev
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox