These new testcases were added to osmo-ttcn3-hacks.git back in August
2023 (see the related patch), but have never been executed automatically
on Jenkins because the config file was not updated in this repo...
Change-Id: I9ec0a03658ead382eaaef175090cfc3650ffd9b7
Related: osmo-ttcn3-hacks.git I4bbe739ea55ecf9f7ebf9ee413df69f29aa642f8
Old osmo-msc versions do not include the Source Name IE in SMS related
GSUP messages, unless it's set explicitly in the config file ('hlr' /
'ipa-name'). Recent osmo-msc versions (see the related osmo-msc patch)
do include this IE even if it's not set explicitly ('unnamed-MSC').
Because of this, some testcases in ttcn3-msc-test are currently
failing for osmo-msc master, but still passing for the -latest.
Let's set the 'ipa-name' explicitly in osmo-msc.cfg, so that we can
expect both -master and -latest to include the Source Name IE.
Change-Id: I7757aae1d01b679f530b5c0a6c95b224cb9f204f
Related: osmo-ttcn3-hacks.git Ic24d3082fe3dce08e43e8f3ecb6d6132503c55c6
Related: osmo-msc.git I7bacd001b81326c32bc262c7d0c0491ded822fa8
Related: OS#6135
It was recently decided it's a good practice to always specify the role
and sctp-role for all ASPs configured in the VTY, since it's an
important configuration providing feedback on the network setup
expectancies.
Change-Id: Ia495bc3c5dd4421e5730c74b2f5dc4e4cdc1a673
Until recently, the asp-clnt-* ASPs, which have specific handling in osmo_sccp_simple_client_on_ss7_id(),
were being always forcedly set to sctp-role CLIENT by code in that
function.
This prevented user of that API from explicitly configuring the ASP as
"sctp-role server" through the VTY as the option would be overwritten silently.
Now, the sctp-role from config is followed if the ASP is
defined/configured through the VTY (not dynamically created at the time
osmo_sccp_simple_client_on_ss7_id() is called).
Since the default for a VTY-specified ASP is to be in "sctp-role
server", the config files need to be updated to properly configure the
ASP to be in "sctp-role client", which is the desired mode here.
Same applies for "role", where the default is SG but it is actually used
as "ASP" here.
Change-Id: Idf84502ffa199926a5f0ee616313b515743811ab
Depends: osmo-ttcn3-hacks.git Change-Id I4eb5b5f6b4b24df079b4c74e2a2e2ebb8769b0bd
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
Other remotes are mirrors of gerrit one, which means there's some delay
between pushing some ref to the gerrit remote and having them available
in the mirrors.
Hence, it becomes annoying while developing and new stuff to test is
pushed. Let's simply use gerrit since it's the master remote.
Change-Id: Ic87c196f8b91a3a3e6ddde2cca36482ce7070df7
These files are in .gitignore and get generated at the end of running
'make'. Remove them to have less cluttered 'git grep' output.
Change-Id: Ie5bf05220359ac0941f62cc86ed843363548784a
Allocating a pseudo-TTY (-t, --tty) fails when 'run' is executed
inside of a Jenkins or cron script. This change fixes
ttcn3-bts-test, which invokes 'run' to fetch the config files.
Change-Id: If22f682be4f004c5bb43e65098079a4f4fe6158d
Fixes: If15461240f3037c142c176fc7da745a1701ae3f8
So far we were executing all our TTCN-3 tests from a container
image with Debian stretch (9) plus a custom more recent eclipse-titan
package from the osmocom feed.
Let's update the container base OS from stretch (9) to bullseye (11)
while using the same packaged eclipse-titan version (8.0.0) for running
the tests. So this should be a low-risk change, as titan runtime
remains identical.
I've executed all test suites locally and couldn't see any regressions.
Related: OS#4969
Change-Id: Ib3bdfa3bec8f8ef42c55ca61cdee8fbca923874f
The Iu/UMTS specific test cases in ttcn3-msc-test expect no
encryption in Security Mode Command by default (only integrity),
while osmo-msc would permit both UEA1 and UEA2 unless configured
explicitly. This causes the related test cases to fail.
A similar change was merged to osmo-ttcn3-hacks, updating the
osmo-msc.cfg in there, however the actual configuration file
that is used to execute test cases on Jenkins was not updated.
Change-Id: I43f80e3fbd73be21fb89006e16de0e1df9ba03f5
Related: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/26389
Fixes: OS#5333
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
it has been deprecated in libosmocore.git 2.5 years ago:
commit 7e0686c6b4b456ec4e6e15689694b1bcf96c301f
Author: Neels Hofmeyr <neels@hofmeyr.de>
Date: Mon Sep 10 20:58:52 2018 +0200
Change-Id: Ia6946fae497319a894d4e664ac8642340620822e
Since -latest was updated to newer releases, there's no need to change
the values of these params. Furthermore, they will be completely dropped soon.
Change-Id: I6121b435c5b984eab64d953e9d3f26eecc0e7bc5
Related: OS#5042
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
Allow jenkins to fetch the image from our private docker registry.
Outside of jenkins, the image is built locally just like before.
Related: OS#5017
Change-Id: I46cc176ea09d8badc359b627d7ce2f459211258c
While I'm at it with tidying up the Dockerfiles, create a
ttcn3-docker-run.sh with shared run code.
Related: OS#5017
Change-Id: Id90769707158f0488eca2313c57b99ea7a4a27c8
Create symlinks to ttcn3-*-start.sh and ttcn3-*-stop.sh in the
prepare.sh script instead of in each of the ttcn3 Dockerfiles.
Related: OS#5017
Change-Id: I634cf71cff7936efe6e0461d21dc1119de922ada
Move the git fetch/checkout code and make call to build the testsuite,
to debian-stretch-titan/ttcn3-docker-prepare.sh. In the next patch, I
will extend the script to update deps right before building too (e.g.
because OSMO_TTCN3_BRANCH changed).
Related: OS#5017
Change-Id: I4b5bedf058dc527e821f9b7204c632820e671af9
Clone the osmo-ttcn3-hacks and all dependency repositories less often by
moving related commands to the shared debian-stretch-titan image.
Remove the 'git checkout -f -B master origin/master' line, because the
master branch is checked out by default.
While at it, move the shared "git config" commands too, and move them
before cloning the repositories, so they don't run again whenever the
deps change (logic to invalidate the cache if deps change will be added
in the next patch).
Related: OS#5017
Change-Id: I2bb142dce061eba4b6a828c4e435510e309989fd
Remove leftover from old TTCN-3 build scripts, before refactoring ttcn3
Dockerfiles. This line has already been removed in 357ec806 from 2017 for
ggsn-test.
In osmo-ttcn3-hacks.git, this is only referenced in the obsolete
bin/install.script (looks like we could remove that, together with the
rest of the bin dir?).
Related: OS#5017
Change-Id: Id23e7fae58ba246916a38aa0a10035d4f67f7588
Default is MNCCv7 since osmo-ttcn3-hacks.git
I5448ff931ec33f24f4837a51376f1703fe97683b, but latest tagged version of
osmo-msc only supports MNCCv6.
Change-Id: Iaac2f5453214dfcf6efd070f6ea1212a7833eb1b
module param mp_enable_osmux_test is dropped in osmo-ttcn3-hacks.git
I8bc0551ec91a5fd8ea2f291a1e16a06a739c7a75.
module param mp_enable_crashing_tests is introduced in
osmo-ttcn3-hacks.git I46f1066323e19dfe708402a8c9c68e257f62751c.
Change-Id: I22bb43ba6d15eabcc731a2c3ef7aabc4f250d508
As of osmo-ttcn3-hacks.git Change-Id I4976d9bb1f07c8ab4ffa02848414f8ddd1bdfd3f
the test suite expects the MSC to send a CommonID to the BSC. As
older/existing tagged osmo-msc don't do that, we needt odisable that
check when verifying 'latest'.
Change-Id: If2e4cc41cb7b5758a78d694d62b34390a08e6387
Related: OS#2969
When introducing IPv6 support, we map the third digit of the IPv4
address (X) to the 6th byte of an IPv6 prefix "fd02:db8:X::/64"
However, the docker daemon seems to use "fd02:db8:1::/64" internally
for its default network, so creating a docker network with the same
IP address is failing.
Let's move the MSC test suite to another sub-net (1->20) to avoid
related problems.
Change-Id: I9c5f9b96d5523eae09f3f2e6c813e9e0d047f9ab
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
Unfortunately, we have to revert a part of change [1], because it
broke ttcn3-msc-test-latest. The reason is that the latest release
of osmo-msc does not support 'timer vlr T3212 30'.
Change-Id: Iaeb6f1ffee9286394654bc3cf9d985ace7829110
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
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
Last releases of osmo-bsc and osmo-bsc already support Osmux, so we can
drop those lines as indicated.
Change-Id: Id6a18f2d691f6e9234a5a0cf91ed5c840a6394de
Configure each osmo-* program to send GSMTAP log output to the IP of the
docker container, which runs the testsuite (and therefore runs tcpdump).
Related: https://lists.osmocom.org/pipermail/openbsc/2019-June/012946.html
Change-Id: I99e74f6ffb5b7d566cec35995bf067df414968d8
Latest tagged version of osmo-msc doesn't support "osmux on/off" VTY
commands, so we have to enable osmux use on that version to avoid most
TTCN3 tests failing during set up phase.
Depends: osmo-ttcn3-hacks.git I53d58b2d905905ebf1df322d0389b3715a48212f
Change-Id: I6b3be3981978661de2fa90be130f6f1811a3d1f9
Replace 'git checkout -f -B $BRANCH origin/$BRANCH && \' in all
Dockerfiles that accept branch variables ($OSMO_TTCN3_BRANCH,
$OSMO_MGW_BRANCH, ...) with the following:
git checkout $BRANCH && \
(git symbolic-ref -q HEAD && git reset --hard origin/$BRANCH || exit 1); \
This allows using branch names and commit hashes in the $BRANCH
variables. Using commits is needed for the bisect script added in [1].
The second line ("(git symbolic...") checks if we are in detached HEAD
state after the checkout, and if we are not, pulls in all new commits
from origin/$BRANCH. Note that it ends in ';' instead of '&&', because
the command in the next line should be executed even if
"git symbolic-ref" does not exit with 0 (detached HEAD state).
Here is an example, to illustrate that the new command does the right
thing. Clone a repository and be 50 commits behind origin/master:
$ git clone "https://git.osmocom.org/osmo-mgw"
$ cd osmo-mgw
$ git reset --hard origin/master~50
With BRANCH="master":
$ git checkout master && \
(git symbolic-ref -q HEAD && git reset --hard origin/master || exit 1); \
echo "done"
Already on 'master'
...
done
$ git status
Your branch is up-to-date with 'origin/master'.
With BRANCH="85978d":
$ git checkout 85978d && \
(git symbolic-ref -q HEAD && git reset --hard origin/85978d || exit 1); \
echo "done"
Note: checking out '85978d'.
...
done
$ git status
HEAD detached at 85978dad
Related previous changes:
* [2] made it work for commit hashes, but broke using branch names other
than master, and pulling in new commits from master
* [3] made branches other than master work again, but did not fix
pulling in new commits from master
* [4] reverted [3] and the git checkout related part from [2]
[1] Change-Id: I11f7e61a9b30d58a0fdfcaf77dde447806bf661f
[2] Change-Id: If3bc5fae07cf63c4fef68306be4c4328660bc869
[3] Change-Id: I2ff745c8d19b777d876170d5717c082ceb68a1f3
[4] Change-Id: Ie6da0f9ea96f11407e38545a6b3cf22ef9cadc25
Related: OS#4015
Change-Id: I4004980baf0b7d6096702b6f3067ccbdb369a28c
Unfortuately this commit will check out *local* master (i.e. the
previous checkout) rather than the origin/master as it's supposed to
be. This means that ever since merging this patch, our ttcn3 tests
were running some "undefined" stale versions and not current master.
This reverts commit 26565bb729.
Change-Id: Ie6da0f9ea96f11407e38545a6b3cf22ef9cadc25
Replace the following statements:
a) "git checkout -f -B $BRANCH origin/$BRANCH"
b) "git checkout -f -B $BRANCH $BRANCH"
with:
c) "git checkout -f $BRANCH"
Regarding a), we don't need to specify 'origin/' for each branch, since
we are cloning the repositories in the same Dockerfile, and therefore we
know for sure that there is only one remote and branch names won't be
ambiguous. Removing the 'origin/' allows to put commit hashes into the
branch variables (like done in the new bisect script [1]).
Version b) does not work with branch names:
$ git checkout -f -B osmith/check-imei-before-lu osmith/check-imei-before-lu
fatal: Cannot update paths and switch to branch 'osmith/check-imei-before-lu' at the same time.
Did you intend to checkout 'osmith/check-imei-before-lu' which can not be resolved as commit?
New version c) works with both commits and branches, and it is shorter.
[1] Change-Id: I11f7e61a9b30d58a0fdfcaf77dde447806bf661f
Change-Id: I2ff745c8d19b777d876170d5717c082ceb68a1f3
The new IuCS related tests have been added as 'MSC_Tests_Iu'
module to take advantage of the hierarchical display format in the
Jenkins tests results analyzer. Let's execute them.
Change-Id: I80ccfce4874d14039bbcb273c3b450db2a7780dd