Commit Graph

895 Commits

Author SHA1 Message Date
Pau Espin b27827b7bc util: use launch_sync API instead of manual wait
The API is available so no need to manually craft all steps in there.

Change-Id: I4afedb185f6e864929155981e8a2ec2df90110c3
2019-04-04 15:59:10 +02:00
Pau Espin e159cd206d process: Prevent NetNSProcess alive forever after SIGKILL
NetNSProcess are run in the following process tree:
osmo-gsm-tester -> sudo -> bash (osmo-gsm-tester_netns_exec.sh) ->
tcpdump.

Lots of osmo-gsm-tester_netns_exec.sh scripts with tcpdump child process
were spotted in prod setup of osmo-gsm-tester. Apparently that happens
because sometimes tcpdump doesn't get killed in time with SIGTERM and
SIGINT, and as a result SIGKILL is sent by osmo-gsm-tester as usual
termination procedure. When SIGKILL is sent, the parent sudo process is
instantly killed without possibility to forward the signal to its
children, leaving the bash script and tcpdump alive.

In order to fix it, catch SIGKILL for this process class and send
instead SIGUSR1. Then, modify the script under sudo to handle SIGUSR1 as
if it was a SIGKILL towards its children to make sure child process in
the netns terminates.

Change-Id: I2bf389c47bbbd75f46af413e7ba897be5be386e1
2019-04-03 17:53:57 +02:00
Pau Espin 17a4ed9029 process: add signal to NetNSProcess kill path
This allows to easily differentiate different calls to kill in order to
terminate the process when looking at the logs.

Change-Id: Ida88f2674b0ed1802f20c519aa4e3cbe81e0def8
2019-04-03 17:10:33 +02:00
Pau Espin 9e2ef07e04 default-suites.conf: Add tests for OC2G
Change-Id: I5599c86565ebb6d7d6931d36fd49e57fe2020d1f
2019-03-27 14:00:55 +01:00
Pau Espin 30fd9fa728 ttcn3: Enable tests against O2CG
Change-Id: Ie42f9144c6fa5cbee71e3f0b97d60c295f5f531e
2019-03-27 13:50:41 +01:00
Pau Espin feb66e714a Integrate osmo-{bts,pcu}-oc2g
Change-Id: I446e27039f75e63c2870d751c190a4fd76947000
2019-03-27 13:50:41 +01:00
Pau Espin d581010568 contrib: jenkins-build-osmo-pcu-oc2g: Enable oc2gbts-phy
Depends on osmo-pcu Change-Id I7cd89a549c9463e81893ca7dd925299f728e4453.

Change-Id: I1384f4adeca7583e48dd94fcb09a1b58d108f1de
2019-03-25 16:27:40 +01:00
Pau Espin 8369cc321b contrib: Use proper SDK for OC2G builds
Binaries produced by sysmobts SDK are not compatible with OC2G.

Change-Id: I5adde9cf8a5f84cfc4b6fc4d4def3836444929ec
2019-03-15 20:16:14 +00:00
Holger Hans Peter Freyther c02b96e77b nitb_netreg_mass: Provide 100 subscribers
Change-Id: I386885f4179d4fc2df23cc48cd1eda850b5a990b
2019-03-07 10:05:48 +00:00
Holger Hans Peter Freyther 337141fc1b nitb_netreg_mass: Add code to declare a run successful/failure
Change-Id: If26047f0635db8c7209af143fbd1da4c9b2312d1
2019-03-07 10:05:48 +00:00
Holger Hans Peter Freyther 5e67ed467c nitb_netreg_mass: Allow a suite to configure num subscriber
Remove hardcoded configuration and replace it with a reservation in
the suite.

Change-Id: Ic9fd560c2924731e4fd6eea5aaf3ad565cb4ef52
2019-03-07 09:40:42 +00:00
Holger Hans Peter Freyther 10501ccc8e resource: Add a mobile resource for the virtual test
Add a new resource and make a reservation in the suite.

