MT#6259 add docker support for unit testing

Change-Id: Icbee48fadaaa50a90fa6b3e6b8e6e5f254c15b2d
changes/37/3637/2
Victor Seva 10 years ago committed by Víctor Seva
parent b8832fd77a
commit 76d9ed5357

@ -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<<EOF|lua5.1 - > reports/${1}.${EXT}
cat<<EOF|lua5.1 - > ${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

@ -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
#
################################################################################

@ -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
Loading…
Cancel
Save