summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorswatisharma <swatix.sharma@intel.com>2016-08-18 01:02:53 +0530
committerswatisharma <swatix.sharma@intel.com>2016-08-20 02:51:42 +0530
commit98ac1e06204a5cb5f9ab1158173232e31772359f (patch)
treefc4c9b2346cf5f4d3470cf3e5623d5e59561ae07
parentc149674b4725b5d9bcdab22c180ef8ecba033523 (diff)
CI integration for KVMforNFV.
This patch contains scripts for running cyclictest through yardstick as part of CI integration for KVMforNFV. The scripts will be triggered to create a docker ubuntu container for running yardstick, configuring the host, launching a guest VM and executing cyclictest through yardstick. The verification process gets completed after running the cyclictest. Co-Authored-By: Gundarapu Reddy <reddyx.gundarapu@intel.com> Signed-off-by: Swati Sharma <swatix.sharma@intel.com>
-rwxr-xr-x[-rw-r--r--]ci/envs/cyclictest.sh8
-rwxr-xr-xci/envs/guest-setup0.sh19
-rwxr-xr-xci/envs/host-run-qemu.sh22
-rwxr-xr-xci/envs/host-setup0.sh2
-rwxr-xr-xci/test_kvmfornfv.sh44
5 files changed, 73 insertions, 22 deletions
diff --git a/ci/envs/cyclictest.sh b/ci/envs/cyclictest.sh
index e4dd9931f..c261fe05d 100644..100755
--- a/ci/envs/cyclictest.sh
+++ b/ci/envs/cyclictest.sh
@@ -18,6 +18,10 @@ if [ ! -f ${cyclictest_context_file} ] ; then
exit 1
fi
+#setting up of image for launching guest vm.
+sudo ssh root@10.2.117.23 "cp /root/images/guest1.qcow2 /root/"
+
#Running cyclictest through yardstick
-yardstick task start ${cyclictest_context_file}
-mv /tmp/yardstick.out /opt/
+yardstick -d task start ${cyclictest_context_file}
+chmod 777 /tmp/yardstick.out
+cat /tmp/yardstick.out > /opt/yardstick.out
diff --git a/ci/envs/guest-setup0.sh b/ci/envs/guest-setup0.sh
index 490bd570d..4f9eaa430 100755
--- a/ci/envs/guest-setup0.sh
+++ b/ci/envs/guest-setup0.sh
@@ -9,27 +9,26 @@
###############################################################################
-rpmdir=${1:-"/root/workspace/"}
-rpmpat="kernel-4.1*.rpm"
-rpm -ihv ${rpmdir}/rt-tests-0.96-1.el7.centos.x86_64.rpm
+rpmdir=${1:-"/root/workspace/rpm"}
+rpmpat="kernel-4.4*.rpm"
guest_isolcpus=1
-# The script's caller should passing the rpm directory that is built out from
+# The script's caller should passing the rpm directory that is built out from
# build.sh. The default rpmdir is the one used by yardstick scripts.
install_kernel () {
# Install the kernel rpm
filenum=`ls -l ${rpmdir}/${rpmpat} |wc -l`
if [ $filenum -eq 0 ]
then
- echo "No kernel rpm found in workspace/rpm"
- exit 1
+ echo "No kernel rpm found in workspace/rpm"
+ exit 1
elif [ $filenum -gt 1 ]
then
- echo "Multiple kernel rpm found in workspace/rpm"
- exit 1
+ echo "Multiple kernel rpm found in workspace/rpm"
+ exit 1
else
- krpm=`find "${rpmdir}" -name "${rpmpat}"`
- rpm -ihv $krpm
+ krpm=`find "${rpmdir}" -name "${rpmpat}"`
+ rpm -ihv $krpm
fi
}
diff --git a/ci/envs/host-run-qemu.sh b/ci/envs/host-run-qemu.sh
index c7a2fecc6..487aebe66 100755
--- a/ci/envs/host-run-qemu.sh
+++ b/ci/envs/host-run-qemu.sh
@@ -18,14 +18,20 @@ cpumask () {
qmp_sock="/tmp/qmp-sock-$$"
-${qemu} -smp ${guest_cpus} -monitor unix:${qmp_sock},server,nowait -daemonize \
- -cpu host,migratable=off,+invtsc,+tsc-deadline,pmu=off \
- -realtime mlock=on -mem-prealloc -enable-kvm -m 1G \
- -mem-path /mnt/hugetlbfs-1g \
- -drive file=/root/workspace/image/guest.img,cache=none,aio=threads \
- -netdev user,id=guest0,hostfwd=tcp::5555-:22 \
- -device virtio-net-pci,netdev=guest0 \
- -nographic -serial /dev/null -parallel /dev/null
+#${qemu} -smp ${guest_cpus} -monitor unix:${qmp_sock},server,nowait -daemonize \
+# -cpu host,migratable=off,+invtsc,+tsc-deadline,pmu=off \
+# -realtime mlock=on -mem-prealloc -enable-kvm -m 1G \
+# -mem-path /mnt/hugetlbfs-1g \
+# -drive file=/root/minimal-centos1.qcow2,cache=none,aio=threads \
+# -netdev user,id=guest0,hostfwd=tcp:10.2.117.23:5555-:22 \
+# -device virtio-net-pci,netdev=guest0 \
+# -nographic -serial /dev/null -parallel /dev/null
+
+${qemu} -smp ${guest_cpus} -drive file=/root/guest1.qcow2 -daemonize \
+ -netdev user,id=net0,hostfwd=tcp:10.2.117.23:5555-:22 \
+ -realtime mlock=on -mem-prealloc -enable-kvm -m 1G \
+ -mem-path /mnt/hugetlbfs-1g \
+ -device virtio-net-pci,netdev=net0 \
i=0
for c in `echo ${host_isolcpus} | sed 's/,/ /g'` ; do
diff --git a/ci/envs/host-setup0.sh b/ci/envs/host-setup0.sh
index 79d1f585a..28c49b8b8 100755
--- a/ci/envs/host-setup0.sh
+++ b/ci/envs/host-setup0.sh
@@ -12,7 +12,7 @@
source host-config
rpmdir=${1:-"/root/workspace/rpm/"}
-rpmpat="kernel-4.1*.rpm"
+rpmpat="kernel-4.4*.rpm"
config_grub () {
key=$1
diff --git a/ci/test_kvmfornfv.sh b/ci/test_kvmfornfv.sh
index 70961d748..45d1ea252 100755
--- a/ci/test_kvmfornfv.sh
+++ b/ci/test_kvmfornfv.sh
@@ -9,4 +9,46 @@
## and verifies the test results.
############################################################
-echo "Hello world"
+
+function env_clean {
+ container_id=`sudo docker ps -a | grep kvmfornfv |awk '{print $1}'`
+ sudo docker rm $container_id
+ sudo ssh root@10.2.117.23 "rm -rf /root/workspace/*"
+ sudo ssh root@10.2.117.23 "pid=\$(ps aux | grep 'qemu' | awk '{print \$2}' | head -1); echo \$pid |xargs kill"
+ sudo rm -rf /tmp/kvmtest-*
+}
+
+#Cleaning up the test environment before running cyclictest through yardstick.
+env_clean
+
+time_stamp=$(date +%Y%m%d%H%M%S)
+volume=/tmp/kvmtest-${time_stamp}
+mkdir -p $volume/{image,rpm,scripts}
+
+#copying required files to run yardstick cyclic testcase
+mv $WORKSPACE/build_output/kernel-4.4*.rpm $volume/rpm
+cp -r $WORKSPACE/ci/envs/* $volume/scripts
+cp -r $WORKSPACE/tests/cyclictest-node-context.yaml $volume
+cp -r $WORKSPACE/tests/pod.yaml $volume
+
+#Launching ubuntu docker container to run yardstick
+sudo docker run -i -v $volume:/opt --net=host --name kvmfornfv \
+kvmfornfv:latest /bin/bash -c "cd /opt/scripts && ls; ./cyclictest.sh"
+
+#Verifying the results of cyclictest
+result=`grep -o '"errors":[^,]*' $volume/yardstick.out | awk -F '"' '{print $4}'`
+
+if [ -z "$result" ]; then
+ echo "####################################################"
+ echo ""
+ echo `grep -o '"data":[^}]*' $volume/yardstick.out | awk -F '{' '{print $2}'`
+ echo ""
+ echo "####################################################"
+ env_clean
+ exit 0
+else
+ echo "Testcase failed"
+ echo `grep -o '"errors":[^,]*' ${volume}/yardstick.out | awk -F '"' '{print $4}'`
+ env_clean
+ exit 1
+fi