Commit Graph

901 Commits

Author SHA1 Message Date
Pau Espin f0cbe0599b Revert "modem: workaround ofono crash"
We already updated our ofono branch to current master (after 1.28),
and this fix is not longer required, as stated in ticket OS#3064.

Related: OS#3064
This reverts commit f8d12196f0.

Change-Id: I884f6d4f3df4f3b4e2ac05e4dba2ad8704697521
2019-04-08 21:09:44 +02:00
Pau Espin 3a479c212d processes: Fix kill of processes run under sudo
sudo drops forwarding of signals sent by processes of the same
process group, which means by default will drop signals from
parent and children processes. By moving it to another group, we
will later be able to kill it.
Note: sudo documentation is wrong, since it states it only drops
signals from children.

See following link for more information:
https://stackoverflow.com/questions/34337840/cant-terminate-a-sudo-process-created-with-python-in-ubuntu-15-10

Change-Id: I25990234aaa496c501ff45ad7f7fd549d6f188da
2019-04-05 20:12:12 +02:00
Pau Espin a353457fd2 suites: gprs: Keep terminating all iperf3 processes if one fails to terminate
Change-Id: I0cc183529988463800e0d40c8cf3a4cea041031c
2019-04-05 12:45:31 +02:00
Pau Espin 0409655e64 process: Early return during process termination if no proc running
This avoids extra unneeded logging about killing with signal when
actually no signal is being sent.

Change-Id: I5b5dd78fe3301d8eef2ab93da3b37029268ae198
2019-04-04 17:48:30 +02:00
Pau Espin 806aae8830 suite: Make _processes an empty list during init time
It simplifies the code because we don't need to check if it is a list or
not.

Change-Id: I634901a1f4ba3a6b7294666012ea679ae148ff08
2019-04-04 17:44:37 +02:00
Pau Espin 4c8cd7b9a5 modem: Move modem iface to its netns before using it
We used to do that once after ofono startup for all iface
(modem-netns-setup.py), but then if a modem crashes the interface is
re-created on the default netns, and tests fail until manual re-run of
modem-netns-setup.py.

This way now we always make sure the iface is moved to the expected
netns before it is used.

Related: OS#3881
Change-Id: I506309c424aa46684c4516a1a0217343ecbf32c6
2019-04-04 16:10:14 +02:00
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