diff options
Diffstat (limited to 'ttcn3-gbproxy-test-fr/jenkins.sh')
-rwxr-xr-x | ttcn3-gbproxy-test-fr/jenkins.sh | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/ttcn3-gbproxy-test-fr/jenkins.sh b/ttcn3-gbproxy-test-fr/jenkins.sh new file mode 100755 index 0000000..dce891d --- /dev/null +++ b/ttcn3-gbproxy-test-fr/jenkins.sh @@ -0,0 +1,95 @@ +#!/bin/sh + +# WARNING: This cannot be executed on any random Linux machine or jenkins slave node! +# +# We require a kernel with HLDC net-devices, specifically eight pairs of devices named +# hdlc1 + hdlcnet1 ... hdlc8 + hdclnet8. +# +# Those pairs of netdevices can e.g. be implemented by actually physically looping back +# the related E1 interfaces, or e.g.by using DAHDI_NET + dahdi_dynamic_loc to create +# pairs of virtual E1 spans. +# +# In addition, we need to use 'sudo' permissions in order to move the hdlc +# net-devices into the docker containers. So in automatic test execution this means +# that the user will need sudo privileges without entering a password (NOPASS) + +. ../jenkins-common.sh +IMAGE_SUFFIX="${IMAGE_SUFFIX:-master}" +docker_images_require \ + "osmo-gbproxy-$IMAGE_SUFFIX" \ + "ttcn3-gbproxy-test" + +SUBNET=25 +network_create $SUBNET + +mkdir $VOL_BASE_DIR/gbproxy-tester +cp GBProxy_Tests.cfg $VOL_BASE_DIR/gbproxy-tester/ + +mkdir $VOL_BASE_DIR/gbproxy +cp osmo-gbproxy.cfg $VOL_BASE_DIR/gbproxy/ + +# Disable features not in latest yet +if [ "$IMAGE_SUFFIX" = "latest" ]; then + true; +fi + +mkdir $VOL_BASE_DIR/unix + +echo Starting container with gbproxy +docker run --rm \ + --cap-add=NET_RAW --cap-add=SYS_RAWIO \ + $(docker_network_params $SUBNET 10) \ + --ulimit core=-1 \ + -e "WAIT_FOR_NETDEV=hdlcnet8" \ + -v $VOL_BASE_DIR/gbproxy:/data \ + --name ${BUILD_TAG}-gbproxy -d \ + $DOCKER_ARGS \ + $REPO_USER/osmo-gbproxy-$IMAGE_SUFFIX + +# move all hdlcnetX net-devices into container +for i in `seq 1 8`; do + DEV="hdlcnet$i" + #sudo sethdlc ${DEV} fr lmi none + sudo ./netdev-to-docker.sh ${DEV} ${BUILD_TAG}-gbproxy +done + +echo Starting container with gbproxy testsuite +docker run --rm \ + --cap-add=NET_RAW --cap-add=SYS_RAWIO \ + $(docker_network_params $SUBNET 103) \ + --ulimit core=-1 \ + -e "TTCN3_PCAP_PATH=/data" \ + -e "WAIT_FOR_NETDEV=hdlc8" \ + -v $VOL_BASE_DIR/gbproxy-tester:/data \ + --name ${BUILD_TAG}-ttcn3-gbproxy-test -d \ + $DOCKER_ARGS \ + $REPO_USER/ttcn3-gbproxy-test $@ + +# move all hdlcnetX net-devices into container +for i in `seq 1 8`; do + DEV="hdlc$i" + #sudo sethdlc ${DEV} fr lmi none + sudo ./netdev-to-docker.sh ${DEV} ${BUILD_TAG}-ttcn3-gbproxy-test +done + +# emulate runnign container in foreground, which is no longer possible as we +# must shift the net-devices into the container _after_ it is started +docker logs -f ${BUILD_TAG}-ttcn3-gbproxy-test + + +echo Starting container to merge logs +docker run --rm \ + $(docker_network_params $SUBNET 103) \ + --ulimit core=-1 \ + -e "TTCN3_PCAP_PATH=/data" \ + -v $VOL_BASE_DIR/gbproxy-tester:/data \ + --name ${BUILD_TAG}-ttcn3-gbproxy-test-logmerge \ + --entrypoint /osmo-ttcn3-hacks/log_merge.sh GBProxy_Tests --rm \ + $DOCKER_ARGS \ + $REPO_USER/ttcn3-gbproxy-test + +echo Stopping containers +docker container kill ${BUILD_TAG}-gbproxy + +network_remove +collect_logs |