blob: 64987b35c44e5297b48c3a63e168d37bc840e31d [file] [log] [blame]
Pau Espin Pedrolbc1ed882018-05-17 16:59:58 +02001#!/bin/sh
2set -x
3
4RUNDIR="$1"
5JUNIT_TTCN3_DST_FILE="$2"
6L2_SOCKET_PATH="$3"
7PCU_SOCKET_PATH="$4"
8
9# Absolute path to this script
10SCRIPT=$(readlink -f "$0")
11# Absolute path this script is in
12SCRIPTPATH=$(dirname "$SCRIPT")
13
14VOL_BASE_DIR="$RUNDIR/logs"
15rm -rf "$VOL_BASE_DIR"
16mkdir -p "$VOL_BASE_DIR"
17
18if [ "x$BUILD_TAG" = "x" ]; then
19 BUILD_TAG=nonjenkins
20fi
21
22REPO_USER="registry.sysmocom.de"
23SUITE_NAME="ttcn3-bts-test"
24NET_NAME=$SUITE_NAME
25DOCKER_NAME="$BUILD_TAG-$SUITE_NAME"
26
27network_create() {
28 NET=$1
29 echo Creating network $NET_NAME
30 docker network create --internal --subnet $NET $NET_NAME
31}
32
33network_remove() {
34 echo Removing network $NET_NAME
35 docker network remove $NET_NAME
36}
37
38child_ps=0
39forward_kill() {
40 sig="$1"
41 echo "Caught signal SIG$sig!"
42 if [ "$child_ps" != "0" ]; then
43 echo "Killing $child_ps with SIG$sig!"
44 docker kill ${DOCKER_NAME}
45 fi
46 exit 130
47}
48forward_kill_int() {
49 forward_kill "INT"
50}
51forward_kill_term() {
52 forward_kill "TERM"
53}
54# Don't use 'set -e', otherwise traps are not triggered!
55trap forward_kill_int INT
56trap forward_kill_term TERM
57
58network_create 172.18.9.0/24
59
60mkdir $VOL_BASE_DIR/bts-tester
61echo "SCRIPTPATH=$SCRIPTPATH PWD=$PWD"
62cp $RUNDIR/BTS_Tests.cfg $VOL_BASE_DIR/bts-tester/
63
64echo Starting container with BTS testsuite
65docker kill ${DOCKER_NAME}
66docker run --rm \
67 --network $NET_NAME --ip 172.18.9.10 \
68 -e "TTCN3_PCAP_PATH=/data" \
69 --mount type=bind,source=$VOL_BASE_DIR/bts-tester,destination=/data \
70 --mount type=bind,source="$(dirname "$L2_SOCKET_PATH")",destination=/data/unix_l2 \
71 --mount type=bind,source="$(dirname "$PCU_SOCKET_PATH")",destination=/data/unix_pcu \
72 --name ${DOCKER_NAME} \
73 $REPO_USER/${SUITE_NAME} &
74child_ps=$!
75echo "$$: waiting for $child_ps"
76wait "$child_ps"
77child_exit_code="$?"
78echo "ttcn3 docker exited with code $child_exit_code"
79
80network_remove
81
82echo "Copying TTCN3 junit file to $JUNIT_TTCN3_DST_FILE"
83cp $VOL_BASE_DIR/bts-tester/junit-xml-*.log $JUNIT_TTCN3_DST_FILE
84sed -i "s#classname='BTS_Tests'#classname='$(basename $JUNIT_TTCN3_DST_FILE)'#g" $JUNIT_TTCN3_DST_FILE
85
86exit $child_exit_code