Commit Graph

39 Commits

Author SHA1 Message Date
Harald Welte d5af310648 PCU+SGSN: Adjust to new "provider" structure of NSConfiguration
In Change-Id I6904520d8c2f546327029777d68b1907611a8cf5 of
osmo-ttcn3-hacks, we change the structure of NSConfiguration.  Let's
adjust the configs accordingly.

Change-Id: I8c5e59e79b69c13632d69f5011be9279b827a4fa
Depends: osmo-ttcn3-hacks I6904520d8c2f546327029777d68b1907611a8cf5
2020-09-28 14:11:07 +00:00
Harald Welte 15855072ba PCU+SGSN tests: Set address_family field of NSConfiguration
In osmo-ttcn3-hacks Change-Id I0b4fda96accef401ffc009010f9f5621583fd6dd
we introduce the address_family member; let's make sure all configs use
it as expected.

Change-Id: I52e8b11f047a7a2ecce18e4a4f9ff3ed495a0352
2020-09-18 11:33:35 +02:00
Pau Espin 18de547d3e ttcn3-sgsn: Enable osmo-sgsn SS7 multi-homing and IPv6 features in tests
Change-Id: I21dbe79705dcc23426a88174120f6f810df84749
2020-08-30 16:07:57 +00:00
Pau Espin 1f45fb08ff jenkins-common.sh: Add function to print docker network related parameters
Change-Id: Ie00561de7a4494065156a124565e2190151e6019
2020-08-27 12:49:43 +02:00
Harald Welte 306a51dd30 Enable IPv6 in docker networking
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
2020-08-13 15:01:58 +00:00
Neels Hofmeyr 04c20edefd collect core dumps: '--ulimit core=-1' and WORKDIR=/data everywhere
Change-Id: Ief73b53ed9da6f5af82975bc36d851277d5d3185
2020-06-21 20:58:22 +00:00
Oliver Smith 5505b95a15 ttcn3-*-test: remove implicit dependencies
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
2020-05-30 09:14:06 +02:00
Oliver Smith f48c09d3bc ttcn3-*-test/jenkins*.sh: add $DOCKER_ARGS
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
2020-05-06 06:22:12 +00:00
Pau Espin 3d14860d4e ttcn3-sgsn: Drop unneeded .cfg change for latest
Latest libosmo-sccp release 1.2.0 already uses same id as master.

Change-Id: Ib7473de84521c37d6408ac1235244250284bd59a
2020-01-05 11:22:36 +00:00
Pau Espin c3f157b939 Update ttcn3-*/jenkins.sh to log stdout+stderr of process to log file
This way we get VTY parsing failures as well as backtraces upon process
crash.

Related: OS#4212
Change-Id: I3d9f6de638dbc07391a32c6a0cbd469dc5adf2b5
2019-11-20 17:17:45 +01:00
Pau Espin 65bc0ae407 ttcn-*: Fix gsmtap log not enabled
gsmtap log won't be sending any message unless it is allowed by "logging
filter all 1".

Change-Id: Ibf8062c0d962f2572a07623e6f06936df0d42c67
2019-10-04 15:50:50 +02:00
Alexander Couzens 625b49fd01 sgsn: enable Iu tests
All related Iu patches has been merged.
Change-Id: Ic26bcabb8b5192c401ab0bcc6a88b29fa0d3d8da
2019-09-16 13:19:30 +00:00
Pau Espin b1999827f5 Fix ttcn3-sgsn-latest (cs7 instance override)
Change-Id: Ie45fa7875b409c3955c26d333110c36453c276f9
2019-08-19 19:14:36 +02:00
Pau Espin d3e667989d ttcn3-sgsn: Disable not-yet available SGSN_Tests_Iu tests
Previous commit was merged without dependent tests from osmo-ttcn3-hacks
being yet present. Let's disable them until they are present.

Fixes: ca2ef84252
Change-Id: Icd7a3885bac7f8189272981d4fdac3f269e6adef
2019-08-19 18:07:46 +02:00
Alexander Couzens ca2ef84252 ttcn3-sgsn-master: add support for Iu
To support Iu tests, start osmo-stp when testing.

Depends-on: I66069e31c30d33934ad57cc2b8794f56ffd5c7d6 (osmo-ttcn3-hacks)
Change-Id: I4d6aef98832202652c5fe254105728430ba77119
2019-08-19 15:09:20 +00:00
Pau Espin f4b8b15fdb ttcn3-sgsn: Unifi osmo-sgsn.cfg's logging setup to resemble other projects
Change-Id: I89ba62be92557e35ed083dbc9a3624ff0fb6cbd3
2019-08-12 12:11:39 +02:00
Oliver Smith c2ed5bb201 ttcn3-*: enable GSMTAP logging
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
2019-07-10 09:34:39 +02:00
Pau Espin ee49c7ba88 ttcn3-*: Enable extended-timestamp in VTY cfg
Having extended-timestamp allows for easier matching between osmo-*.log
files and pcap traces.

Change-Id: I98cdc0adc24edc966d5648d2c215c6ad7c749209
2019-06-03 17:59:42 +02:00
Pau Espin cb3d19f277 ttcn3-sgsn: Run log_merge.sh after tests
Change-Id: If03422bb8fb126fe6f204a4f8bc6edf0cbb7f194
2019-05-29 14:34:46 +00:00
Oliver Smith 61f2be7bd4 Fix git checkout for branches and commits
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
2019-05-22 11:18:56 +02:00
Harald Welte 06ac6e455e Revert "Simplify git checkout, allow branches and commits"
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
2019-05-21 17:53:11 +02:00
Alexander Couzens 73663b01f2 RFC: allow to set configuration and/or specific testcases
Allows to pass the configuration file and/or tests to
start-testsuite.sh.