Change-Id: Ic26aa63cad62323bb85f952640672eb28af0eadc
2019-03-07 09:39:39 +00:00
Pau Espin 8910fbb9a8 resources.conf.prod: Add dev_args to select specific Lime device
Change-Id: I6ef234edb06031644758174e93a9d3817d0acc1f
2019-03-06 18:31:47 +01:00
Pau Espin e02158fd16 Log signals from VoiceCall dbus objects
Change-Id: I0def02b9063f75ec32c8b9382bdb12d65e1fb9eb
2019-03-05 20:29:19 +01:00
Holger Hans Peter Freyther 48c83a8939 resource: Introduce a base class for the modem
Extract IMSI, KI and authentication algorithm into a base class.

Change-Id: Id547cdcc241a307a2ea59b5fbac6b8d7a9d95639
2019-03-05 13:19:41 +00:00
Holger Hans Peter Freyther 7424301034 resource: Use a factory to initiate a modem
Change-Id: I4baa791c92196cda477b2d969d4f67dfbe1152af
2019-03-05 09:46:57 +00:00
Holger Freyther 44128f91d2 Revert "nitb_netreg_mass: Add code to declare a run successful/failure"
This reverts commit b4ad8d7243.

Reason for revert: There was a true dependency on earlier changes (len(mobiles)). Rollback until the resource configuration is merged.

Change-Id: If0f5e24cec2f0d1d144b464180b341cacbdf0ebb
2019-03-05 09:44:37 +00:00
Holger Hans Peter Freyther 54b4fa928e process: Make killing processes non-sequential
Change-Id: Icf1ac6774ea11880542012fd6c6ac73302bb74f5
2019-03-05 03:53:10 +00:00
Holger Hans Peter Freyther b4ad8d7243 nitb_netreg_mass: Add code to declare a run successful/failure
Change-Id: I49a821e8e4656466259e519ef901726cbb76ef86
2019-03-05 03:07:41 +00:00
Holger Hans Peter Freyther 93a89424d0 resource: Introduce a type attribute to the resource definition
Change-Id: Ie1fd10ec878311b7347118badb1b9dce5b49e976
2019-03-05 02:52:44 +00:00
Holger Hans Peter Freyther 0d714c976d process: Make sending signals (kill) externally visible
Change-Id: I87bba8a8c467ba5936e0b6604d8abb9432e5e7a8
2019-03-04 06:53:51 +00:00
Holger Hans Peter Freyther 20b52c1ee3 process: Speed-up terminating lots of processes by batching it
Introduce a strategy to terminate processes and begin with an
implementation for parallel (that has no degree of parallelism
right now).

Change-Id: I7dd4a7e26aca758198aa08a434eaf5f3f5af632d
2019-03-04 06:53:51 +00:00
Holger Hans Peter Freyther f922a998cb pyflakes: Rename local variable to not shadow import
Change-Id: Ib70130dbbeeeb9813eaea707bf66f1db91088b92
2019-02-27 08:09:21 +00:00
Holger Hans Peter Freyther 1ea4e52f9f pyflakes: Remove occurrences of using undefined variables
Mention the attribute right away and remove a method that looks
to have been broken (more vs. more_rules).

Change-Id: Iba18a96ff804780e66c69b459e112f9d42b7b2ff
2019-02-27 08:09:21 +00:00
Holger Hans Peter Freyther 34dce0edb1 pyflakes: Remove assigned but unread variables
Change-Id: Ie257ac051739ea6f846d1aac2c8f778638b5f8a6
2019-02-27 08:09:21 +00:00
Holger Hans Peter Freyther 91067239c1 pyflakes: Remove imports of unused modules
Change-Id: I7496030e5857078cd66a36a5e46c9a50217ce6e3
2019-02-27 08:09:17 +00:00
Holger Hans Peter Freyther 77d6d55e90 ms_driver: Rename method to hopefully be more clear
This is finding min/max in a dataset. Call it like this and update
the caller.

Change-Id: Ic7f5cd34639f897e460ca1edcb4f9b6df44683e9
2019-02-23 15:44:37 +00:00
Pau Espin bf90917e9f contrib: Add script to build osmo-bts and osmo-pcu for oc2g
Change-Id: I7cc8937fb3e6c5d74b56cb049afb293b0b7ed25e
2019-02-21 19:26:13 +01:00
Holger Hans Peter Freyther d3d178fc41 jenkins: Fix the test for journalctl if it isn't present
test -x for an empty string is still true. Check if the result of
command is empty or not. It seems to work for the negative case now.

