diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2018-03-01 16:05:14 +0100 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2022-07-19 11:41:41 +0200 |
commit | df2086a1a34849c09f77424a849e92c0b7c3cae6 (patch) | |
tree | f02e0c48cf5d6574cb488c4f10b3027c2f9ea339 | |
parent | ea4610ab23ef581f97280f6e581e9a1c98bb0370 (diff) |
ttcn3 tests: make it convenient to invoke custom tests manually
In various ttcn3-*-test jenkins.sh / Dockerfile:
- add -h (hack) option to jenkins.sh
If calling jenkins.sh with the -h option, bind external osmo-ttcn3-hacks
sources into the docker containers and start a shell instead of the tests:
jenkins.sh -h ~/src/osmo-ttcn3-hacks [bind/this/path/to/src]
An optional second argument is a path bound to /src in the docker image.
- move Dockerfile RUN commands to Makefile within docker img
Add a Makefile to the image's root, move the RUN command there and call that
'make' from the Dockerfile RUN command; allows easy manual invocation.
Change-Id: Id7d47f665828557838f541b4467b713a8605389b
32 files changed, 413 insertions, 35 deletions
diff --git a/common/respawn.sh b/common/respawn.sh index 31a8c06..fcaaaaf 100755 --- a/common/respawn.sh +++ b/common/respawn.sh @@ -6,7 +6,7 @@ SLEEP_BEFORE_RESPAWN=${SLEEP_BEFORE_RESPAWN:-0} i=0 max_i=500 -while [ $i -lt $max_i ]; do +while [ -e /etc/passwd ]; do echo "$i: starting: $*" $* & LAST_PID=$! diff --git a/jenkins-common.sh b/jenkins-common.sh index ba15551..a9fe8fa 100644 --- a/jenkins-common.sh +++ b/jenkins-common.sh @@ -457,3 +457,5 @@ fi SUITE_NAME=`basename $PWD` NET_NAME=$SUITE_NAME + +export OSMO_TTCN3_COMPARE_ARGS="--allow-xpass" diff --git a/osmo-bsc-master/Dockerfile b/osmo-bsc-master/Dockerfile index 32ded30..354d698 100644 --- a/osmo-bsc-master/Dockerfile +++ b/osmo-bsc-master/Dockerfile @@ -50,8 +50,9 @@ RUN cd osmo-bsc && \ VOLUME /data COPY osmo-bsc.cfg /data/osmo-bsc.cfg +COPY Makefile.within-docker-img /Makefile -WORKDIR /data -CMD ["/bin/sh", "-c", "/usr/local/bin/osmo-bsc -c /data/osmo-bsc.cfg >/data/osmo-bsc.log 2>&1"] +WORKDIR / +CMD ["make", "run"] #EXPOSE diff --git a/osmo-bsc-master/Makefile.within-docker-img b/osmo-bsc-master/Makefile.within-docker-img new file mode 100644 index 0000000..4f42dd6 --- /dev/null +++ b/osmo-bsc-master/Makefile.within-docker-img @@ -0,0 +1,7 @@ +.PHONY: run dbg + +run: + cd /data && LD_LIBRARY_PATH=/usr/local/lib /bin/sh -c /usr/local/bin/osmo-bsc -c /data/osmo-bsc.cfg >/data/osmo-bsc.log 2>&1 + +dbg: + cd /data && LD_LIBRARY_PATH=/usr/local/lib gdb --args /usr/local/bin/osmo-bsc -c osmo-bsc.cfg diff --git a/osmo-bts-master/Dockerfile b/osmo-bts-master/Dockerfile index 77c1e51..f98c6d7 100644 --- a/osmo-bts-master/Dockerfile +++ b/osmo-bts-master/Dockerfile @@ -48,9 +48,9 @@ RUN cd osmo-bts && \ VOLUME /data COPY osmo-bts.cfg /data/osmo-bts.cfg +COPY Makefile.within-docker-img /Makefile -WORKDIR /data - # send GSMTAP data to .230 which is the ttcn3-sysinfo test -CMD ["/bin/sh", "-c", "/usr/local/bin/osmo-bts-virtual -c /data/osmo-bts.cfg -i 172.18.0.230 >>/data/osmo-bts-virtual.log 2>&1"] +WORKDIR / +CMD make run #EXPOSE diff --git a/osmo-bts-master/Makefile.within-docker-img b/osmo-bts-master/Makefile.within-docker-img new file mode 100644 index 0000000..8357c03 --- /dev/null +++ b/osmo-bts-master/Makefile.within-docker-img @@ -0,0 +1,10 @@ +.PHONY: run run_ttcn3_bts_test + +# the Dockerfile invokes 'run' directly, the manual invocation is usually from the ttcn3-bts-test +default: run_ttcn3_bts_test + +run: + cd /data && LD_LIBRARY_PATH=/usr/local/lib /bin/sh -c /usr/local/bin/osmo-bts-virtual -c /data/osmo-bts.cfg -i 172.18.0.230 >>/data/osmo-bts-virtual.log 2>&1 + +run_ttcn3_bts_test: + cd /data && LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/respawn.sh /usr/local/bin/osmo-bts-trx -c /data/osmo-bts.cfg -i 172.18.9.10 diff --git a/osmo-msc-master/Dockerfile b/osmo-msc-master/Dockerfile index 7687bd3..1f6c194 100644 --- a/osmo-msc-master/Dockerfile +++ b/osmo-msc-master/Dockerfile @@ -61,8 +61,9 @@ RUN apt-get install -y --no-install-recommends \ VOLUME /data COPY osmo-msc.cfg /data/osmo-msc.cfg +COPY Makefile.within-docker-img /Makefile -WORKDIR /data -CMD ["/bin/sh", "-c", "/usr/local/bin/osmo-msc -c /data/osmo-msc.cfg >/data/osmo-msc.log 2>&1"] +WORKDIR / +CMD ["make", "run"] #EXPOSE diff --git a/osmo-msc-master/Makefile.within-docker-img b/osmo-msc-master/Makefile.within-docker-img new file mode 100644 index 0000000..0f9986f --- /dev/null +++ b/osmo-msc-master/Makefile.within-docker-img @@ -0,0 +1,10 @@ +.PHONY: run dbg + +run: + cd /data && LD_LIBRARY_PATH=/usr/local/lib /bin/sh -c /usr/local/bin/osmo-msc -c /data/osmo-msc.cfg >/data/osmo-msc.log 2>&1 + +manual: + cd /data && LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/osmo-msc + +dbg: + cd /data && LD_LIBRARY_PATH=/usr/local/lib gdb --args /usr/local/bin/osmo-msc diff --git a/osmo-sgsn-master/Dockerfile b/osmo-sgsn-master/Dockerfile index 55d9695..44264d6 100644 --- a/osmo-sgsn-master/Dockerfile +++ b/osmo-sgsn-master/Dockerfile @@ -57,8 +57,9 @@ RUN cd osmo-sgsn && \ VOLUME /data COPY osmo-sgsn.cfg /data/osmo-sgsn.cfg +COPY Makefile.within-docker-img /Makefile -WORKDIR /data -CMD ["/bin/sh", "-c", "/usr/local/bin/osmo-sgsn -c /data/osmo-sgsn.cfg >/data/osmo-sgsn.log 2>&1"] +WORKDIR / +CMD ["make", "run"] EXPOSE 23000/udp 4245/tcp 4249/tcp 4246/tcp 4263/tcp diff --git a/osmo-sgsn-master/Makefile.within-docker-img b/osmo-sgsn-master/Makefile.within-docker-img new file mode 100644 index 0000000..2bcf46b --- /dev/null +++ b/osmo-sgsn-master/Makefile.within-docker-img @@ -0,0 +1,20 @@ +.PHONY: compile run log + +all: compile run + +# construct the /build dir to build outside the mounted-in osmo-bsc source tree +build: + cd /osmo-sgsn && ( test -f configure || autoreconf -fi ) + mkdir -p /build + cd /build && /osmo-sgsn/configure + +# The compile target assumes an osmo-sgsn src tree mounted into /osmo-sgsn +# using something like docker -v ~/src/osmo-sgsn:/osmo-sgsn +compile: build + $(MAKE) -C /build -j install + +run: + cd /data && /bin/sh -c /usr/local/bin/osmo-sgsn -c /data/osmo-sgsn.cfg >/data/osmo-sgsn.log 2>&1 + +log: + diff --git a/ttcn3-bsc-test/Dockerfile b/ttcn3-bsc-test/Dockerfile index a29e000..4becb05 100644 --- a/ttcn3-bsc-test/Dockerfile +++ b/ttcn3-bsc-test/Dockerfile @@ -9,5 +9,6 @@ RUN ttcn3-docker-prepare "$OSMO_TTCN3_BRANCH" bsc VOLUME /data COPY BSC_Tests.cfg /data/BSC_Tests.cfg +COPY Makefile.within-docker-img /Makefile -CMD ttcn3-docker-run bsc BSC_Tests +CMD cd / && make test diff --git a/ttcn3-bsc-test/Makefile.within-docker-img b/ttcn3-bsc-test/Makefile.within-docker-img new file mode 100644 index 0000000..2f19866 --- /dev/null +++ b/ttcn3-bsc-test/Makefile.within-docker-img @@ -0,0 +1,14 @@ +.PHONY: compile test log + +default: compile test + +compile: + $(MAKE) -C /osmo-ttcn3-hacks bsc/compile + $(MAKE) -C /osmo-ttcn3-hacks bsc -j + +test: + cd /data && \ + /osmo-ttcn3-hacks/start-testsuite.sh /osmo-ttcn3-hacks/bsc/BSC_Tests; \ + exit_code=$$?; \ + /osmo-ttcn3-hacks/log_merge.sh BSC_Tests --rm; \ + exit $$exit_code diff --git a/ttcn3-bsc-test/jenkins-sccplite.sh b/ttcn3-bsc-test/jenkins-sccplite.sh index 3d2b70d..9b6967b 100755 --- a/ttcn3-bsc-test/jenkins-sccplite.sh +++ b/ttcn3-bsc-test/jenkins-sccplite.sh @@ -13,6 +13,25 @@ set -e #Make sure NET_NAME doesn't clash with the AoIP BSC test NET_NAME=ttcn3-bsc_sccplite-test +ADD_TTCN_RUN_OPTS="" +ADD_TTCN_RUN_CMD="" +ADD_TTCN_VOLUMES="" +ADD_BSC_VOLUMES="" +ADD_BSC_ARGS="" + +if [ "x$1" = "x-h" ]; then + ADD_TTCN_RUN_OPTS="-ti" + ADD_TTCN_RUN_CMD="bash" + if [ -d "$2" ]; then + ADD_TTCN_VOLUMES="$ADD_TTCN_VOLUMES -v $2:/osmo-ttcn3-hacks" + fi + if [ -d "$3" ]; then + ADD_BSC_RUN_CMD="sleep 100000" + ADD_BSC_VOLUMES="$ADD_BSC_VOLUMES -v $3:/src" + ADD_BSC_RUN_OPTS="--privileged" + fi +fi + mkdir $VOL_BASE_DIR/bsc-tester cp sccplite/BSC_Tests.cfg $VOL_BASE_DIR/bsc-tester/ write_mp_osmo_repo "$VOL_BASE_DIR/bsc-tester/BSC_Tests.cfg" @@ -30,9 +49,12 @@ docker run --rm \ $(docker_network_params $SUBNET 20) \ --ulimit core=-1 \ -v $VOL_BASE_DIR/bsc:/data \ + $ADD_BSC_VOLUMES \ --name ${BUILD_TAG}-bsc -d \ $DOCKER_ARGS \ - $REPO_USER/osmo-bsc-$IMAGE_SUFFIX + $ADD_BSC_RUN_OPTS \ + $REPO_USER/osmo-bsc-$IMAGE_SUFFIX \ + $ADD_BSC_RUN_CMD BTS_FEATURES="-fCCN,EGPRS,GPRS,IPv6_NSVC,PAGING_COORDINATION" @@ -57,6 +79,9 @@ docker run --rm \ -e "OSMO_SUT_HOST=172.18.$SUBNET.20" \ -e "OSMO_SUT_PORT=4242" \ -v $VOL_BASE_DIR/bsc-tester:/data \ + $ADD_TTCN_VOLUMES \ --name ${BUILD_TAG}-ttcn3-bsc-test \ $DOCKER_ARGS \ - $REPO_USER/ttcn3-bsc-test + $ADD_TTCN_RUN_OPTS \ + $REPO_USER/ttcn3-bsc-test \ + $ADD_TTCN_RUN_CMD diff --git a/ttcn3-bsc-test/jenkins.sh b/ttcn3-bsc-test/jenkins.sh index 40b3f62..2d9bec2 100755 --- a/ttcn3-bsc-test/jenkins.sh +++ b/ttcn3-bsc-test/jenkins.sh @@ -11,6 +11,25 @@ docker_images_require \ set_clean_up_trap set -e +ADD_TTCN_RUN_OPTS="" +ADD_TTCN_RUN_CMD="" +ADD_TTCN_VOLUMES="" +ADD_BSC_VOLUMES="" +ADD_BSC_ARGS="" + +if [ "x$1" = "x-h" ]; then + ADD_TTCN_RUN_OPTS="-ti" + ADD_TTCN_RUN_CMD="bash" + if [ -d "$2" ]; then + ADD_TTCN_VOLUMES="$ADD_TTCN_VOLUMES -v $2:/osmo-ttcn3-hacks" + fi + if [ -d "$3" ]; then + ADD_BSC_RUN_CMD="sleep 9999999" + ADD_BSC_VOLUMES="$ADD_BSC_VOLUMES -v $3:/src" + ADD_BSC_RUN_OPTS="--privileged" + fi +fi + mkdir $VOL_BASE_DIR/bsc-tester cp BSC_Tests.cfg $VOL_BASE_DIR/bsc-tester/ write_mp_osmo_repo "$VOL_BASE_DIR/bsc-tester/BSC_Tests.cfg" @@ -40,9 +59,12 @@ docker run --rm \ $(docker_network_params $SUBNET 20) \ --ulimit core=-1 \ -v $VOL_BASE_DIR/bsc:/data \ + $ADD_BSC_VOLUMES \ --name ${BUILD_TAG}-bsc -d \ $DOCKER_ARGS \ - $REPO_USER/osmo-bsc-$IMAGE_SUFFIX + $ADD_BSC_RUN_OPTS \ + $REPO_USER/osmo-bsc-$IMAGE_SUFFIX \ + $ADD_BSC_RUN_CMD BTS_FEATURES="-fCCN,EGPRS,GPRS,IPv6_NSVC,PAGING_COORDINATION" @@ -67,6 +89,9 @@ docker run --rm \ -e "OSMO_SUT_HOST=172.18.$SUBNET.20" \ -e "OSMO_SUT_PORT=4242" \ -v $VOL_BASE_DIR/bsc-tester:/data \ + $ADD_TTCN_VOLUMES \ --name ${BUILD_TAG}-ttcn3-bsc-test \ $DOCKER_ARGS \ - $REPO_USER/ttcn3-bsc-test + $ADD_TTCN_RUN_OPTS \ + $REPO_USER/ttcn3-bsc-test \ + $ADD_TTCN_RUN_CMD diff --git a/ttcn3-bts-test/Dockerfile b/ttcn3-bts-test/Dockerfile index b115000..7e378c5 100644 --- a/ttcn3-bts-test/Dockerfile +++ b/ttcn3-bts-test/Dockerfile @@ -9,5 +9,7 @@ RUN ttcn3-docker-prepare "$OSMO_TTCN3_BRANCH" bts VOLUME /data COPY generic/BTS_Tests.cfg /data/BTS_Tests.cfg +COPY Makefile.within-docker-img /Makefile -CMD ttcn3-docker-run bts BTS_Tests +WORKDIR / +CMD make test diff --git a/ttcn3-bts-test/Makefile.within-docker-img b/ttcn3-bts-test/Makefile.within-docker-img new file mode 100644 index 0000000..d3e43b7 --- /dev/null +++ b/ttcn3-bts-test/Makefile.within-docker-img @@ -0,0 +1,18 @@ +.PHONY: compile test log + +default: compile + $(MAKE) test; $(MAKE) log + +compile: + $(MAKE) -C /osmo-ttcn3-hacks bts/compile + $(MAKE) -C /osmo-ttcn3-hacks bts -j + +test: + cd /data && \ + /osmo-ttcn3-hacks/start-testsuite.sh /osmo-ttcn3-hacks/bts/BTS_Tests; \ + exit_code=$$?; \ + /osmo-ttcn3-hacks/log_merge.sh BTS_Tests --rm; \ + exit $$exit_code + +log: + cd /data; /osmo-ttcn3-hacks/log_merge.sh BTS_Tests --rm diff --git a/ttcn3-bts-test/jenkins.sh b/ttcn3-bts-test/jenkins.sh index c16be80..a3ecb21 100755 --- a/ttcn3-bts-test/jenkins.sh +++ b/ttcn3-bts-test/jenkins.sh @@ -21,6 +21,26 @@ clean_up() { $VOL_BASE_DIR/bts-tester-hopping/junit-xml-hopping-*.log } +ADD_TTCN_RUN_OPTS="" +ADD_TTCN_RUN_CMD="" +ADD_TTCN_VOLUMES="" +BTS_JUST_IDLE="" +ADD_BTS_VOLUMES="" +ADD_BTS_RUN_OPTS="" + +if [ "x$1" = "x-h" ]; then + ADD_TTCN_RUN_OPTS="-ti" + ADD_TTCN_RUN_CMD="bash" + if [ -d "$2" ]; then + ADD_TTCN_VOLUMES="$ADD_TTCN_VOLUMES -v $2:/osmo-ttcn3-hacks" + fi + if [ -d "$3" ]; then + BTS_JUST_IDLE="1" + ADD_BTS_VOLUMES="$ADD_BTS_VOLUMES -v $3:/src" + ADD_BTS_RUN_OPTS="--privileged" + fi +fi + start_bsc() { echo Starting container with BSC docker run --rm \ @@ -42,16 +62,26 @@ start_bts() { echo ERROR: You have to specify a BTS variant exit 23 fi + if [ "$BTS_JUST_IDLE" = 1 ]; then + # for running tests manually: + # practically idle forever, but for sanity not really forever + BTS_RUN_CMD="sleep 9999999" + else + # normal command to run unattended tests + BTS_RUN_CMD="/bin/sh -c \"/usr/local/bin/respawn.sh osmo-bts-$variant -c /data/osmo-bts.gen.cfg >>/data/osmo-bts.log 2>&1\"" + fi docker run --rm \ $(docker_network_params $SUBNET 20) \ --ulimit core=-1 \ -v $VOL_BASE_DIR/bts:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ + $ADD_BTS_VOLUMES \ -e "SLEEP_BEFORE_RESPAWN=$sleep_time_respawn" \ --name ${BUILD_TAG}-bts -d \ $DOCKER_ARGS \ + $ADD_BTS_RUN_OPTS \ $REPO_USER/osmo-bts-$IMAGE_SUFFIX \ - /bin/sh -c "/usr/local/bin/respawn.sh osmo-bts-$variant -c /data/osmo-bts.gen.cfg >>/data/osmo-bts.log 2>&1" + $BTS_RUN_CMD } start_fake_trx() { @@ -97,6 +127,7 @@ start_virtphy() { --name ${BUILD_TAG}-virtphy -d \ $DOCKER_ARGS \ $REPO_USER/osmocom-bb-host-master \ + virtphy -s /data/unix/osmocom_l2 /bin/sh -c "virtphy -s /data/unix/osmocom_l2 >>/data/virtphy.log 2>&1" } @@ -111,9 +142,12 @@ start_testsuite() { -e "OSMO_SUT_PORT=4241" \ -v $VOL_BASE_DIR/bts-tester-${variant}:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ + $ADD_TTCN_VOLUMES \ --name ${BUILD_TAG}-ttcn3-bts-test \ $DOCKER_ARGS \ - $REPO_USER/ttcn3-bts-test + $ADD_TTCN_RUN_OPTS \ + $REPO_USER/ttcn3-bts-test \ + $ADD_TTCN_RUN_CMD } SUBNET=9 diff --git a/ttcn3-hlr-test/Dockerfile b/ttcn3-hlr-test/Dockerfile index ac5ca4f..4b39a48 100644 --- a/ttcn3-hlr-test/Dockerfile +++ b/ttcn3-hlr-test/Dockerfile @@ -9,5 +9,7 @@ RUN ttcn3-docker-prepare "$OSMO_TTCN3_BRANCH" hlr VOLUME /data COPY HLR_Tests.cfg /data/HLR_Tests.cfg +COPY Makefile.within-docker-img /Makefile -CMD ttcn3-docker-run hlr HLR_Tests +WORKDIR / +CMD make test diff --git a/ttcn3-hlr-test/Makefile.within-docker-img b/ttcn3-hlr-test/Makefile.within-docker-img new file mode 100644 index 0000000..20401cd --- /dev/null +++ b/ttcn3-hlr-test/Makefile.within-docker-img @@ -0,0 +1,13 @@ +.PHONY: compile test log + +all: compile test + +compile: + $(MAKE) -C /osmo-ttcn3-hacks hlr/all + +test: + cd /data && \ + /osmo-ttcn3-hacks/start-testsuite.sh /osmo-ttcn3-hacks/hlr/HLR_Tests HLR_Tests.cfg $(TEST); \ + exit_code=$$?; \ + /osmo-ttcn3-hacks/log_merge.sh HLR_Tests --rm; \ + exit $$exit_code diff --git a/ttcn3-hlr-test/jenkins.sh b/ttcn3-hlr-test/jenkins.sh index 317f141..4acba7f 100755 --- a/ttcn3-hlr-test/jenkins.sh +++ b/ttcn3-hlr-test/jenkins.sh @@ -9,6 +9,26 @@ docker_images_require \ set_clean_up_trap set -e +ADD_TTCN_RUN_OPTS="" +ADD_TTCN_RUN_CMD="" +ADD_TTCN_VOLUMES="" +ADD_HLR_VOLUMES="" +ADD_HLR_RUN_OPTS="" +HLR_RUN_CMD="osmo-hlr -c /data/osmo-hlr.cfg" + +if [ "x$1" = "x-h" ]; then + ADD_TTCN_RUN_OPTS="-ti" + ADD_TTCN_RUN_CMD="bash" + if [ -d "$2" ]; then + ADD_TTCN_VOLUMES="$ADD_TTCN_VOLUMES -v $2:/osmo-ttcn3-hacks" + fi + if [ -d "$3" ]; then + ADD_HLR_VOLUMES="$ADD_HLR_VOLUMES -v $3:/src" + HLR_RUN_CMD="sleep 9999999" + ADD_HLR_RUN_OPTS="--privileged" + fi +fi + SUBNET=10 network_create $SUBNET @@ -24,10 +44,12 @@ docker run --rm \ $(docker_network_params $SUBNET 20) \ --ulimit core=-1 \ -v $VOL_BASE_DIR/hlr:/data \ + $ADD_HLR_VOLUMES \ --name ${BUILD_TAG}-hlr -d \ $DOCKER_ARGS \ + $ADD_HLR_RUN_OPTS \ $REPO_USER/osmo-hlr-$IMAGE_SUFFIX \ - /bin/sh -c "osmo-hlr -c /data/osmo-hlr.cfg >/data/osmo-hlr.log 2>&1" + $HLR_RUN_CMD echo Starting container with HLR testsuite docker run --rm \ @@ -37,6 +59,9 @@ docker run --rm \ -e "OSMO_SUT_HOST=172.18.$SUBNET.20" \ -e "OSMO_SUT_PORT=4258" \ -v $VOL_BASE_DIR/hlr-tester:/data \ + $ADD_TTCN_VOLUMES \ --name ${BUILD_TAG}-ttcn3-hlr-test \ $DOCKER_ARGS \ - $REPO_USER/ttcn3-hlr-test + $ADD_TTCN_RUN_OPTS \ + $REPO_USER/ttcn3-hlr-test \ + $ADD_TTCN_RUN_CMD diff --git a/ttcn3-hlr-test/osmo-hlr.cfg b/ttcn3-hlr-test/osmo-hlr.cfg index 5cda49e..8ead803 100644 --- a/ttcn3-hlr-test/osmo-hlr.cfg +++ b/ttcn3-hlr-test/osmo-hlr.cfg @@ -2,8 +2,9 @@ ! OsmoHLR example configuration ! log gsmtap 172.18.10.103 - logging level set-all debug logging filter all 1 + logging level set-all debug + logging level linp error ! log stderr logging filter all 1 @@ -14,6 +15,7 @@ log stderr logging print file basename last logging print extended-timestamp 1 logging level set-all debug + logging level linp error ! line vty bind 0.0.0.0 diff --git a/ttcn3-mgw-test/Dockerfile b/ttcn3-mgw-test/Dockerfile index c8eeb2b..ae3689f 100644 --- a/ttcn3-mgw-test/Dockerfile +++ b/ttcn3-mgw-test/Dockerfile @@ -9,5 +9,6 @@ RUN ttcn3-docker-prepare "$OSMO_TTCN3_BRANCH" mgw VOLUME /data COPY MGCP_Test.cfg /data/MGCP_Test.cfg +COPY Makefile.within-docker-img /Makefile -CMD ttcn3-docker-run mgw MGCP_Test +CMD cd / && make test diff --git a/ttcn3-mgw-test/Makefile.within-docker-img b/ttcn3-mgw-test/Makefile.within-docker-img new file mode 100644 index 0000000..afaae6a --- /dev/null +++ b/ttcn3-mgw-test/Makefile.within-docker-img @@ -0,0 +1,14 @@ +.PHONY: compile test log + +default: compile test + +compile: + $(MAKE) -C /osmo-ttcn3-hacks mgw/compile + $(MAKE) -C /osmo-ttcn3-hacks mgw -j + +test: + cd /data && \ + /osmo-ttcn3-hacks/start-testsuite.sh /osmo-ttcn3-hacks/mgw/MGCP_Test; \ + exit_code=$$?; \ + /osmo-ttcn3-hacks/log_merge.sh MGCP_Test --rm; \ + exit $$exit_code diff --git a/ttcn3-mgw-test/jenkins.sh b/ttcn3-mgw-test/jenkins.sh index c0cf2f5..4875f09 100755 --- a/ttcn3-mgw-test/jenkins.sh +++ b/ttcn3-mgw-test/jenkins.sh @@ -9,6 +9,25 @@ docker_images_require \ set_clean_up_trap set -e +ADD_TTCN_RUN_OPTS="" +ADD_TTCN_RUN_CMD="" +ADD_TTCN_VOLUMES="" +ADD_MGW_VOLUMES="" +ADD_MGW_ARGS="" + +if [ "x$1" = "x-h" ]; then + ADD_TTCN_RUN_OPTS="-ti" + ADD_TTCN_RUN_CMD="bash" + if [ -d "$2" ]; then + ADD_TTCN_VOLUMES="$ADD_TTCN_VOLUMES -v $2:/osmo-ttcn3-hacks" + fi + if [ -d "$3" ]; then + ADD_MGW_RUN_CMD="sleep 9999999" + ADD_MGW_VOLUMES="$ADD_MGW_VOLUMES -v $3:/src" + ADD_MGW_RUN_OPTS="--privileged" + fi +fi + mkdir $VOL_BASE_DIR/mgw-tester cp MGCP_Test.cfg $VOL_BASE_DIR/mgw-tester/ write_mp_osmo_repo "$VOL_BASE_DIR/mgw-tester/MGCP_Test.cfg" @@ -24,16 +43,22 @@ docker run --rm \ $(docker_network_params $SUBNET 180) \ --ulimit core=-1 \ -v $VOL_BASE_DIR/mgw:/data \ + $ADD_MGW_VOLUMES \ --name ${BUILD_TAG}-mgw -d \ $DOCKER_ARGS \ - $REPO_USER/osmo-mgw-$IMAGE_SUFFIX + $ADD_MGW_RUN_OPTS \ + $REPO_USER/osmo-mgw-$IMAGE_SUFFIX \ + $ADD_MGW_RUN_CMD # start docker container with testsuite in foreground docker run --rm \ $(docker_network_params $SUBNET 181) \ --ulimit core=-1 \ -v $VOL_BASE_DIR/mgw-tester:/data \ + $ADD_TTCN_VOLUMES \ -e "TTCN3_PCAP_PATH=/data" \ --name ${BUILD_TAG}-ttcn3-mgw-test \ $DOCKER_ARGS \ - $REPO_USER/ttcn3-mgw-test + $ADD_TTCN_RUN_OPTS \ + $REPO_USER/ttcn3-mgw-test \ + $ADD_TTCN_RUN_CMD diff --git a/ttcn3-msc-test/Dockerfile b/ttcn3-msc-test/Dockerfile index 8c67bbf..1c085a7 100644 --- a/ttcn3-msc-test/Dockerfile +++ b/ttcn3-msc-test/Dockerfile @@ -9,5 +9,7 @@ RUN ttcn3-docker-prepare "$OSMO_TTCN3_BRANCH" msc VOLUME /data COPY MSC_Tests.cfg /data/MSC_Tests.cfg +COPY Makefile.within-docker-img /Makefile -CMD ttcn3-docker-run msc MSC_Tests +WORKDIR / +CMD make test diff --git a/ttcn3-msc-test/Makefile.within-docker-img b/ttcn3-msc-test/Makefile.within-docker-img new file mode 100644 index 0000000..4ec9a6c --- /dev/null +++ b/ttcn3-msc-test/Makefile.within-docker-img @@ -0,0 +1,13 @@ +.PHONY: compile test log + +all: compile test + +compile: + $(MAKE) -C /osmo-ttcn3-hacks msc/all + +test: + cd /data && \ + /osmo-ttcn3-hacks/start-testsuite.sh /osmo-ttcn3-hacks/msc/MSC_Tests MSC_Tests.cfg $(TEST); \ + exit_code=$$?; \ + /osmo-ttcn3-hacks/log_merge.sh MSC_Tests --rm; \ + exit $$exit_code diff --git a/ttcn3-msc-test/jenkins.sh b/ttcn3-msc-test/jenkins.sh index a8e6229..54d064b 100755 --- a/ttcn3-msc-test/jenkins.sh +++ b/ttcn3-msc-test/jenkins.sh @@ -13,6 +13,26 @@ set -e SUBNET=20 network_create $SUBNET +ADD_TTCN_RUN_OPTS="" +ADD_TTCN_RUN_CMD="" +ADD_TTCN_VOLUMES="" +ADD_MSC_VOLUMES="" +ADD_MSC_RUN_OPTS="" +MSC_RUN_CMD="/bin/sh -c \"osmo-msc -c /data/osmo-msc.cfg >>/data/osmo-msc.log 2>&1\"" + +if [ "x$1" = "x-h" ]; then + ADD_TTCN_RUN_OPTS="-ti" + ADD_TTCN_RUN_CMD="bash" + if [ -d "$2" ]; then + ADD_TTCN_VOLUMES="$ADD_TTCN_VOLUMES -v $2:/osmo-ttcn3-hacks" + fi + if [ -d "$3" ]; then + ADD_MSC_VOLUMES="$ADD_MSC_VOLUMES -v $3:/src" + MSC_RUN_CMD="sleep 9999999" + ADD_MSC_RUN_OPTS="--privileged" + fi +fi + mkdir $VOL_BASE_DIR/msc-tester mkdir $VOL_BASE_DIR/msc-tester/unix cp MSC_Tests.cfg $VOL_BASE_DIR/msc-tester/ @@ -41,10 +61,12 @@ docker run --rm \ --ulimit core=-1 \ -v $VOL_BASE_DIR/msc:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ + $ADD_MSC_VOLUMES \ --name ${BUILD_TAG}-msc -d \ $DOCKER_ARGS \ + $ADD_MSC_RUN_OPTS \ $REPO_USER/osmo-msc-$IMAGE_SUFFIX \ - /bin/sh -c "osmo-msc -c /data/osmo-msc.cfg >>/data/osmo-msc.log 2>&1" + $MSC_RUN_CMD echo Starting container with MSC testsuite docker run --rm \ @@ -55,6 +77,9 @@ docker run --rm \ -e "OSMO_SUT_PORT=4254" \ -v $VOL_BASE_DIR/msc-tester:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ + $ADD_TTCN_VOLUMES \ --name ${BUILD_TAG}-ttcn3-msc-test \ $DOCKER_ARGS \ - $REPO_USER/ttcn3-msc-test + $ADD_TTCN_RUN_OPTS \ + $REPO_USER/ttcn3-msc-test \ + $ADD_TTCN_RUN_CMD diff --git a/ttcn3-sgsn-test/Dockerfile b/ttcn3-sgsn-test/Dockerfile index b581b43..0cc8524 100644 --- a/ttcn3-sgsn-test/Dockerfile +++ b/ttcn3-sgsn-test/Dockerfile @@ -9,5 +9,6 @@ RUN ttcn3-docker-prepare "$OSMO_TTCN3_BRANCH" sgsn VOLUME /data COPY SGSN_Tests.cfg /data/SGSN_Tests.cfg +COPY Makefile.within-docker-img /Makefile -CMD ttcn3-docker-run sgsn SGSN_Tests +CMD cd / && make test diff --git a/ttcn3-sgsn-test/Makefile.within-docker-img b/ttcn3-sgsn-test/Makefile.within-docker-img new file mode 100644 index 0000000..20f9643 --- /dev/null +++ b/ttcn3-sgsn-test/Makefile.within-docker-img @@ -0,0 +1,18 @@ +.PHONY: compile test log + +default: compile + $(MAKE) test; $(MAKE) log + +compile: + $(MAKE) -C /osmo-ttcn3-hacks sgsn/compile + $(MAKE) -C /osmo-ttcn3-hacks sgsn -j + +test: + cd /data && \ + /osmo-ttcn3-hacks/start-testsuite.sh /osmo-ttcn3-hacks/sgsn/SGSN_Tests; \ + exit_code=$$?; \ + /osmo-ttcn3-hacks/log_merge.sh SGSN_Tests --rm; \ + exit $$exit_code + +log: + cd /data; /osmo-ttcn3-hacks/log_merge.sh SGSN_Tests --rm diff --git a/ttcn3-sgsn-test/jenkins.sh b/ttcn3-sgsn-test/jenkins.sh index dde90a2..550af8b 100755 --- a/ttcn3-sgsn-test/jenkins.sh +++ b/ttcn3-sgsn-test/jenkins.sh @@ -10,6 +10,41 @@ docker_images_require \ set_clean_up_trap set -e +ADD_TTCN_RUN_OPTS="" +ADD_TTCN_RUN_CMD="" +ADD_TTCN_VOLUMES="" +SGSN_RUN_CMD="osmo-sgsn -c /data/osmo-sgsn.cfg" +ADD_SGSN_VOLUMES="" +ADD_SGSN_ARGS="" +ADD_SGSN_RUN_OPTS="" + +if [ "x$1" = "x-h" ]; then + ADD_TTCN_RUN_OPTS="-ti" + ADD_TTCN_RUN_CMD="bash" + if [ -d "$2" ]; then + ADD_TTCN_VOLUMES="$ADD_TTCN_VOLUMES -v $2:/osmo-ttcn3-hacks" + fi + if [ -d "$3" ]; then + SGSN_RUN_CMD="sleep 9999999" + ADD_SGSN_VOLUMES="$ADD_SGSN_VOLUMES -v $3:/src" + set +x + echo " + +===== ATTENTION ===== +Starting the osmo-sgsn-master docker image in hacking mode. +That means to launch the SGSN, you need to attach to it and start it manually: + + docker exec -ti nonjenkins-sgsn bash + /# make + +===== +" + set -x + fi +else + ADD_TTCN_RUN_CMD="$@" +fi + SUBNET=8 network_create $SUBNET @@ -39,10 +74,12 @@ docker run --rm \ $(docker_network_params $SUBNET 10) \ --ulimit core=-1 \ -v $VOL_BASE_DIR/sgsn:/data \ + $ADD_SGSN_VOLUMES \ --name ${BUILD_TAG}-sgsn -d \ $DOCKER_ARGS \ + $ADD_SGSN_RUN_OPTS \ $REPO_USER/osmo-sgsn-$IMAGE_SUFFIX \ - /bin/sh -c "osmo-sgsn -c /data/osmo-sgsn.cfg >/data/osmo-sgsn.log 2>&1" + $SGSN_RUN_CMD echo Starting container with SGSN testsuite docker run --rm \ @@ -52,6 +89,9 @@ docker run --rm \ -e "OSMO_SUT_HOST=172.18.$SUBNET.10" \ -e "OSMO_SUT_PORT=4245" \ -v $VOL_BASE_DIR/sgsn-tester:/data \ + $ADD_TTCN_VOLUMES \ --name ${BUILD_TAG}-ttcn3-sgsn-test \ $DOCKER_ARGS \ - $REPO_USER/ttcn3-sgsn-test + $ADD_TTCN_RUN_OPTS \ + $REPO_USER/ttcn3-sgsn-test \ + $ADD_TTCN_RUN_CMD diff --git a/ttcn3-sgsn-test/osmo-sgsn.cfg b/ttcn3-sgsn-test/osmo-sgsn.cfg index 73d55e7..3978ae5 100644 --- a/ttcn3-sgsn-test/osmo-sgsn.cfg +++ b/ttcn3-sgsn-test/osmo-sgsn.cfg @@ -9,10 +9,11 @@ log gsmtap 172.18.8.103 log stderr logging filter all 1 logging color 1 + logging print level 1 logging print category 1 - logging timestamp 1 + logging print category-hex 0 logging print extended-timestamp 1 - logging print file 1 + logging print file basename last logging level mm debug logging level pag notice logging level meas notice diff --git a/ttcn3-sip-test/jenkins.sh b/ttcn3-sip-test/jenkins.sh index 334f791..0ba8c25 100755 --- a/ttcn3-sip-test/jenkins.sh +++ b/ttcn3-sip-test/jenkins.sh @@ -9,6 +9,26 @@ docker_images_require \ set_clean_up_trap set -e +ADD_TTCN_RUN_OPTS="" +ADD_TTCN_RUN_CMD="" +ADD_TTCN_VOLUMES="" +ADD_SIP_VOLUMES="" +ADD_SIP_ARGS="" +SIP_RUN_CMD="/bin/sh -c \"osmo-sip-connector -c /data/osmo-sip-connector.cfg >>/data/osmo-sip-connector.log 2>&1\"" + +if [ "x$1" = "x-h" ]; then + ADD_TTCN_RUN_OPTS="-ti" + ADD_TTCN_RUN_CMD="bash" + if [ -d "$2" ]; then + ADD_TTCN_VOLUMES="$ADD_TTCN_VOLUMES -v $2:/osmo-ttcn3-hacks" + fi + if [ -d "$3" ]; then + SIP_RUN_CMD="sleep 9999999" + ADD_SIP_VOLUMES="$ADD_SIP_VOLUMES -v $3:/src" + ADD_SIP_RUN_OPTS="--privileged" + fi +fi + SUBNET=11 network_create $SUBNET @@ -29,10 +49,12 @@ docker run --rm \ --ulimit core=-1 \ -v $VOL_BASE_DIR/sip:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ + $ADD_SIP_VOLUMES \ --name ${BUILD_TAG}-sip-connector -d \ $DOCKER_ARGS \ + $ADD_SIP_RUN_OPTS \ $REPO_USER/osmo-sip-$IMAGE_SUFFIX \ - /bin/sh -c "osmo-sip-connector -c /data/osmo-sip-connector.cfg >>/data/osmo-sip-connector.log 2>&1" + $SIP_RUN_CMD echo Starting container with SIP testsuite docker run --rm \ @@ -41,6 +63,9 @@ docker run --rm \ -e "TTCN3_PCAP_PATH=/data" \ -v $VOL_BASE_DIR/sip-tester:/data \ -v $VOL_BASE_DIR/unix:/data/unix \ + $ADD_TTCN_VOLUMES \ --name ${BUILD_TAG}-ttcn3-sip-test \ $DOCKER_ARGS \ - $REPO_USER/ttcn3-sip-test + $ADD_TTCN_RUN_OPTS \ + $REPO_USER/ttcn3-sip-test \ + $ADD_TTCN_RUN_CMD |