ttcn3-bts: Fix most OML test failing after osmo-bts shutdown optimization

Since osmo-bts.git 0a6bdb024f5429a35c56178496158c9b1c3ee032, the process
is quickly terminated during shutdown if no TRX is running. Since in the
OML tests the TTCN3 components implements the OML IPA server side, most
of the time when osmo-bts starts it finds no one listening on the
address and exits immediately. This makes respawn.sh script run osmo-bts
lots of times per seconds (since osmo-bts terminates quicker now). As a
result, it quickly consumes the 500 launch threshold and exits without
starting osmo-bts being launched anymore.
As a result, only first tests pass, and all the later ones fail because
osmo-bts never connects.

Let's add a sleep 1 between respawns in respawn.sh only when running OML
tests (not needed in the others since there's an osmo-bsc always
running). This also clears a lot of output in the logs of osmo-bts
processes restarting over and over again.

Change-Id: I10d3e1ef8325dd78f9ae2b95fbfd1c6d893bf8a4
This commit is contained in:
Pau Espin 2020-07-07 12:20:44 +02:00 committed by pespin
parent 37a603b1d3
commit fc5cab9e3a
2 changed files with 11 additions and 3 deletions

View File

@ -2,6 +2,8 @@
trap "kill 0" EXIT
SLEEP_BEFORE_RESPAWN=${SLEEP_BEFORE_RESPAWN:-0}
i=0
max_i=500
while [ $i -lt $max_i ]; do
@ -10,6 +12,10 @@ while [ $i -lt $max_i ]; do
LAST_PID=$!
wait $LAST_PID
echo "$i: stopped pid $LAST_PID with status $?"
if [ $SLEEP_BEFORE_RESPAWN -gt 0 ]; then
echo "sleeping $SLEEP_BEFORE_RESPAWN seconds..."
sleep $SLEEP_BEFORE_RESPAWN
fi
i=$(expr $i + 1)
done
echo "exiting after $max_i runs"

View File

@ -24,6 +24,7 @@ start_bsc() {
start_bts() {
local variant
variant="$1"
sleep_time_respawn="$2"
echo Starting container with BTS
if [ -z "$variant" ]; then
echo ERROR: You have to specify a BTS variant
@ -34,6 +35,7 @@ start_bts() {
--ulimit core=-1 \
-v $VOL_BASE_DIR/bts:/data \
-v $VOL_BASE_DIR/unix:/data/unix \
-e "SLEEP_BEFORE_RESPAWN=$sleep_time_respawn" \
--name ${BUILD_TAG}-bts -d \
$DOCKER_ARGS \
$REPO_USER/osmo-bts-$IMAGE_SUFFIX \
@ -127,7 +129,7 @@ mkdir $VOL_BASE_DIR/virtphy
# 1) classic test suite with BSC for OML and trxcon+fake_trx
start_bsc
start_bts trx
start_bts trx 0
start_fake_trx
start_trxcon
start_testsuite
@ -139,7 +141,7 @@ docker container kill ${BUILD_TAG}-trxcon
docker container kill ${BUILD_TAG}-fake_trx
docker container kill ${BUILD_TAG}-bts
cp virtphy/osmo-bts.cfg $VOL_BASE_DIR/bts/
start_bts virtual
start_bts virtual 0
start_virtphy
# ... and execute the testsuite again with different cfg
cp virtphy/BTS_Tests.cfg $VOL_BASE_DIR/bts-tester/
@ -151,7 +153,7 @@ docker container kill ${BUILD_TAG}-bsc
docker container kill ${BUILD_TAG}-virtphy
docker container kill ${BUILD_TAG}-bts
cp oml/osmo-bts.cfg $VOL_BASE_DIR/bts/
start_bts trx
start_bts trx 1
start_fake_trx
start_trxcon
# ... and execute the testsuite again with different cfg