summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiang, Yunhong <yunhong.jiang@intel.com>2017-03-17 19:48:33 +0000
committerGerrit Code Review <gerrit@opnfv.org>2017-03-17 19:48:34 +0000
commitd946629e1c1851dd12fd2f2664e9a12fc1b6c9bc (patch)
tree278e0b956585ca57b074ffd6ca39624502be3dbe
parentcce751aaf6856787ad417d027894d9b768f67165 (diff)
parent96e7a4ce5a4d186ed8297af9fd4333c510f2b9a1 (diff)
Merge "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."
-rwxr-xr-xci/cyclicTestTrigger.sh63
-rwxr-xr-xci/test_kvmfornfv.sh16
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"