2017-08-20 06:46:18 +00:00
|
|
|
#!/bin/sh
|
2021-02-19 13:25:34 +00:00
|
|
|
# Environment variables:
|
|
|
|
# * KERNEL_TEST: set to 1 to run osmo-ggsn with the kernel module in QEMU
|
|
|
|
# * KERNEL_BUILD: set to 1 to build the kernel instead of using a pre-built one
|
|
|
|
# * KERNEL_REMOTE_NAME: git remote name (to add multiple repos in the same local linux clone)
|
|
|
|
# * KERNEL_URL: git remote url
|
|
|
|
# * KERNEL_BRANCH: branch to checkout
|
2017-08-20 06:46:18 +00:00
|
|
|
|
2018-02-06 20:20:19 +00:00
|
|
|
. ../jenkins-common.sh
|
2021-02-19 13:25:34 +00:00
|
|
|
|
|
|
|
KERNEL_TEST="${KERNEL_TEST:-0}"
|
2018-10-16 09:15:42 +00:00
|
|
|
IMAGE_SUFFIX="${IMAGE_SUFFIX:-master}"
|
|
|
|
docker_images_require \
|
|
|
|
"osmo-ggsn-$IMAGE_SUFFIX" \
|
|
|
|
"ttcn3-ggsn-test"
|
2018-02-06 16:41:33 +00:00
|
|
|
|
2021-02-19 14:14:42 +00:00
|
|
|
set_clean_up_trap
|
2021-02-19 14:18:17 +00:00
|
|
|
set -e
|
2021-02-19 14:14:42 +00:00
|
|
|
|
2017-10-15 17:09:27 +00:00
|
|
|
mkdir $VOL_BASE_DIR/ggsn-tester
|
|
|
|
cp GGSN_Tests.cfg $VOL_BASE_DIR/ggsn-tester/
|
|
|
|
|
|
|
|
mkdir $VOL_BASE_DIR/ggsn
|
|
|
|
|
2020-08-24 14:15:40 +00:00
|
|
|
SUBNET=3
|
|
|
|
network_create $SUBNET
|
2018-02-06 20:20:19 +00:00
|
|
|
|
2017-08-20 06:46:18 +00:00
|
|
|
# start container with ggsn in background
|
2021-02-19 13:25:34 +00:00
|
|
|
GGSN_CMD="osmo-ggsn -c /data/osmo-ggsn.cfg"
|
|
|
|
GGSN_DOCKER_ARGS=""
|
|
|
|
if [ "$KERNEL_TEST" = "1" ]; then
|
|
|
|
cp osmo-ggsn-kernel-gtp.cfg $VOL_BASE_DIR/ggsn/osmo-ggsn.cfg
|
|
|
|
|
|
|
|
kernel_test_prepare \
|
|
|
|
"defconfig" \
|
|
|
|
"fragment.config" \
|
|
|
|
"initrd-ggsn.sh" \
|
|
|
|
"$REPO_USER/osmo-ggsn-$IMAGE_SUFFIX" \
|
|
|
|
-v $VOL_BASE_DIR/ggsn:/data
|
|
|
|
|
|
|
|
GGSN_CMD="/kernel-test/run-qemu.sh"
|
|
|
|
GGSN_DOCKER_ARGS="
|
|
|
|
$(docker_network_params $SUBNET 200)
|
2021-02-26 10:09:15 +00:00
|
|
|
$(docker_kvm_param)
|
2021-02-19 13:25:34 +00:00
|
|
|
-v "$KERNEL_TEST_DIR:/kernel-test:ro"
|
|
|
|
-v "$CACHE_DIR:/cache"
|
|
|
|
"
|
|
|
|
else
|
|
|
|
cp osmo-ggsn.cfg $VOL_BASE_DIR/ggsn/
|
|
|
|
|
|
|
|
GGSN_DOCKER_ARGS="
|
|
|
|
$(docker_network_params $SUBNET 201)
|
|
|
|
"
|
|
|
|
fi
|
2017-08-20 06:46:18 +00:00
|
|
|
docker run --cap-add=NET_ADMIN \
|
|
|
|
--device /dev/net/tun:/dev/net/tun \
|
|
|
|
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
|
|
|
|
--rm \
|
2020-06-20 18:48:20 +00:00
|
|
|
--ulimit core=-1 \
|
2017-10-15 17:09:27 +00:00
|
|
|
-v $VOL_BASE_DIR/ggsn:/data \
|
2018-02-06 19:56:52 +00:00
|
|
|
--name ${BUILD_TAG}-ggsn -d \
|
2020-03-18 14:37:59 +00:00
|
|
|
$DOCKER_ARGS \
|
2021-02-19 13:25:34 +00:00
|
|
|
$GGSN_DOCKER_ARGS \
|
2019-12-17 09:55:35 +00:00
|
|
|
$REPO_USER/osmo-ggsn-$IMAGE_SUFFIX \
|
2021-02-19 13:25:34 +00:00
|
|
|
/bin/sh -c "$GGSN_CMD >/data/osmo-ggsn.log 2>&1"
|
2017-08-20 06:46:18 +00:00
|
|
|
|
2021-02-26 10:09:15 +00:00
|
|
|
kernel_test_wait_for_vm "$VOL_BASE_DIR/ggsn/osmo-ggsn.log"
|
|
|
|
|
2017-08-20 06:46:18 +00:00
|
|
|
# start docker container with testsuite in foreground
|
|
|
|
docker run --rm \
|
|
|
|
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
|
2020-08-24 14:15:40 +00:00
|
|
|
$(docker_network_params $SUBNET 202) \
|
2020-06-20 18:48:20 +00:00
|
|
|
--ulimit core=-1 \
|
2017-10-15 17:09:27 +00:00
|
|
|
-v $VOL_BASE_DIR/ggsn-tester:/data \
|
2018-02-14 20:57:01 +00:00
|
|
|
-e "TTCN3_PCAP_PATH=/data" \
|
2018-02-06 19:56:52 +00:00
|
|
|
--name ${BUILD_TAG}-ggsn-test \
|
2020-03-18 14:37:59 +00:00
|
|
|
$DOCKER_ARGS \
|
2018-03-28 10:28:00 +00:00
|
|
|
$REPO_USER/ttcn3-ggsn-test
|