This way a single test can be specified by the command line.

If this RFC gets accepted, I would convert all other Docker.files

Change-Id: I17e480321f1e7bfa287349f438ff6990e30f1114
2019-05-16 18:55:41 +02:00
Oliver Smith 26565bb729 Simplify git checkout, allow branches and commits
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
2019-05-07 10:24:52 +02:00
Harald Welte 7c53c9e60d Switch all osmo-*-master and ttcn3-*-test from jessie to stretch
Jessie will be EOL in June 2019, let's make the switch to stretch
before that.

Change-Id: I37a534d07081f3d321869c86d49d03171c8da0c6
2019-03-30 09:56:36 +00:00
Harald Welte cffe1022b5 print branch name and git commit hash during docker container build
This is quite useful when looking at jenkins logs to know which exact
version was built at the time.

Change-Id: Id52c382b454e2beecf46820752aeff15b2c1a0ae
2019-03-29 16:40:40 +00:00
Oliver Smith 6687896c64 ttcn3-*-test: don't hardcode /usr/local/bin/
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
2019-01-28 13:58:02 +01:00
Oliver Smith ccf62eb231 jenkins.sh: IMAGE_SUFFIX, docker_images_require()
Default value "master" of the IMAGE_SUFFIX environment variable can be
changed to "latest" to test the latest stable builds instead of the
nightly ones. Use docker_images_require() to make sure that the required
images are existing and up-to-date before running the tests.

Related: OS#3268
Change-Id: Idbb708ab16cb71bab5069127945b63388222369e
2018-10-26 10:19:05 +02:00
Alexander Couzens 9b6bfccdd7 ttcn3-sgsn-test: save the log file to appear in the artifacts.
The sgsn does not save anywhere it's logfile.

Change-Id: Ie06d0ad6f980e5800f65a128cd33d6937c47afa9
2018-09-28 23:30:24 +00:00
Harald Welte ff3dc6e45f ensure well-formed config files
Change-Id: Id687e63c418e2e955ccbb92f2420a80fc0704ea4
2018-09-26 09:27:38 +00:00
Oliver Smith 7ed7a2bdd2 Fix "'laforge/debian-jessie-build' not found"
Instead of hardcoding laforge's username in all FROM statements in the
Dockerfiles, make use of the USER variable (as passed through by the
"make/Makefile" with "docker build --build-arg USER=..."). Thanks to
fixeria for proposing this fix!

This requires running docker-ce, old versions of docker (such as the
one in the official repositories of the latest Fedora) don't support
variables in the FROM line. But docker-ce can be installed after
adding docker's 3rd party repositories.

Closes: OS#3457

Change-Id: Ic5f11c8a4e247f632cb6aea6d147e94c53e0130f
2018-09-06 15:17:06 +02:00
Alexander Couzens 9fa09ddc2f ttcn3-sgsn-tests: synchronize module parameters with ttcn3
The module parameters changes in ttcn3 I3448fe837eaa8efab65dccc32bacaaacd73a2f09

Change-Id: I64408b2095fb2aea24c0306673aa40279ea9f75f
2018-08-28 17:17:39 +00:00
Alexander Couzens 5479348532 SGSN_Tests: fix module parameters
ttcn commit I9128f9ad5c372779c38799269393137ba52576cd moves the
modules parameters from NS_Emulation to SGSN_Tests.

Change-Id: I8d46c37b9c932582fe94e670d9347209bb599192
2018-08-13 17:48:29 +02:00
Pau Espin 618505f98f ttcn3-*: Merge logfiles no matter resolution of tests
Previous to this commit, log messages were not being merged if tests
were resolved as failed (test-suite.sh ending with exit code != 0),
which can happen if at least one test failed.

Change-Id: If293fc2d3182ef2a7b997faa8b41129a9dd89c45
2018-07-06 14:50:47 +02:00
Neels Hofmeyr 2f61bf81e9 jenkins.sh: have one common function to collect logs
To remove code dup and prepare a change to where logs are written, add
collect_logs() to jenkins_common.sh and call that from each jenkins.sh after
the tests are done.

The 'rm -rf' is already done before a test starts. No need to do that again
after each test.

Change-Id: I5d8472ec36b07c828685b1bd7718e31392d168a3
2018-04-24 13:46:05 +00:00
Harald Welte 67c306a8df ttcn3-*-test: Remove cherry-pick of CCM related HACK
This is no longer needed as the fix for https://osmocom.org/issues/2718
has been merged to master of osmo-ttcn3-hacks

Change-Id: Ia0c1c134405fdbce1c65059d705827f1a643e774
Related: OS#2718
2018-04-17 21:58:08 +02:00
Harald Welte 2f5541b134 ttcn*test: use log_merge.sh to generate per-testcase merged logs 2018-03-18 13:33:39 +00:00
Harald Welte f08dadbf5f Add *.control to the [EXECUTE] statement of all ttcn3 test suites
In osmo-ttcn3-hacks, we have removed the *.control from the *.default
files, so let's add it here in the config files.  You can now change
the tests to be executed by simply editing the config here.
2018-03-13 13:26:51 +00:00
Pau Espin 51deedd956 *-test: jenkins.sh: Print junit output at the end 2018-02-19 11:59:00 +01:00
Harald Welte 24829d6f78 Add ttcn3-sgsn-test 2018-02-18 12:47:16 +01:00