Change-Id: I7e4326df155dae776481bf7824694b3fb47abcad
2019-02-21 13:19:16 +00:00
Holger Hans Peter Freyther 16e39e877d jenkins: Only run journalctl if it is available on the machine
It's not common to run journald inside containers and the journalctl
command is not installed. Don't attempt to run it.

Change-Id: I9dee3cb0d0ca203da77dfa1a793a4e4e5f8593c6
2019-02-21 10:13:49 +00:00
Holger Hans Peter Freyther ae0dae821c modem: Do not connect to the systembus until a modem is in use
In case of the "virtual" tests we:

* Don't use ofono based modems (they are physical for now).
* Run in an environment that doesn't naturally run a dbus-daemon

Modify the code to memoize the bus by hand.

Change-Id: Ieae4bf819903402f7f715eb489e0a96ed59dc3f8
2019-02-20 20:38:46 +00:00
Holger Hans Peter Freyther c1d705f28e resources: Introduce a separate resource file for the virtual tests
Create a dedicated resources file for running "virtual" tests. If all
components run on the same machine we can avoid having to manage
separate network.

Change-Id: I0da1267a71dc06fd06f3cf4fc3dcfefda4bcf40b
2019-02-20 20:38:21 +00:00
Holger Hans Peter Freyther 3c2dd3e13b doc: Update list of dependencies and add pysispm one
Change-Id: I05cc63bfd627bfec83b50fe89fe8004d130384e6
2019-02-19 09:34:09 +00:00
Pau Espin 4d7f7709d5 modem: Log once dbus returns call was answered
Change-Id: Ia277b2eecdbf9969d77a688638837f9d9e1a44b6
2019-02-13 19:30:38 +01:00
Pau Espin 32e9d8c26e modem: print call ID during log of call state
Change-Id: I33d0153b3e89aa1924129b8068ef068c08059958
2019-02-13 17:40:31 +01:00
Holger Hans Peter Freyther 82feeff1c5 mobile: Switch from removed cli option to vty port
Bind the mobile's to a random (chosen by the kernel) VTY port. The
CLI option was removed and I added a new VTY command to be able to
specify the port in addition to the address.


Change-Id: Ie40a2ba156ba5674d37a15eb30e5b2527e75fbe7
2018-12-30 12:31:29 +00:00
Holger Hans Peter Freyther 4db8bb68c1 osmo-bts: Package the osmo-bts-virtual binary for the ms_driver
Change-Id: Id6db5d0bea5262075c3e06fbb0ccfef86afa85e4
2018-12-15 14:37:40 +00:00
Holger Hans Peter Freyther d2db10d80e ms_driver: Add a virtual bts and make use of it
It's very close to the osmo-bts-trx but without osmo-trx. Modify
the suite to make use of this BTS.

Change-Id: I9f5a2501eb4473ccf2287c902ee207c6a45a1bc5
2018-12-13 10:17:02 +00:00
Oliver Smith 52e5797b3d contrib/jenkins*: build and publish manuals
Add contrib/jenkins-build-manuals.sh, which clones or updates
osmo-gsm-manuals and builds the manuals. When the environment variable
PUBLISH=1 is set, it also uploads them.

Call jenkins-build-manuals.sh from jenkins-run.sh, without PUBLISH=1,
so the manuals get build-tested in the osmo-gsm-tester_gerrit job.

A new job master-osmo-gsm-tester will be added in the future, which
will run PUBLISH=1 jenkins-build-manuals.sh.

The jenkins-build-manuals.sh script does not use the osmo-ci.git
scripts for installing dependencies and cleaning up the workspace.
These scripts are not available on the node, which runs the
osmo-gsm-tester_gerrit job, and it is not trivial to add just them
(without building the osmo-ci Docker image etc.). The only dependency
is osmo-gsm-manuals, and it does not need to be compiled, so it seemed
to be the most maintainable solution to implement the clone/update and
clean up in a few lines of shell code instead.

