diff options
Diffstat (limited to 'ci')
-rwxr-xr-x | ci/envs/cyclictest.sh | 27 | ||||
-rwxr-xr-x | ci/envs/guest-setup0.sh | 19 | ||||
-rwxr-xr-x | ci/envs/host-run-qemu.sh | 22 | ||||
-rwxr-xr-x | ci/envs/host-setup0.sh | 2 | ||||
-rwxr-xr-x | ci/test_kvmfornfv.sh | 54 |
5 files changed, 105 insertions, 19 deletions
diff --git a/ci/envs/cyclictest.sh b/ci/envs/cyclictest.sh new file mode 100755 index 000000000..c261fe05d --- /dev/null +++ b/ci/envs/cyclictest.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +########################################################### +## Invoking this script from ubuntu docker container runs +## cyclictest through yardstick +########################################################### + +pod_config='/opt/pod.yaml' +cyclictest_context_file='/opt/cyclictest-node-context.yaml' + +if [ ! -f ${pod_config} ] ; then + echo "file ${pod_config} not found" + exit 1 +fi + +if [ ! -f ${cyclictest_context_file} ] ; then + echo "file ${cyclictest_context_file} not found" + 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 -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 new file mode 100755 index 000000000..45d1ea252 --- /dev/null +++ b/ci/test_kvmfornfv.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +############################################################# +## !!! The original test_kvmfornfv.sh is removed because it +## break the verification process!!! +############################################################# +## This script will launch ubuntu docker container +## runs cyclictest through yardstick +## and verifies the test results. +############################################################ + + +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 |