Hi,
On 17.09.2014 7:05, Hangbin Liu wrote:
> On Tue, Sep 16, 2014 at 06:47:38PM +0400, Alexey Kodanev wrote:
>> * Move networktests.sh and networkstress.sh parameters to network.sh.
>>    Both network scripts have the same settings (e.g. RHOST), and
>>    some of the stress test parameters can be used by other net-tests,
>>    such as LHOST_INTERFACE and RHOST_INTERFACE variables.
>> * Add network features group to networkstress.sh.
>> * Add network features group to 'whole' group.
>>
>> New test_net.sh functions:
>> * 'tst_get_ifaces TYPE' get test interface names for local/remote host
>>    (Note that it returns already defined iface list);
>> * 'tst_get_hwaddrs TYPE' get addresses from defined test interface names;
>> * 'tst_hwaddr TYPE LINK' get test HW address;
>> * 'tst_iface  TYPE LINK' get test interface name;
>>
>> TYPE can be 'rhost' or 'lhost' (default).
>> LINK is the test link number starting from 0 (default).
>>
>> Signed-off-by: Alexey Kodanev <alexey.koda...@oracle.com>
>> ---
>> v3: rename *HOST_INTERFACES to *HOST_IFACES
>>      add support for multi-links (new function)
>>      remove unused 'Nn' option in networkstress.sh
>>      move setting LTPROOT to network.sh
>>
>> v2: Add net features tests to 'whole' group
>>      tst_rhost_hwaddr(): run 'awk' on local machine
>>
>>   runtest/network_stress.features |    9 +++++
>>   runtest/network_stress.tcp      |    2 -
>>   runtest/network_stress.udp      |    4 --
>>   runtest/network_stress.whole    |   10 ++++++
>>   testcases/lib/test_net.sh       |   62 
>> +++++++++++++++++++++++++++++++++++++
>>   testscripts/network.sh          |   65 
>> +++++++++++++++++++++++++++++++++++++++
>>   testscripts/networkstress.sh    |   48 ++++------------------------
>>   testscripts/networktests.sh     |   21 +-----------
>>   8 files changed, 155 insertions(+), 66 deletions(-)
>>   create mode 100644 runtest/network_stress.features
>>   create mode 100755 testscripts/network.sh
>>
>> diff --git a/runtest/network_stress.features 
>> b/runtest/network_stress.features
>> new file mode 100644
>> index 0000000..14fa2d9
>> --- /dev/null
>> +++ b/runtest/network_stress.features
>> @@ -0,0 +1,9 @@
>> +#
>> +# Stress tests for various network features
>> +#
>> +
>> +tcp_fastopen tcp_fastopen_run.sh
>> +
>> +vxlan01 vxlan01.sh
>> +vxlan02 vxlan02.sh
>> +vxlan03 vxlan03.sh
>> diff --git a/runtest/network_stress.tcp b/runtest/network_stress.tcp
>> index 9795d2a..7206b3a 100644
>> --- a/runtest/network_stress.tcp
>> +++ b/runtest/network_stress.tcp
>> @@ -331,5 +331,3 @@ tcp6-multi-diffnic11 tcp6-multi-diffnic11
>>   tcp6-multi-diffnic12 tcp6-multi-diffnic12
>>   tcp6-multi-diffnic13 tcp6-multi-diffnic13
>>   tcp6-multi-diffnic14 tcp6-multi-diffnic14
>> -
>> -tcp_fastopen tcp_fastopen_run.sh
>> diff --git a/runtest/network_stress.udp b/runtest/network_stress.udp
>> index 2f62c14..bfe9d85 100644
>> --- a/runtest/network_stress.udp
>> +++ b/runtest/network_stress.udp
>> @@ -65,7 +65,3 @@ udp6-multi-diffnic04 udp6-multi-diffnic04
>>   udp6-multi-diffnic05 udp6-multi-diffnic05
>>   udp6-multi-diffnic06 udp6-multi-diffnic06
>>   udp6-multi-diffnic07 udp6-multi-diffnic07
>> -
>> -vxlan01 vxlan01.sh
>> -vxlan02 vxlan02.sh
>> -vxlan03 vxlan03.sh
>> diff --git a/runtest/network_stress.whole b/runtest/network_stress.whole
>> index 35c219f..7b0dfa3 100644
>> --- a/runtest/network_stress.whole
>> +++ b/runtest/network_stress.whole
>> @@ -551,3 +551,13 @@ ftp6-download-stress ftp6-download-stress
>>   
>>   ftp4-upload-stress ftp4-upload-stress
>>   ftp6-upload-stress ftp6-upload-stress
>> +
>> +#
>> +# Stress tests for various network features
>> +#
>> +
>> +tcp_fastopen tcp_fastopen_run.sh
>> +
>> +vxlan01 vxlan01.sh
>> +vxlan02 vxlan02.sh
>> +vxlan03 vxlan03.sh
>> diff --git a/testcases/lib/test_net.sh b/testcases/lib/test_net.sh
>> index 51b3e38..e4a36d7 100644
>> --- a/testcases/lib/test_net.sh
>> +++ b/testcases/lib/test_net.sh
>> @@ -75,3 +75,65 @@ tst_rhost_run()
>>   
>>      return $ret
>>   }
>> +
>> +# Get test interface names for local/remote host.
>> +# tst_get_ifaces [TYPE]
>> +# TYPE: { lhost | rhost }; Default value is 'lhost'.
>> +tst_get_ifaces()
>> +{
>> +    local type=${1:-"lhost"}
>> +    if [ "$type" = "lhost" ]; then
>> +            echo "$LHOST_IFACES"
>> +    else
>> +            echo "$RHOST_IFACES"
>> +    fi
>> +}
>> +
>> +# Get HW addresses from defined test interface names.
>> +# tst_get_hwaddrs [TYPE]
>> +# TYPE: { lhost | rhost }; Default value is 'lhost'.
>> +tst_get_hwaddrs()
>> +{
>> +    local type=${1:-"lhost"}
>> +    local addr=
>> +    local list=
>> +
>> +    for eth in $(tst_get_ifaces $type); do
>> +            case $type in
>> +            lhost)
>> +            addr=$(ip link show $eth | awk 'NR==2 { print $2 }')
>> +            ;;
>> +            rhost)
>> +            addr=$(tst_rhost_run -s -c "ip link show $eth" | \
>> +                   awk 'NR==2 { print $2 }')
>> +            esac
>> +            [ -z "$list" ] && list="$addr" || list="$list $addr"
>> +    done
>> +    echo "$list"
>> +}
>> +
>> +# Get test HW address.
>> +# tst_hwaddr [TYPE] [LINK]
>> +# TYPE: { lhost | rhost }; Default value is 'lhost'.
>> +# LINK: link number starting from 0. Default value is '0'.
>> +tst_hwaddr()
>> +{
>> +    local type=${1:-"lhost"}
>> +    local link_num=${2:-"0"}
>> +    local hwaddrs=
>> +    link_num=$(( $link_num + 1 ))
>> +    [ "$type" = "lhost" ] && hwaddrs=$LHOST_HWADDRS || 
>> hwaddrs=$RHOST_HWADDRS
>> +    echo "$hwaddrs" | awk '{ print $'"$link_num"' }'
>> +}
>> +
>> +# Get test interface name.
>> +# tst_iface [TYPE] [LINK]
>> +# TYPE: { lhost | rhost }; Default value is 'lhost'.
>> +# LINK: link number starting from 0. Default value is '0'.
>> +tst_iface()
>> +{
>> +    local type=${1:-"lhost"}
>> +    local link_num=${2:-"0"}
>> +    link_num=$(( $link_num + 1 ))
>> +    echo "$(tst_get_ifaces $type)" | awk '{ print $'"$link_num"' }'
>> +}
>> diff --git a/testscripts/network.sh b/testscripts/network.sh
>> new file mode 100755
>> index 0000000..30a4f02
>> --- /dev/null
>> +++ b/testscripts/network.sh
>> @@ -0,0 +1,65 @@
>> +#!/bin/sh
>> +
>> +TST_TOTAL=1
>> +TCID="network_settings"
>> +. test_net.sh
>> +
>> +# Network Test Parameters
>> +#
>> +# ---***** THESE MUST BE SET FOR CORRECT OPERATION *****---
>> +
>> +export RHOST=${RHOST:-""}
>> +export PASSWD=
> Hi Alexey,
>
> All the patch looks good for me except a little variable issue. Since most of
> our variables use format like $A=${A:-"default_value"}, why not also make
> PASSWD and others like HTTP_DOWNLOAD_DIR use this format?
>
>> +
>> +# ---***************************************************---
>> +# More information about network parameters can be found
>> +# in the following document: testcases/network/stress/README
>> +
>> +export LTP_RSH=${LTP_RSH:-"rsh -n"}
>> +
>> +# Set names for test interfaces, e.g. "eth0 eth1"
>> +export LHOST_IFACES=${LHOST_IFACES:-"eth0"}
>> +export RHOST_IFACES=${RHOST_IFACES:-"eth0"}
>> +
>> +# Set corresponding HW addresses, e.g. "00:00:00:00:00:01 00:00:00:00:00:02"
>> +export LHOST_HWADDRS=${LHOST_HWADDRS:-"$(tst_get_hwaddrs lhost)"}
>> +export RHOST_HWADDRS=${RHOST_HWADDRS:-"$(tst_get_hwaddrs rhost)"}
>> +
>> +# Set first three octets of the network address, default is '10.0.0'
>> +export IPV4_NETWORK=${IPV4_NETWORK:-"10.0.0"}
>> +# Set local host last octet, default is '2'
>> +export LHOST_IPV4_HOST=${LHOST_IPV4_HOST:-"2"}
>> +# Set remote host last octet, default is '1'
>> +export RHOST_IPV4_HOST=${RHOST_IPV4_HOST:-"1"}
>> +# Set the reverse of IPV4_NETWORK
>> +export IPV4_NETWORK_REVERSE=${IPV4_NETWORK_REVERSE:-"0.0.10"}
>> +# Set first three octets of the network address, default is 'fd00:1:1:1'
>> +export IPV6_NETWORK=${IPV6_NETWORK:-"fd00:1:1:1"}
>> +# Set local host last octet, default is '2'
>> +export LHOST_IPV6_HOST=${LHOST_IPV6_HOST:-":2"}
>> +# Set remote host last octet, default is '1'
>> +export RHOST_IPV6_HOST=${RHOST_IPV6_HOST:-":1"}
>> +
>> +export HTTP_DOWNLOAD_DIR=
>> +export FTP_DOWNLOAD_DIR=
>> +export FTP_UPLOAD_DIR=
>> +export FTP_UPLOAD_URLDIR=
>> +
> And here.
>
>> +export TMPDIR=/tmp/netpan-$$
>> +mkdir -p $TMPDIR
>> +CMDFILE=${TMPDIR}/network.tests
>> +VERBOSE="no"
>> +
>> +export LTPROOT=${PWD}
> And here.
>
> I'd like to explain the reason why I insist to use format like
> $A=${A:-"default_value"}. In our company, we use auto job to test kernels, I
> will clone and install the latest ltp repo on each release, then run the
> script to execute ltp testcases. So I'd like to export all the variables in my
> script without modify ltp files. I think it would be better to make users have
> opportunity to choose what values they want to use.

