summaryrefslogtreecommitdiffstats
path: root/ci/cyclicTestTrigger.sh
diff options
context:
space:
mode:
authorJiang, Yunhong <yunhong.jiang@intel.com>2017-03-13 19:22:04 +0000
committerGerrit Code Review <gerrit@opnfv.org>2017-03-13 19:22:04 +0000
commitaf712826966ee75ba5ac466a6c192580abdf0c29 (patch)
treec032c8979699d2b73865ca87f9e12d2a6d709525 /ci/cyclicTestTrigger.sh
parent0666e6b9c92cdba1d90c951423e5ef1fb2736c48 (diff)
parent53bf71ea043426dd23319bd3bd011fd9a8ce0446 (diff)
Merge "This patch includes updated scripts for modifying function names and to optimize the code for executing all the test cases and performing necessary host cleaning operations after executing all the test cases."
Diffstat (limited to 'ci/cyclicTestTrigger.sh')
-rwxr-xr-xci/cyclicTestTrigger.sh75
1 files changed, 43 insertions, 32 deletions
diff --git a/ci/cyclicTestTrigger.sh b/ci/cyclicTestTrigger.sh
index 43d2d6ac5..741a865d0 100755
--- a/ci/cyclicTestTrigger.sh
+++ b/ci/cyclicTestTrigger.sh
@@ -68,29 +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"
@@ -101,7 +107,7 @@ function updateYaml {
#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 +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
-}
+} \ No newline at end of file