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