OK, I have no objections.

Cyril,
Do you agree with the changes in v3?

Thanks,
Alexey

> Thanks & best regards
> Hangbin Liu
>
>> +echo $LTPROOT | grep testscripts > /dev/null 2>&1
>> +if [ $? -eq 0 ]; then
>> +    cd ..
>> +    export LTPROOT=${PWD}
>> +fi
>> +
>> +export PATH="${PATH}:${LTPROOT}/testcases/bin"
>> +
>> +# Reset variables.
>> +# Don't break the tests which are using 'testcases/lib/cmdlib.sh'
>> +export TCID=
>> +export TST_LIB_LOADED=
>> diff --git a/testscripts/networkstress.sh b/testscripts/networkstress.sh
>> index b40af72..5e46787 100755
>> --- a/testscripts/networkstress.sh
>> +++ b/testscripts/networkstress.sh
>> @@ -4,40 +4,11 @@
>>   #
>>   # Please read ltp-yyyymmdd/testcases/network/stress/README before running
>>   
>> -cd `dirname $0`
>> -export LTPROOT=${PWD}
>> -echo $LTPROOT | grep testscripts > /dev/null 2>&1
>> -if [ $? -eq 0 ]; then
>> - cd ..
>> - export LTPROOT=${PWD}
>> -fi
>> -
>> -export TMPDIR=/tmp/netst-$$
>> -mkdir $TMPDIR
>> -VERBOSE="no"
>> -INTERFACE="eth0"
>> -
>> -#===========================================================================
>> -# Network parameters
>> -export RHOST=
>> -export RHOST_HWADDRS=
>> -export HTTP_DOWNLOAD_DIR=
>> -export FTP_DOWNLOAD_DIR=
>> -export FTP_UPLOAD_DIR=
>> -export FTP_UPLOAD_URLDIR=
>> -
>> -# Set firt three octets of the network address, by default 10.0.0
>> -export IPV4_NETWORK=
>> -# Set local host last octet, by default 2
>> -export LHOST_IPV4_HOST=
>> -# Set remote host last octet, by default 1
>> -export RHOST_IPV4_HOST=
>> -# Set the reverse of IPV4_NETWORK, by default 0.0.10
>> -export IPV4_NETWORK_REVERSE=
>> +cd $(dirname $0)
>> +. ./network.sh
>>   
>>   
>> #===========================================================================
>>   # Default Test Settings
>> -# export LTP_RSH=rsh
>>   # export NS_DURATION=3600  # 1 hour
>>   # export NS_TIMES=10000
>>   # export CONNECTION_TOTAL=4000
>> @@ -67,17 +38,17 @@ usage () {
>>       echo " -R|r: Stress test for routing table"
>>       echo " -B|b: Stress Broken IP packets"
>>       echo " -M|m: Multicast stress tests"
>> +    echo " -F|f: Stress test for network features"
>>       echo " -S|s: Run selected tests"
>>       echo " -W|w: Run whole network stress tests"
>>       echo " -D|d: Test duration (default ${NS_DURATION} sec)"
>> -    echo " -N|n: Select the network interface (default: $INTERFACE)"
>>       echo " -V|v: Enable verbose"
>>       echo " -H|h: This Usage"
>>       echo ""
>>       exit 1
>>   }
>>   
>> -while getopts AaEeTtIiUuRrMmSsWwBbVvN:n:D:d: OPTION
>> +while getopts AaEeTtIiUuRrMmFfSsWwBbVvD:d: OPTION
>>   do
>>       case $OPTION in
>>      A|a) TEST_CASE="network_stress.appl";;
>> @@ -88,10 +59,10 @@ do
>>      U|u) TEST_CASE="network_stress.udp";;
>>      R|r) TEST_CASE="network_stress.route";;
>>      M|m) TEST_CASE="network_stress.multicast";;
>> +    F|f) TEST_CASE="network_stress.features";;
>>      S|s) TEST_CASE="network_stress.selected";;
>>      W|w) TEST_CASE="network_stress.whole";;
>>      V|v) VERBOSE="yes";;
>> -    N|n) INTERFACE=${OPTARG};;
>>      D|d) NS_DURATION=${OPTARG};;
>>      H|h) usage;;
>>      *) echo "Error: invalid option..."; usage; exit 1 ;;
>> @@ -102,8 +73,6 @@ if [ -z ${TEST_CASE} ]; then
>>      usage
>>   fi
>>   
>> -export LHOST_HWADDRS=`ifconfig | grep ${INTERFACE} | grep HWaddr |awk 
>> '{print $5}'`
>> -
>>   if [ -z ${RHOST} ]; then
>>      ## Just a silly check
>>      echo "Error: pay attention to configure"
>> @@ -115,13 +84,10 @@ cat ${LTPROOT}/runtest/${TEST_CASE} > 
>> $TMPDIR/network_stress.tests
>>   
>>   cd $TMPDIR
>>   
>> -export PATH="${PATH}:${LTPROOT}/testcases/bin"
>> -
>>   if [ ${VERBOSE} = "yes" ]; then
>>      echo "Network parameters:"
>> -    echo " - ${INTERFACE} local interface (MAC address: ${LHOST_HWADDRS})"
>> -    echo " - Remote IP address: ${RHOST}"
>> -    echo " - Remote MAC address: ${RHOST_HWADDRS}"
>> +    echo " - ${LHOST_IFACES} local interface (MAC address: 
>> ${LHOST_HWADDRS})"
>> +    echo " - ${RHOST_IFACES} remote interface (MAC address: 
>> ${RHOST_HWADDRS})"
>>   
>>      cat $TMPDIR/network_stress.tests
>>      ${LTPROOT}/ver_linux
>> diff --git a/testscripts/networktests.sh b/testscripts/networktests.sh
>> index b136749..308bd9a 100755
>> --- a/testscripts/networktests.sh
>> +++ b/testscripts/networktests.sh
>> @@ -1,23 +1,8 @@
>>   #!/bin/sh
>>   # This will run all the network tests, with the status logged in 
>> /tmp/netpan.log
>>   
>> -# ---***** THESE MUST BE SET FOR CORRECT OPERATION *****---
>> -export RHOST=
>> -export PASSWD=
>> -# ---***************************************************---
>> -
>> -cd `dirname $0`
>> -export LTPROOT=${PWD}
>> -echo $LTPROOT | grep testscripts > /dev/null 2>&1
>> -if [ $? -eq 0 ]; then
>> - cd ..
>> - export LTPROOT=${PWD}
>> -fi
>> -
>> -export TMPDIR=/tmp/netpan-$$
>> -mkdir -p $TMPDIR
>> -CMDFILE=${TMPDIR}/network.tests
>> -VERBOSE="no"
>> +cd $(dirname $0)
>> +. ./network.sh
>>   
>>   # For bitwise operation to determine which testsets run
>>   CMD_IPV6=1         # 0x0001
>> @@ -110,8 +95,6 @@ fi
>>   
>>   cd $TMPDIR
>>   
>> -export PATH="${PATH}:${LTPROOT}/testcases/bin"
>> -
>>   if [ ${VERBOSE} = "yes" ]; then
>>       echo "Network parameters:"
>>       echo " - Remote Host: ${RHOST}"
>> -- 
>> 1.7.1
>>


------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to