diff --git a/run_tests.sh b/run_tests.sh index 5fed393..2efcd5f 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -1,5 +1,7 @@ #!/bin/bash +RESULTS=${RESULTS:-.} + if [ -z "${FORMAT}" ] ; then FORMAT=TAP fi @@ -11,13 +13,13 @@ case ${FORMAT} in *) echo "ERROR: Unknown format ${FORMAT}"; exit 1 ;; esac -mkdir -p reports -rm -rf reports/* +mkdir -p "${RESULTS}"/reports +rm -rf "${RESULTS}"/reports/* function do_test() { - echo "testing $1 -> reports/${1}.${EXT}" + echo "testing $1 -> ${RESULTS}/reports/${1}.${EXT}" if ${OUT_FORCE} ; then - cat< reports/${1}.${EXT} + cat< ${RESULTS}/reports/${1}.${EXT} EXPORT_ASSERT_TO_GLOBALS = true require "tests/${1}" ---- Control test output: @@ -33,7 +35,7 @@ require "tests/${1}" ---- Control test output: local lu = LuaUnit lu:setOutputType('${FORMAT}') -lu:setFname('reports/${1}.${EXT}') +lu:setFname('${RESULTS}/reports/${1}.${EXT}') lu:setVerbosity(1) lu:run() EOF diff --git a/t/Dockerfile b/t/Dockerfile new file mode 100644 index 0000000..788c3bd --- /dev/null +++ b/t/Dockerfile @@ -0,0 +1,42 @@ +# TODO - switch to sipwise internal one +FROM debian:jessie + +# Important! Update this no-op ENV variable when this Dockerfile +# is updated with the current date. It will force refresh of all +# of the base images and things like `apt-get update` won't be using +# old cached versions when the Dockerfile is built. +ENV REFRESHED_AT 2015-12-02 + +# mirrors behind httpredir randomly throw `Error reading from server. Remote end closed connection` +# and we want to be independent from any external services anyway +# TODO - the release-trunk-jessie is too dynamic yet, though required for some build/test dependencies +RUN apt-get update && apt-get -y install apt-transport-https wget +RUN echo "# generated by Dockerfile from lua-ngcp-kamailio-jessie at $(date)\n\ +deb https://debian.sipwise.com/debian jessie main non-free\n\ +deb https://debian.sipwise.com/debian jessie-updates main non-free\n\ +deb https://debian-security.sipwise.com/debian-security jessie-security main contrib non-free\n\ +deb https://deb.sipwise.com/autobuild/ release-trunk-jessie main\n" > /etc/apt/sources.list +RUN wget -O /etc/apt/trusted.gpg.d/sipwise.gpg https://deb.sipwise.com/spce/sipwise.gpg + +RUN apt-get update +RUN apt-get install --assume-yes lua5.1 lua-unit lua-lemock lua-logging + +RUN echo './t/testrunner' >>/root/.bash_history + +WORKDIR /code/ + +################################################################################ +# Instructions for usage +# ---------------------- +# When you want to build the base image from scratch (jump to the next section if you don't want to build yourself!): +# % docker build --tag="lua-ngcp-kamailio-jessie" . +# % docker run --rm -i -t -v $(pwd)/..:/code:rw lua-ngcp-kamailio-jessie:latest bash +# +# Use the existing docker image: +# % docker pull docker1.mgm.sipwise.com/lua-ngcp-kamailio-jessie +# % docker run --rm -i -t -v $(pwd)/..:/code:rw docker1.mgm.sipwise.com/lua-ngcp-kamailio-jessie:latest bash +# +# Inside docker (the command is in history, just press UP button): +# ./t/testrunner +# +################################################################################ diff --git a/t/testrunner b/t/testrunner new file mode 100755 index 0000000..afa9c1f --- /dev/null +++ b/t/testrunner @@ -0,0 +1,22 @@ +#!/bin/bash +# This script is used for running the tests with proper arguments +# from within Jenkins + +set -e +set -u +set -x + +if [ -d /results ] ; then + # Running from Jenkins (RW) + RESULTS="/results" + + cd "/code" +else + # Running locally in Docker + RESULTS="./results" + mkdir -p "${RESULTS}" +fi + +source_path="$(pwd)" + +RESULTS=${RESULTS} FORMAT=JUNIT ./run_tests.sh