From 611d8bd4c4027ebe8da338d3bbb10a6994975937 Mon Sep 17 00:00:00 2001 From: kalyanreddy Date: Tue, 21 Mar 2017 19:27:25 -0700 Subject: [PATCH] Code optimization and retrieving host_ip/test_time from host-config. This patch includes updated scripts to: 1.Select the host environment and test duration from host-config file to execute the test cases based on the job type. 2.Remove code duplications like sourcing a file multiple times. 3.Make packet forwarding test cases execution look clear. Change-Id: I88457b7f3dfacad1db2495090504974097228a4d Signed-off-by: Gundarapu Kalyan Reddy --- ci/envs/host-config | 26 ++++++++++++++++++++++++++ ci/envs/packet_forwarding.sh | 14 +++++++------- ci/test_kvmfornfv.sh | 17 +++++++++-------- 3 files changed, 42 insertions(+), 15 deletions(-) diff --git a/ci/envs/host-config b/ci/envs/host-config index 4a5d1b5a2..2ad4b3eb7 100755 --- a/ci/envs/host-config +++ b/ci/envs/host-config @@ -35,6 +35,32 @@ done stress_isolcpus=${first}-${last} echo "Stress tool runs on $stress_isolcpus" +#Host for executing test cases based on test_type/job from releng +function setHostIP { + test_type=$1 + if [ ${test_type} == "verify" ];then + HOST_IP="10.10.100.21" + elif [ ${test_type} == "daily" ];then + HOST_IP="10.10.100.22" + else + echo "Incorrect test type" + fi + echo ${HOST_IP} +} + +#Time duration for executing test cases based on test_type/job from releng +function setTestTime { + test_type=$1 + if [ ${test_type} == "verify" ];then + test_time=1000 # 1s + elif [ ${test_type} == "daily" ];then + test_time=3600000 # 1hr + else + echo "Incorrect test type" + fi + echo ${test_time} +} + #Tar the log files generated during testcase execution and exit. function test_exit { exitCode=$1 diff --git a/ci/envs/packet_forwarding.sh b/ci/envs/packet_forwarding.sh index ec399c6ab..643957a2d 100644 --- a/ci/envs/packet_forwarding.sh +++ b/ci/envs/packet_forwarding.sh @@ -108,10 +108,10 @@ function execute_vsperf() { # figure out log file name LOG_SUBDIR="OvsDpdkVhost" LOG_FILE="${LOG_FILE_PREFIX}_${LOG_SUBDIR}_${DATE_SUFFIX}.log" - echo " $VSPERF_BIN $OPNFVPOD --vswitch OvsDpdkVhost --vnf QemuDpdkVhostUser $CONF_FILE $TESTPARAM $TESTCASES > $LOG_FILE" - echo "daily test cases started" cd $HOME/vswitchperf $VSPERF_BIN --list + echo "daily test cases started" + echo " $VSPERF_BIN --vswitch OvsDpdkVhost --vnf QemuDpdkVhostUser $CONF_FILE $TESTPARAM $TESTCASES > $LOG_FILE" $VSPERF_BIN --vswitch OvsDpdkVhost --vnf QemuDpdkVhostUser $CONF_FILE $TESTPARAM $TESTCASES &>> $LOG_FILE ;; esac @@ -146,8 +146,8 @@ function execute_vsperf() { # copy logs into dedicated directory mkdir -p ${TEST_REPORT_LOG_DIR}/${LOG_SUBDIR} - [ -f "$LOG_FILE" ] && cp -a "${LOG_FILE}" "${TEST_REPORT_LOG_DIR}/${LOG_SUBDIR}" &> /dev/null - [ -d "$RES_DIR" ] && cp -ar "$RES_DIR" "${TEST_REPORT_LOG_DIR}/${LOG_SUBDIR}" &> /dev/null + [ -f "$LOG_FILE" ] && mv "${LOG_FILE}" "${TEST_REPORT_LOG_DIR}/${LOG_SUBDIR}" &> /dev/null + [ -d "$RES_DIR" ] && mv "$RES_DIR" "${TEST_REPORT_LOG_DIR}/${LOG_SUBDIR}" &> /dev/null } #Install vsperf and set up the environment @@ -159,9 +159,9 @@ install_qemu # execute job based on passed parameter case $1 in "daily") - echo "================" - echo "VSPERF daily job" - echo "================" + echo "========================================================" + echo "KVM4NFV daily job executing packet forwarding test cases" + echo "========================================================" execute_vsperf OVS_with_DPDK_and_vHost_User $1 execute_vsperf SRIOV $1 exit $EXIT diff --git a/ci/test_kvmfornfv.sh b/ci/test_kvmfornfv.sh index 8199bf0e9..47158dedd 100755 --- a/ci/test_kvmfornfv.sh +++ b/ci/test_kvmfornfv.sh @@ -45,6 +45,11 @@ function packetForward { fi } +function getTestParams { + HOST_IP=$( setHostIP $test_type ) + test_time=$( setTestTime $test_type ) +} + function cyclictest { test_case=$1 source $WORKSPACE/ci/cyclicTestTrigger.sh $HOST_IP $test_time $test_type $test_case @@ -72,9 +77,8 @@ function cyclictest { echo "Terminating PCM Process" sudo ssh root@${HOST_IP} "pid=\$(ps aux | grep 'pcm' | awk '{print \$2}' | head -1); echo \$pid |xargs kill -SIGTERM" } +#Collecting the Memory Bandwidth Information using pcm-memory utility function collect_MBWInfo { - #Collecting the Memory Bandwidth Information using pcm-memory utility - source $WORKSPACE/ci/envs/host-config testType=$1 timeStamp=$(date +%Y%m%d%H%M%S) echo "Running PCM memory to collect memory bandwidth" @@ -82,7 +86,6 @@ function collect_MBWInfo { sudo ssh root@${HOST_IP} "${pcm_memory} 60 &>/root/MBWInfo/MBWInfo_${testType}_${timeStamp} &disown" } function install_pcm { - source $WORKSPACE/ci/envs/host-config sudo ssh root@${HOST_IP} ' modelName=`cat /proc/cpuinfo | grep -i "model name" | uniq` if echo "$modelName" | grep -i "xeon" ;then @@ -107,8 +110,7 @@ function install_pcm { #Execution of testcases based on test type and test name from releng. if [ ${test_type} == "verify" ];then - HOST_IP="10.10.100.21" - test_time=1000 # 1s + getTestParams install_pcm if [ ${ftrace_enable} -eq '1' ]; then for env in ${cyclictest_env_verify[@]} @@ -138,8 +140,7 @@ if [ ${test_type} == "verify" ];then test_exit 0 fi elif [ ${test_type} == "daily" ];then - HOST_IP="10.10.100.22" - test_time=3600000 #1h + getTestParams install_pcm if [ ${test_name} == "packet_forward" ];then packetForward @@ -162,7 +163,7 @@ elif [ ${test_type} == "daily" ];then sed -i '/host-setup1.sh/a\ \- \"enable-trace.sh\"' kvmfornfv_cyclictest_hostenv_guestenv.yaml #Executing cyclictest through yardstick. cyclictest ${env} - #disabling ftrace and collecting the logs to upload to artifact repository. + #disabling ftrace and collecting the logs to upload to artifact repository. ftrace_disable sleep 5 done -- 2.16.6