From: Gunnar Beutner Date: Thu, 14 Nov 2013 12:20:15 +0000 (+0100) Subject: Add test script for Jenkins. X-Git-Tag: v0.0.5~23^2~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=378b0bca03431a3736b4324b133136aebf3053a0;p=icinga2 Add test script for Jenkins. Refs #4635 --- diff --git a/test/jenkins/README b/test/jenkins/README new file mode 100644 index 000000000..23495e8f2 --- /dev/null +++ b/test/jenkins/README @@ -0,0 +1 @@ +These scripts are used by build.icinga.org to set up a test VM. diff --git a/test/jenkins/bootstrap-vm.sh b/test/jenkins/bootstrap-vm.sh new file mode 100755 index 000000000..30d8f5d31 --- /dev/null +++ b/test/jenkins/bootstrap-vm.sh @@ -0,0 +1,14 @@ +#!/bin/sh +if [ "$1" != "run-by-jenkins" ]; then + echo "This script should not be run manually." + exit 1 +fi + +echo "10.10.27.1 packages.icinga.org" >> /etc/hosts + +groupadd vagrant + +rmdir /vagrant && ln -s /root/icinga2 /vagrant +puppet apply --modulepath=/vagrant/.vagrant-puppet/modules /vagrant/.vagrant-puppet/manifests/default.pp + +exit 0 diff --git a/test/jenkins/run-tests.py b/test/jenkins/run-tests.py new file mode 100755 index 000000000..e96395553 --- /dev/null +++ b/test/jenkins/run-tests.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python +import sys +from xml.dom.minidom import getDOMImplementation +from subprocess import Popen, PIPE + +impl = getDOMImplementation() +result = impl.createDocument(None, "testsuite", None) +testsuite = result.documentElement + +for fn in sys.argv[1:]: + process = Popen(["./" + fn], stdout=PIPE, stderr=PIPE) + (stdoutdata, stderrdata) = process.communicate() + + testcase = result.createElement("testcase") + testcase.setAttribute("classname", "vm") + testcase.setAttribute("name", fn) + + systemout = result.createElement("system-out") + systemout.appendChild(result.createTextNode(stdoutdata)) + testcase.appendChild(systemout) + + systemerr = result.createElement("system-err") + systemerr.appendChild(result.createTextNode(stderrdata)) + testcase.appendChild(systemerr) + + if process.returncode != 0: + failure = result.createElement("failure") + failure.setAttribute("type", "returncode") + failure.appendChild(result.createTextNode("code: " + str(process.returncode))) + testcase.appendChild(failure) + + testsuite.appendChild(testcase) + +print result.toxml() diff --git a/test/jenkins/v1.test b/test/jenkins/v1.test new file mode 100755 index 000000000..f0c0fcd40 --- /dev/null +++ b/test/jenkins/v1.test @@ -0,0 +1,3 @@ +#!/bin/sh +echo "Hello World!" +exit 1