As the comment states, the BSC container is not needed for the OML
tests. The testsuite itself "speaks" OML to the IUT in this case.
Change-Id: Iab44b9ed83e917475c9e2e86ad32b303b05b2ace
Fixes: aad045f5 "ttcn3-bts-test: add env var to not run all configs"
Fixes: OS#6421
Make it possible to e.g. run only one of the generic/oml/hopping
configurations.
I made a version of this patch a few weeks ago for testing OS#6375,
and I'm submitting it now so I can add multiple configurations for
ttcn3-ggsn-test in the next patch with the same logic.
Change-Id: I1dce5e6aa4b5d67f9f8c96ced611ab2875c353c8
We cannot execute the virtphy based testcases due to the limitations
of Docker (see https://github.com/moby/libnetwork/issues/2397). The
function starting the testsuite was already commented out, but not
the lines starting containers with osmo-bts-virtual and virtphy.
To put it simple, we start and immediately terminate those containers.
And since recently (Feb 1st), we started seeing socket creation errors
in both containers, causing jenkins.sh to abort early. It's yet
unclear what's the cause of those socket errors, but regardless of
that we should still be running other pending testcases.
Change-Id: I7c9ccc9cc400edb7a05e222e51671fd49631a4cd
Fixes: OS#6352
osmo-bts v1.7.2 (recently tagged) now also speaks PCUIFv12.
Take a chance to fix ttcn3-bts-test-2023q1 by setting PCUIFv10.
Change-Id: I70f0c30d6c514614095dcbbcac5d025001861fbc
At the moment we use PCUIF v11 in latest and in master. This will now
change (see Depends) so that we will have to use v12 in master. This
patch adds the necessary conditional config changes.
Depends: osmo-pcu.git I48eb75f65ab54fdec41ef913e24c1f18cd4a4047
Change-Id: I5c0914c0bf906b51a500a3b099578700798cf8c0
Related: OS#6191
Since osmo-bts 1.7.0 which was just released, PCUIF v11 is supported, so
use it both in master and latest.
Change-Id: I6c905d074ffc324dd72d6a5c9ce79f3c241ac780
OsmoBTS currently uses PCUIF v.10 but will move to v.11 soon. (see
Depends). Unfortuantely this means that we have to execute the TTCN3
testsuite in master with PCUIF v.11 and in latest with PCUIF v.10. This
will be the case until the current master becomes the new latest on the
next release.
Depends: osmo-bts.git I25816ac12e63cc6b641eb414e6bc7eaa9c85fc25
Depends: osmo-ttcn3-hacks.git I08de02e951e10bc8b4381cc2ad32e63f2747e3c4
Change-Id: Ia28bc0d6d3cbfe63be19443db86631fb67bb80fb
Related: OS#5927
As "docker kill" / "docker container kill" (alias) doesn't block until
the given container stops, make sure to always run "docker wait"
afterwards.
Closes: OS#5928
Change-Id: I0242ece96541d8036ebbf8b0f498ebf231db26b5
Make ttcn3-bts-test work as expected again by replacing the subnets
hardcoded in the confmerge files and Makefile.
Related: OS#5802
Change-Id: I733619f80b4e2456da070649634d3c942bb6d95f
Try multiple subnet numbers until successfully creating a network. This
way we can run the same ttcn3 testsuite multiple times in parallel
without conflicts (e.g. once against latest, once against nightly). Also
we don't need to make sure each new testsuite has a unique subnet
number anymore.
I've considered also adjusting network_bridge_create, but that gets used
exclusively by osmo-ran/jenkins.sh, a script which we don't actually run
in jenkins. It seems that in this script it makes more sense to not get
a random subnet number.
Related: OS#5802
Change-Id: I57152b08ef0f38e17e7019a8df032189b03f56cf
Use the SUBNET variable instead of hardcoding it in some places. Split
commands across multiple lines while at it to improve readability.
Related: OS#5802
Change-Id: I08f83089ef97f5f92d4bbfa5743301e7375e9f0f
This uses the config files from osmo-ttcn3-hacks.git instead of keeping
local copies around here, which has shown many times will get out of
sync. Extract the original files (*.src.cfg) from the testsuite image
(ttcn3-bts-test) and merge them with the local *.confmerge files using
osmo-config-merge. Use the resulting files (*.gen.cfg).
Unfortunately, osmo-config-merge is not capable of removing text blocks
or substituting specific parts, so we fall-back to using sed where it's
needed. A good example is 'log gsmtap 127.0.0.1', as there is no
command for removing a logging target of such type.
Co-Authored-By: Vadim Yanitskiy <vyanitskiy@sysmocom.de>
Co-Authored-By: Oliver Smith <osmith@sysmocom.de>
Change-Id: If15461240f3037c142c176fc7da745a1701ae3f8
This enables the test suite to obtain talloc reports between the
test case executions, which get stored together with the PCAP files.
Let's see how it works with the mentioned projects first; others
can be configured later. See [1] for more details.
Change-Id: Icd4c2d80db934535d499598282ed9416d8088163
Related: [1] I1b03b17426d8760c55976e3b78ca2f3af248c055
Related: OS#5328
Write a line like 'Misc_Helpers.mp_osmo_repo := "nightly"' into the
TTCN-3 config file (e.g. BSC_Tests.cfg), before starting the testsuite.
This allows executing different code paths in the tests based on the
repository.
Related: OS#5327
Change-Id: Ic06532f7a67e59458652c5cf4c8f6fee8113e703
Command line argument '-i' has been deprecated.
Change-Id: Ib01069a55a27e79c67b76abe39763c1b645075e5
Related: I17676a21c4e0c9cbc88f2c5c53a39c6c6c473ca1
Abort the script and trigger the clean up script, whenever any of the
commands below to prepare the testsuite are failing. This saves time
with figuring out why suddenly all or most tests are failing, and avoids
running the entire testsuite on jenkins if it's obviously not going to
work.
Related: OS#3208
Change-Id: Ie68da2affda8c96b3a515a857a921a05f1bf8ef7
Add set_clean_up_trap() in jenkins-common.sh and run it at the beginning
of the jenkins.sh files. Move the common clean up code from the end of
every jenkins.sh file into clean_up_common(), which gets called by the
trap. Add a custom clean_up() function to those jenkins.sh files that
need additional clean up.
Replace explicit container stop commands (for containers attached to the
docker network) with one call to network_clean() in clean_up_common(). It
kills all containers attached to the docker network.
The motivation for this change is the upcoming optional build of initrd
and kernel during ttcn3-ggsn-test/jenkins.sh. After building these, a
short smoke test will be performed to make sure we can boot the kernel
and initrd, before continuing to run the entire testsuite against it. If
building or the smoke test fails, we must do a proper clean up of the
network and fix permissions.
Related: OS#3208
Change-Id: I807c6221d22fec31db23e2516e477a3eb43347fb
These changes are no longer needed since master versions of whole CNI
have been recently released.
Related: OS#5042
Change-Id: I6f491b58d4576b22c8ff3ab56a7b9e17163a8739
There has been a lot of changes merged to both osmo-{bsc,bts}, so
now the later seems to be respawning faster then before. Because
of that, osmo-bts-trx is now reaching the limit of 500 runs on
Jenkins right in the middle of ttcn3-bts-test execution:
respawn.sh: exiting after 500 runs
causing the remaining test cases to fail due to:
"BTS_Tests.ttcn:253 : Timeout waiting for RSL bring up"
Most likely, the IUT respawns several times in the windows between
the test cases, i.e. after TITAN finishes one test case and before
it starts another. Let's instruct respawn.sh to sleep 1 second
before starting the process again.
Change-Id: I09e5a8e7c4d28424cd0d004a8bae3cf0ade2d838
Not only append ':hopping' to classnames equal 'BTS_Tests', but
also 'BTS_Tests_SMSCB' and 'BTS_Tests_LAPDm', so they would not
shadow non-hopping test cases in the test results analyzer.
Change-Id: Ie6ed7844c2d0dfd839181bce971506284da03d28
Related: SYS#4868, OS#4546
Let's use separate directories to store the artifacts of different
TTCN-3 test case groups. This would prevent the test suite from
overwriting *.log and *.pcap files when running both generic and
hopping configurations together, and simplify the overall hierarchy.
Change-Id: I7c41cfb395047433e22e9c65c8c00ae284717b32
Related: SYS#4868, OS#4546
We previously only allocated IPv4 sub-nets to the network segments
created with 'docker network'. Let's fix that by assigning both
IPv4 and IPv6 address ranges to each docker network.
Related: OS#4700
Change-Id: I8802208fddcce1ffa57e5626575d23d02b320d99
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 allows easily checking if fake_trx fails to start early during
startup, for instance due to a python exception.
Change-Id: I3e13a3b1f78d071618e4848aa19bcba1eb300d18
Don't list debian-stretch-build and debian-stretch-titan as dependencies
anymore, now that docker_images_require finds them automatically.
Related: OS#4564
Change-Id: I3cb6b693f3dd9df84fb29c0217bb3dae454cc18f
This is needed for the forthcoming frequency hopping test cases.
Change-Id: Ib5ad31388ae25399ad09739aac3fdcb0b3a1f78b
Depends: I86afb55ecc6703ce7a229aaa626223f9331a4778
Related: OS#4546
Allow to pass options to each "docker run" line in the various
jenkins.sh scripts. I'm using this to run the testsuites and Osmocom
components in docker with the same configurations as jenkins, but with
Osmocom and testsuite binaries built outside and mounted into the
containers:
DOCKER_ARGS="-v /usr/local:/usr/local:ro -v $hacks:/osmo-ttcn3-hacks:ro"
This allows very short test cycles without a second set of configs. The
full script that makes use of this feature is in osmo-dev.git,
ttcn3/ttcn3.sh.
Change-Id: I8d1f78aee926f8f6ec0b704e16639bc83f525816
If directory is not created beforehand by the user, docker (root) will
create the directory before binding it to the container.
Related: OS#4313
Fixes: a66f6ebb23
Change-Id: I3f02faef1aa5846c48a3776191c3862bac913d10
Run the testsuite one more time; this time for OML tests which
require us to run without a BSC. We can run those with trxcon
and omso-bts-trx and don't need virtphy for them.
Related: OS#4031
Depends: osmo-ttcn3-hacks I82bb85b684d2db3a6b1e96a68ffde03e22affa6b
Change-Id: I97db9c74c56ca93c75e5e5226955799cd945eec0
Some tests require GPRS features not yet present in trxcon, so we have
to fall back using virtphy.
Change-Id: I2f17f03194a4dfa0abca51b0d3e22b3934d08a9a
Remove hardcoded /usr/local/bin/ paths from jenkins.sh. This caused the
*-latest tests to fail, as they have the Osmocom binaries in /usr/bin
instead of /usr/local/bin.
Related: OS#3767
Change-Id: I9d1427e66028ffd15fed211b2dab5adc37718666
Do not try to run a osmocom-bb-host-latest docker image, which does not
exist as we are not tagging release versions for osmocom-bb (yet).
This was done right in the docker_images_require call at the top
already (which is why it did not try to build such a "-latest" image),
but then the script tried to use the "-latest" images anyway (instead
of hardcoding "-master").
Related: OS#3767
Change-Id: Ib743f09c71d93bf4c4ad947ef62b37de6b2d7ecc