Related: OS#3385
Change-Id: I4ebfe12a164f807b63bc897aff44db83fc0705bd
2018-12-10 12:57:04 +01:00
Pau Espin ffe1b08c46 test: cs_paging_gprs_active: Make sure gprs data (TBF) is ongoing
PACCH is used for paging only if the MS is actively using a PDCH, and
the only way to be sure that's happening is to place some data through
the GPRS path so MS has TBF in use when the call is placed.

Change-Id: Id29391d75101d94e2cd58f444b383f4c5217ab6a
2018-12-05 18:03:53 +01:00
Holger Hans Peter Freyther d51c2ea58d md_driver: Store the virtphy unix sockets in the temp directory
Storing them inside the testrun directory will most likely violate
the file length limit of the AF_UNIX files. This has happened on
the jenkins test run and can not be mitigated by picking shorter
paths in the code. We are already storing the event server in a
tmp directory and can add subdirs+files there.

Change-Id: I9ba4cd5c3e220ec10fc7c3160d7211daa821358f
2018-12-04 09:29:14 +00:00
Holger Hans Peter Freyther 6bf882260a ms_driver: Do the existance check with the path
Change the existance test to use the full path and not just the
binary name.

Change-Id: Ibe28514df03efb7c302ac30411761a8d1a6dcf5d
2018-12-04 09:29:14 +00:00
Holger Hans Peter Freyther 51ae2b5f5c Fix and use the right member variable
Change-Id: Ib5d50322ecd30c7724eef8452d22845450e9c633
2018-12-02 16:09:37 +00:00
Pau Espin 8028463e57 Add and use compatible scenario when testing IPA dynts with nanoBTS
nanoBTS doesn't support SDCCH8 in TS!=1 according to osmo-bsc code.
Let's use in this case TCH/H to make sure they are not used for the test
(since we require osmo-bsc to use full rate codecs for the call).

Change-Id: I37f3fe813d4074fbfe64ff3176048e7d25d470e2
2018-11-30 11:30:33 +00:00
Pau Espin 14e3e50b6e nanobts: Use -G parameter of ipaccess-config to avoid need to restart nanoBTS
If OML IP doesn't need to be changed because it's the one already
configured, then there's no need to set + restart the nanoBTS, which
means we can speed up a test running a nanoBTS by aprox 2 minutes per
nanoBTS used.

Requires osmo-bsc.git 5c2485dcff35996fce328798351af79c0ff4474c, which
fixes json generation in ipaccess-config after -G -q was implemented.

Related: OS#3624
Change-Id: I2871dee3de11512250445127f0b807a8990fd4c6
2018-11-29 17:14:44 +01:00
Oliver Smith 5ed6f6ce11 doc/manuals: integrate into this repository
Update .gitignore and make the manuals build without a toplevel
configure.ac file from autotools:

$ cd doc/manuals
$ make

Related: OS#3385
Change-Id: I5916bc7e656b508fc74917e79841ce7e1ee4981b
2018-11-29 10:42:34 +01:00
Oliver Smith 41af859af6 build manuals moved here from osmo-gsm-manuals.git
Moved to doc/manuals/, with full commit history, in preceding merge commit.
Now incorporate in the build system.

Build with:

$ autoreconf -fi
$ ./configure --enable-manuals
$ make

Shared files from osmo-gsm-manuals.git are found automatically if
- the repository is checked out in ../osmo-gsm-manuals; or
- if it osmo-gsm-manuals was installed with "make install"; or
- OSMO_GSM_MANUALS_DIR is set.

Related: OS#3385
Change-Id: I8a34871948425ea40f40dbb11a59806905e4bed1
2018-11-28 17:15:55 +01:00
Neels Hofmeyr 09b0b24093 Merge history from osmo-gsm-manuals.git 2018-11-28 17:15:42 +01:00
Pau Espin 4c47659fb5 OsmoGSMTester: Update import test->testenv
Latest changes in osmo-gsm-tester require this import change.

Depends on: osmo-gsm-tester I520bd046cb09042b5567d967f951f050e4e02e85

Change-Id: I0f7f7d0353014b7ef8a0c5a7707c91b2613be79a
2018-11-28 17:15:34 +01:00
Pau Espin e617d2a844 OsmoGsmTester: Put several permission categories under cat User Permission
Change-Id: Ie9f846af0311d768c5dd6f9da572c8f6482f4d39
2018-11-28 17:15:34 +01:00