From 96e7a4ce5a4d186ed8297af9fd4333c510f2b9a1 Mon Sep 17 00:00:00 2001 From: kalyanreddy Date: Fri, 17 Mar 2017 11:09:07 +0530 Subject: [PATCH] This patch includes updated scripts to use different docker containers for each test case and perform necessary clean up operations after execution of test cases. Revert "Revert "This patch includes updated scripts for modifying"" This reverts commit 53bf71ea043426dd23319bd3bd011fd9a8ce0446 Note: This is only a temporary workaround. Will push the fix soon. Change-Id: I6f3ef551bd8fb0b2c53ea2b3f4ee4bcf45dcdc7a Co-Authored-By: RajithaY Signed-off-by: Gundarapu Kalyan Reddy --- ci/cyclicTestTrigger.sh | 63 ++++++++++++++++++++----------------------------- ci/test_kvmfornfv.sh | 16 +------------ 2 files changed, 27 insertions(+), 52 deletions(-) diff --git a/ci/cyclicTestTrigger.sh b/ci/cyclicTestTrigger.sh index 12b2a66de..7a0c2a49b 100755 --- a/ci/cyclicTestTrigger.sh +++ b/ci/cyclicTestTrigger.sh @@ -76,27 +76,21 @@ function updateYaml { ;; 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 io\"' kvmfornfv_cyclictest_${testName}.yaml - sed -i '/host-setup0.sh/,/host-setup1.sh/ d' kvmfornfv_cyclictest_${testName}.yaml ;; *) echo "Incorrect test environment: $testName" @@ -164,36 +158,27 @@ function runPacketForwarding { #Creating a docker image with yardstick installed and Verify the results of cyclictest function runCyclicTest { - 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=$? + 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 + 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 @@ -202,17 +187,21 @@ function runCyclicTest { if [ "$testType" == "verify" ];then result=`grep -o '"errors":[^,]*' ${volume}/yardstick.out | awk -F '"' '{print $4}'` - if [ -z "${result}" ] && [ "${cyclictest_output}" == 0 ]; then + if [ -z "${result}" ]; then echo "####################################################" echo " " echo `grep -o '"data":[^}]*' ${volume}/yardstick.out | awk -F '{' '{print $2}'` echo "" echo "####################################################" - return 0 + cleanup $cyclictest_output 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 } diff --git a/ci/test_kvmfornfv.sh b/ci/test_kvmfornfv.sh index 11ea3a5ce..27419232e 100755 --- a/ci/test_kvmfornfv.sh +++ b/ci/test_kvmfornfv.sh @@ -60,15 +60,8 @@ function cyclictest { updateYaml #Running PCM utility collect_MBWInfo $test_type - #Checking which test cases will be executed first and last from the list to perform cleaning operations. - first_test_case=cyclictest_env_$test_type[0] - last_test_case=cyclictest_env_$test_type[-1] #Cleaning the environment before running cyclictest through yardstick - if [ ${test_case} == "${!first_test_case}" ];then - env_clean - else - sudo ssh root@${HOST_IP} "pid=\$(ps aux | grep 'qemu' | awk '{print \$2}' | head -1); echo \$pid |xargs kill" - fi + env_clean #Creating a docker image with yardstick installed and launching ubuntu docker to run yardstick cyclic testcase if runCyclicTest;then cyclictest_result=`expr ${cyclictest_result} + 0` @@ -78,9 +71,6 @@ function cyclictest { fi echo "Terminating PCM Process" sudo ssh root@${HOST_IP} "pid=\$(ps aux | grep 'pcm' | awk '{print \$2}' | head -1); echo \$pid |xargs kill -SIGTERM" - if [ ${test_case} != "${!last_test_case}" ];then - sudo ssh root@${HOST_IP} "reboot" - fi } function collect_MBWInfo { #Collecting the Memory Bandwidth Information using pcm-memory utility @@ -147,8 +137,6 @@ if [ ${test_type} == "verify" ];then cyclictest ${env} sleep 10 done - env_clean - host_clean #Execution of packet forwarding test cases. packetForward fi @@ -194,8 +182,6 @@ elif [ ${test_type} == "daily" ];then cyclictest ${env} sleep 5 done - env_clean - host_clean fi if [ ${cyclictest_result} -ne 0 ] ; then echo "Cyclictest case execution FAILED" -- 2.16.6