Merge "This patch includes updated scripts for modifying function names and to optimi...
authorJiang, Yunhong <yunhong.jiang@intel.com>
Mon, 13 Mar 2017 19:22:04 +0000 (19:22 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Mon, 13 Mar 2017 19:22:04 +0000 (19:22 +0000)
1  2 
ci/cyclicTestTrigger.sh

diff --combined ci/cyclicTestTrigger.sh
@@@ -14,9 -14,6 +14,9 @@@ testName=$
  
  source $WORKSPACE/ci/envs/utils.sh
  source $WORKSPACE/ci/envs/host-config
 +
 +checkRPMNames
 +
  KERNELRPM_VERSION=$( getKernelVersion )
  QEMURPM_VERSION=$( getQemuVersion )
  
@@@ -68,29 -65,35 +68,35 @@@ function updateYaml 
     sed -ri "s/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/${HOST_IP}/" pod.yaml
     sed -ri "s/loops: [0-9]*/loops: ${testTime}/"  kvmfornfv_cyclictest_hostenv_guestenv.yaml
     sed -ri "0,/interval: [0-9]*/s//interval: 1000/"  kvmfornfv_cyclictest_hostenv_guestenv.yaml
-    sed -ri "s/tc: \"kvmfornfv_cyclictest-node-context\"/tc: \"kvmfornfv_cyclictest_${testName}\"/" kvmfornfv_cyclictest_hostenv_guestenv.yaml
     cp kvmfornfv_cyclictest_hostenv_guestenv.yaml kvmfornfv_cyclictest_${testName}.yaml
+    sed -ri "s/tc: \"kvmfornfv_cyclictest-node-context\"/tc: \"kvmfornfv_cyclictest_${testName}\"/" kvmfornfv_cyclictest_${testName}.yaml
     case $testName in
  
         idle_idle)
                  ;;
         cpustress_idle)
                        sed -i '/host-run-qemu.sh/a\    \- \"stress_daily.sh cpu\"' kvmfornfv_cyclictest_${testName}.yaml
+                       sed -i '/host-setup0.sh/,/host-setup1.sh/ d' kvmfornfv_cyclictest_${testName}.yaml
                        ;;
         memorystress_idle)
                        sed -i '/host-run-qemu.sh/a\    \- \"stress_daily.sh memory\"' kvmfornfv_cyclictest_${testName}.yaml
+                       sed -i '/host-setup0.sh/,/host-setup1.sh/ d' kvmfornfv_cyclictest_${testName}.yaml
                        ;;
         iostress_idle)
                        sed -i '/host-run-qemu.sh/a\    \- \"stress_daily.sh io\"' kvmfornfv_cyclictest_${testName}.yaml
+                       sed -i '/host-setup0.sh/,/host-setup1.sh/ d' kvmfornfv_cyclictest_${testName}.yaml
                        ;;
         idle_cpustress)
                        sed -i '/guest-setup1.sh/a\    \- \"stress_daily.sh cpu\"' kvmfornfv_cyclictest_${testName}.yaml
+                       sed -i '/host-setup0.sh/,/host-setup1.sh/ d' kvmfornfv_cyclictest_${testName}.yaml
                        ;;
         idle_memorystress)
                        sed -i '/guest-setup1.sh/a\    \- \"stress_daily.sh memory\"' kvmfornfv_cyclictest_${testName}.yaml
+                       sed -i '/host-setup0.sh/,/host-setup1.sh/ d' kvmfornfv_cyclictest_${testName}.yaml
                        ;;
         idle_iostress)
