blob: df8dcb235d7d9f5265666fc556e16ca8e40bba34 [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}
Pau Espin Pedrolf6166142018-10-11 17:49:34 +020066if [ "x$PCU_SOCKET_PATH" != "x" ]; then
67 MOUNT_PCU_SOCKET_OPT="--mount type=bind,source=$(dirname "$PCU_SOCKET_PATH"),destination=/data/unix_pcu"
68else
69 MOUNT_PCU_SOCKET_OPT=""
70fi
Pau Espin Pedrolbc1ed882018-05-17 16:59:58 +020071docker run --rm \
72 --network $NET_NAME --ip 172.18.9.10 \
73 -e "TTCN3_PCAP_PATH=/data" \
74 --mount type=bind,source=$VOL_BASE_DIR/bts-tester,destination=/data \
75 --mount type=bind,source="$(dirname "$L2_SOCKET_PATH")",destination=/data/unix_l2 \
Pau Espin Pedrolf6166142018-10-11 17:49:34 +020076 $MOUNT_PCU_SOCKET_OPT \
Pau Espin Pedrolbc1ed882018-05-17 16:59:58 +020077 --name ${DOCKER_NAME} \
78 $REPO_USER/${SUITE_NAME} &
79child_ps=$!
80echo "$$: waiting for $child_ps"
81wait "$child_ps"
82child_exit_code="$?"
83echo "ttcn3 docker exited with code $child_exit_code"
84
85network_remove
86
87echo "Copying TTCN3 junit file to $JUNIT_TTCN3_DST_FILE"
88cp $VOL_BASE_DIR/bts-tester/junit-xml-*.log $JUNIT_TTCN3_DST_FILE
89sed -i "s#classname='BTS_Tests'#classname='$(basename $JUNIT_TTCN3_DST_FILE)'#g" $JUNIT_TTCN3_DST_FILE
90
91exit $child_exit_code