-                       sed -i '/guest-setup1.sh/a\    \- \"stress_daily.sh memory\"' kvmfornfv_cyclictest_${testName}.yaml
+                       sed -i '/guest-setup1.sh/a\    \- \"stress_daily.sh io\"' kvmfornfv_cyclictest_${testName}.yaml
+                       sed -i '/host-setup0.sh/,/host-setup1.sh/ d' kvmfornfv_cyclictest_${testName}.yaml
                        ;;
          *)
            echo "Incorrect test environment: $testName"
  
  #cleaning the environment after executing the test through yardstick.
  function env_clean {
-     container_id=`sudo docker ps -a | grep kvmfornfv_${testType}_${testName} |awk '{print \$1}'|sed -e 's/\r//g'`
+     container_id=`sudo docker ps -a | grep kvmfornfv_${testType} |awk '{print \$1}'|sed -e 's/\r//g'`
      sudo docker stop ${container_id}
      sudo docker rm ${container_id}
      sudo ssh root@${HOST_IP} "rm -rf /root/workspace/*"
@@@ -132,50 -135,55 +138,55 @@@ function cleanup 
  
  #Creating a docker image with yardstick installed and Verify the results of cyclictest
  function runCyclicTest {
-    docker_image_dir=$WORKSPACE/docker_image_build
-    ( cd ${docker_image_dir}; sudo docker build  -t kvmfornfv:latest --no-cache=true . )
-    if [ ${?} -ne 0 ] ; then
-       echo  "Docker image build failed"
-       id=$(sudo docker ps -a  | head  -2 | tail -1 | awk '{print $1}'); sudo docker rm -f $id
-       err_exit 1
+    container_id=`sudo docker ps -a | grep kvmfornfv_${testType} |awk '{print \$1}'|sed -e 's/\r//g'`
+    echo "$container_id"
+    if [ -z "$container_id" ]; then
+       docker_image_dir=$WORKSPACE/docker_image_build
+       ( cd ${docker_image_dir}; sudo docker build  -t kvmfornfv:latest --no-cache=true . )
+       if [ ${?} -ne 0 ] ; then
+          echo  "Docker image build failed"
+          id=$(sudo docker ps -a  | head  -2 | tail -1 | awk '{print $1}'); sudo docker rm -f $id
+          exit 1
+       fi
+       time_stamp=$(date +%Y%m%d%H%M%S)
+       volume=/tmp/kvmtest-${testType}-${time_stamp}
+       mkdir -p $volume/{image,rpm,scripts}
+       #copying required files to run yardstick cyclic testcase
+       cp $WORKSPACE/build_output/kernel-${KERNELRPM_VERSION}*.rpm ${volume}/rpm
+       cp $WORKSPACE/build_output/qemu-${QEMURPM_VERSION}*.rpm ${volume}/rpm
+       cp -r $WORKSPACE/ci/envs/* ${volume}/scripts
+       cp -r $WORKSPACE/tests/kvmfornfv_cyclictest_${testName}.yaml ${volume}
+       cp -r $WORKSPACE/tests/pod.yaml ${volume}/scripts
+       #Launching ubuntu docker container to run yardstick
+       container_id=`sudo docker run -i -d -v ${volume}:/opt --net=host --name kvmfornfv_${testType} \
+       kvmfornfv:latest`
+       sudo docker exec -i $container_id /bin/bash -c "cd /opt/scripts && ls; ./cyclictest.sh $testType $testName"
+       cyclictest_output=$?
+    else
+       cp -r $WORKSPACE/tests/kvmfornfv_cyclictest_${testName}.yaml ${volume}
+       sudo docker exec -i $container_id /bin/bash -c "cd /opt/scripts && ls; ./cyclictest.sh $testType $testName"
+       cyclictest_output=$?
     fi
-    time_stamp=$(date +%Y%m%d%H%M%S)
-    volume=/tmp/kvmtest-${testType}-${time_stamp}
-    mkdir -p $volume/{image,rpm,scripts}
-    #copying required files to run yardstick cyclic testcase
-    cp $WORKSPACE/build_output/kernel-${KERNELRPM_VERSION}*.rpm ${volume}/rpm
-    cp $WORKSPACE/build_output/qemu-${QEMURPM_VERSION}*.rpm ${volume}/rpm
-    cp -r $WORKSPACE/ci/envs/* ${volume}/scripts
-    cp -r $WORKSPACE/tests/kvmfornfv_cyclictest_${testName}.yaml ${volume}
-    cp -r $WORKSPACE/tests/pod.yaml ${volume}/scripts
-    #Launching ubuntu docker container to run yardstick
-    sudo docker run -i -v ${volume}:/opt --net=host --name kvmfornfv_${testType}_${testName} \
-    kvmfornfv:latest  /bin/bash -c "cd /opt/scripts && ls; ./cyclictest.sh $testType $testName"
-    cyclictest_output=$?
+    
     if [ "$testName" == "iostress_idle" ];then
        copyLogs
     fi
     #Verifying the results of cyclictest
     if [ "$testType" == "verify" ];then
        result=`grep -o '"errors":[^,]*' ${volume}/yardstick.out | awk -F '"' '{print $4}'`
  
-       if [ -z "${result}" ]; then
+       if [ -z "${result}" ] && [ "${cyclictest_output}" == 0 ]; then
           echo "####################################################"
-          echo ""
+          echo " "
           echo `grep -o '"data":[^}]*' ${volume}/yardstick.out | awk -F '{' '{print $2}'`
           echo ""
           echo "####################################################"
-          cleanup $cyclictest_output
+          return 0
        else
           echo "Testcase failed"
           echo `grep -o '"errors":[^,]*' ${volume}/yardstick.out | awk -F '"' '{print $4}'`
-          env_clean
-          host_clean
           return 1
        fi
-    else
-       cleanup $cyclictest_output
     fi
- }
+ }