Commit Graph

881 Commits

Author SHA1 Message Date
Harald Welte 930d0a70e3 bsc: Fix tons of TTCN3 compiler warnings
Change-Id: I60dc054d19a249d46d44585c17626746c34f4b09
2018-03-23 12:32:00 +00:00
Harald Welte afec471557 sip: Add SIP_Emulation and first osmo-sip-connector test case
Change-Id: Ifd47b0d48c609b4a678ea47aa7f89f5c12e6c0d2
2018-03-22 21:16:42 +01:00
Harald Welte a63b91017a bsc: TC_assignment_codec_*: Verify RSL side codec/mode
Let's not only match if the BSSMAP ASSIGNMENT COMPL matches what codec
was requested in BSSMAP ASSIGNMENT CMD, but also verify that the
RSL side channel was activated with the right channel mode IE.

Change-Id: I6ef24b5b82a5c100ffffe056adadd26e69b968b9
2018-03-22 21:16:39 +01:00
Harald Welte ad2647b1b5 RSL_Emulation: Introduce LastActTable
The LastActTable stores a copy of the decoded RSL CHAN_ACT for
each channel number.  This can be used by a RSL_DchanHandler to
learn parameters of its own activation.

Change-Id: I629d66e27cbe4c8b02e704a7181b3bff843e9aa4
2018-03-22 21:16:33 +01:00
Stefan Sperling a2b5449f97 preserve uncommitted local changes in ttcn3 deps repositories
The previous Makefile rules would always overwrite uncommitted
local changes within repositories under the deps directory.

Let's assume that somebody who has local changes inside dependencies
knows what they are doing, and eliminate the risk of discarding
results of their work. Always skip repositories which contain
local changes. Only print a warning about such repositories.

Nothing changes for people who do not modify dependencies.

While testing this change, I noticed that the 'make distclean' target
was not reachable via 'make distclean', and I've fixed this as well.

Related: OS#3090
Change-Id: I0ee4ed70868b1c1efa39ad2bf200bf59ae2a2019
2018-03-22 12:56:54 +00:00
Philipp Maier 3716a5e364 BSC_Tests: split up f_mt_call and f_mo_call
The functions f_mt_call and f_mo_call establish a call, hold it
for 3 sec. and tear it down again. However, there may be test
situation where one wants to establish a call and then hold it
in order to perform other actions.

- split up the function into an _establish and _hangup part.
- add a replacement f_mt_call and f_mo_call function for the
  already existing testcases

Change-Id: I0da9cf64d10de4036eb037ef5e491bfe3088670b
2018-03-22 12:43:56 +01:00
Philipp Maier 8d540f0d4e BSC_Tests: remove obsolete VTY configuration
The settings concerning the IPA ping are a leftover from the
time where osmo-bsc used an IPA multiplex to support the the
SCCP lite A interface dialect. Since the related code is now
removed and osmo-bsc has been migrated to libosmo-sccp and
real AoIP interface, the configuration is no longer needed.

Change-Id: If67cdba2a043c5dbf23f998659c5000db924a7df
2018-03-21 23:57:30 +00:00
Harald Welte 60aa576a62 bsc: Add tests for assigning channels of all 5 codecs
This tests if the BSC is chosing the correct codec during the assignment
procedure.

Change-Id: Ia67c09fa725eff48ec56779f8674ddcaa08a8793
2018-03-21 22:48:18 +01:00
Harald Welte 6fa1f73346 MSC_ConnHdlr: Fix RlsChannelNr encoding in f_ChDesc2RslChanNr()
Make sure that the "tag" member of the RslChanelNr sub-structure
is always initialized.  This can be achieved without any extra code
by using the existing templates rather than hand-coding it.

Change-Id: I990ac8ac0ce51e11f1d683382c9fc2d4e1201aa7
2018-03-21 22:48:18 +01:00
Harald Welte e97eab4da4 bsc: Allow multiple subsequent calls of f_MscConnHdlr_init()
If the function was called once, don't start another VTY/telnet
component.

Change-Id: I47bdeb0417a6814ed3a3f5c0c5797bd1bc7a59ba
2018-03-21 22:48:18 +01:00
Harald Welte 3618d9d748 RSL: Add tr_RSL_ChanMode
Change-Id: I938b8898db1cd9638cf2858b3b593fa3fd39bf1e
2018-03-21 22:48:18 +01:00
Harald Welte dbd6b3f8ca Add BSSMAP SPDI definitions (speech/data indicator octets)
Change-Id: I3b81ea995667a4c9ffaf0f6891766d5b5af20636
2018-03-21 22:48:18 +01:00
Harald Welte a0630034bd bsc: Move TestHdlrParams to global per-component var g_pars
Change-Id: Ifd811bab7719b205a6174e3f6ba367643dfcb0ec
2018-03-21 22:48:14 +01:00
Harald Welte 458fd37fb9 don't use setverdict(inconc) anymore. Use 'fail' at all times
The problem is that Junit-XML doesn't have a mapping for inconclusive
results, and hence they show up as 'passed'.

By introducing this change, we make sure all tests that don't pass
show up as failed.

Change-Id: Iddd13d0055c91f9bd304ce9833fba0485abf4c4e
2018-03-21 11:27:48 +01:00
Stefan Sperling 61c11e9234 make management of osmo-ttcn3 git repository dependencies automatic
Add rules to deps/Makefile which ensure that 'make deps' puts the git
repositories of dependencies into a known state. In particular, set
the origin remote url to a known value, and check out a known commit
into the work tree.

This change ensures that ttcn3 builds run with 'make' will always use
correct versions of dependencies.

The 'make update-deps' now has the same effect as 'make deps', but it
is not yet removed in case build scripts rely on its existence.
The new 'make deps' target is fast enough to be run before every build.

Change-Id: I561eee7e12d976cd2265ba1bb8cd22dd8c1a0735
Related: OS#3090
2018-03-21 10:25:29 +00:00
Pau Espin feb6fa4413 log_merge.sh: Fix removal of log files
Files are not being expanded and fails:

Removing Input log files !!!
rm: cannot remove 'GGSN_Tests*.log': No such file or directory

Change-Id: I74e1f00c5e2b41668ebf2060f547fcc01212956d
2018-03-20 22:21:57 +01:00
Stefan Sperling 7b5e178290 make ttcn3 RNC paging tests pass
We do not implement paging by RNC. Fix test expectations accordingly.

Change-Id: I490fdaa9a73565c7e53e9a7eeafa0ee89c29b9d8
Related: OS#3073
2018-03-20 19:32:43 +01:00
Stefan Sperling 049a86ee1e add regression test for paging with unknown MCC/MNC
Verify that the BSC does not page a subscriber when a cell identifier
with an unknown MCC/MNC is provided by the MSC.

This test introduces a magic value which represents an unknown MCC/MNC
combination: MCC=678 MNC=f90

Change-Id: I0b0af14a9a1cb7e5a7a4ec12cc489473fd7ead02
Related: OS#2980
2018-03-20 15:51:00 +01:00
Philipp Maier 2a98a73be4 MSC_Tests: Test what happens when the DLCX is dropped
Test the reaction of osmo-msc when the DLCX at the end of a call
is not answered. Normally osmo-msc should time out and clear the
connection.

Change-ID osmo-msc:I78f1b6a9149488a4ad3f120c1e190a83c07d4b89 fixes
a regression that causes osmo-msc to segfault due to a use after
free. This testcase provokes the situation that leads to the
crash.

Change-Id: Ic124ea116496209f9a1d8e74ae3e3a36cf866db0
Related OS#2881
Related OS#2882
2018-03-19 16:12:31 +01:00
Philipp Maier cd66857671 cosmetic: correct indentation
Change-Id: I5fdb3d3db201e33456e03ffda55752efe4ada733
2018-03-19 16:12:31 +01:00
Harald Welte 5946b33e37 msc: wait for clear-command/complete/sccp-release
Not all tests were waiting/expecting the complete connection
shutdown, which results in the possibility for CLEAR CMD to arrive
during shutdown of the TITAN components and cause related errors.

Change-Id: I3a6c2e1f78b58f86ef84d4e323f432016a9afa7e
2018-03-18 23:33:42 +01:00
Harald Welte 04b5ec3ec7 fix regression in start-testsuite.sh (false shellcheck advice)
Change-Id: If05d13c0dedfedf517005e5418acc677ddc5e75f
2018-03-18 23:10:01 +01:00
Harald Welte 8734231093 Osmocom_VTY_Functions: Less logging verbosity
We don't need to print all prompts at start of every test case

Change-Id: I32d13b6f97f76ab6057cc213c1698c1eb97b9d90
2018-03-18 22:46:14 +01:00
Harald Welte bdb3c45a38 msc: Fix TC_cl3_{no,rnd}_payload
It may very well be that the MSC is first accepting the SCCP connection
and possibly sending a L3 (error) message before clearing/closing
the SCCP connection in case of errors in the COMPL L3 info.

Change-Id: I4cf08608413e9e1fb54848849baed79204f5dcd1
2018-03-18 22:46:14 +01:00
Harald Welte 96505f0fa0 BSSMAP_Emulation: handle zero-length L3 Info in f_bssap_l3_is_rr()
Change-Id: I5666911d67388347d04724635cf6f56e164a82f8
2018-03-18 22:37:34 +01:00
Harald Welte edbab816ba MSC_Tests: Fix to use 2-digit MNC
Until recently, OsmoMSC didn't distinguish 2-digit from 3-digit MNC,
and the config file states '42' as MNC while the tester used '042' in
several locations.  This causes almost all MSC_Tests fail with recent
osmo-msc.

Let's fix the tests to use '42', as they should always have.

Change-Id: Id02bfd74127cf5551923912934240035106a8a4e
2018-03-18 17:09:02 +01:00
Harald Welte ae5791defd start-testsuite.sh: Use shellcheck to harden script
Change-Id: Iaf887da7ad95ba8b1fe93fe6c29f0518961d2fbb
2018-03-18 15:22:39 +01:00
Harald Welte b537461a9c log_merge: Use shelcheck to harden the script
Change-Id: I1b3a35b5f7ada2dbb0401a5d90a77a53979e1183
2018-03-18 15:22:39 +01:00
Harald Welte e1f9b74602 log_merge: Fix input filename pattern
Change-Id: Iece1063403673a65007f41b6955e384a67acd45f
2018-03-18 15:22:39 +01:00
Harald Welte d45cef33b2 log_merge.sh: Use Module.Testcase like the pcap files
So far, pcap files used Module.Testcase.pcap while log files
used Module-Testcase.merged - let's unify this a bit.

Change-Id: I900ae41c3586bad41451bbcf481963384c6db061
2018-03-18 14:37:37 +01:00
Harald Welte e3cae215c9 Make Console Loggign a bit more verbose: add all USER "log()"
Change-Id: Ib5a78079dd31def39fb649a4e7dc027c53692abc
2018-03-18 14:16:37 +01:00
Harald Welte 5a78e109da add log_merge.sh script to generate per-testcase merged logs
Change-Id: Ife6153d2cc10f85e79e8df7a0e34a44648618976
2018-03-18 14:16:37 +01:00
Harald Welte 30010711f5 selftest: Remove unneeded broken symlink
Change-Id: I41f062e7658665e13d7ccbfecd6c5788d9b37a75
2018-03-18 12:52:23 +01:00
Harald Welte c87abfcb60 Remove M3UA/MTP3/SCCP code from this repo, use upstream repos
Originally, this code was not yet in an official upstream git repo.
However, it has been for many months, so let's remove our local copy
and use upstream git repositories like for all the other modules.

Change-Id: I2c616fb865df32cfec323d42e5d0d06de40c497b
2018-03-18 12:52:20 +01:00
Harald Welte 1d5a0ac2cf SCCP: Fix connection refusal table according to A.1/Q.713
There's one value (00010001) which is not listed in the table,
and hence the exisging code contains an off-by-one error due to
the missing line.

Change-Id: Ib2072a5fa3dabd66e0af53b77672f3a67d1e21f0
2018-03-17 22:25:31 +01:00
Harald Welte 12055479de bsc: fix shutdown
Change-Id: I23932927bd6bb9b5e447acbeafc2748a77513a0d
2018-03-17 20:30:39 +01:00
Harald Welte c306859aea bsc: Clear RSL port of all BTSs, not only those where we expect paging
After all, we don't want stale queue entries especially in those where we
are not expecting any paging.

Change-Id: Id876b68087ef13d58177027b7e664404e6b7b2d9
2018-03-17 20:30:39 +01:00
Harald Welte 24135bd27f bsc: Fix encoding of 2-digit MNC (paging tests)
The TTCN-3 data types are abstract data types,  Encoding artefacts
like 'F' for padding shouldn't be seen by the user.  Hence, let's
pass a 2-digit-long or 3-digit-long hexstring into the encoder
functions and let them determine if they should introduce any 'F'
for padding or not.

Change-Id: If4d3dfc16381493d7e710be746ed963975051fc1
2018-03-17 20:30:39 +01:00
Harald Welte 2caa106251 bsc: TC_paging_imsi_load: retransmit 'no paging buffer space'
If 5 seconds expire, the BSC will automatically re-fill a credit
of 20 paging slots [to work with BTSs where the paging buffer space
indications somehow are missing].  Let's make sure we don't hit
that case, even if the operating system sleeps for more than 5s
in this test .

Change-Id: I1c65096a685b70dc5183592382ec03553ba3628f
2018-03-17 18:21:48 +01:00
Harald Welte 3b57ab5d8f bsc: TC_paging_imsi_load: clear RSL queue before checking for paging
Change-Id: I27ce27b3f9e33e7696fee71032fe28ce9ea6327c
2018-03-17 18:21:48 +01:00
Harald Welte 8af4d797fa BSC_Tests: Fix TC_rsl_unknown_unit_id / TC_oml_unknown_unit_id
We are testing purely IPA/RSL/OML, and half-starting the BSSAP/M3UA
emulation is not a good idea, if it generatees events that we don't
catch

Change-Id: Ie90cd88e63ba6062e4ea2592045e9c97bc11887e
2018-03-17 18:21:48 +01:00
Harald Welte 6a12969ba8 BSC_Tests: Adjust TC_ctrl to match new '3 digit MNC situation
Change-Id: Ia19aeb1a7adf4f838bd289b0140a98501907d1ae
2018-03-17 18:21:48 +01:00
Harald Welte 557006605b bts: Add TC_sacch_multi_chg
Change-Id: I0b002488729f30cc8d0ff6f4ca16637c35ee956f
2018-03-17 18:21:48 +01:00
Harald Welte 075d84c895 bts: Add TC_sacch_multi to test for scheduling of multiple SI on SACCH
Change-Id: I2b9a68a0dc004c2ebc8a39f0c7b7aad690675a2d
2018-03-17 18:21:48 +01:00
Neels Hofmeyr 8df7d15a66 sgsn: test GMM Attach with 3-digit leading-zero MNC
Add general infrastructure to
- pass an MCC-MNC for BSSGP to use into f_init();
- verify that the Attach Accept PLMN matches the BSSGP one.

Add TC_attach_mnc3() to feed an MNC with three digits and a leading zero, to
verify the recent mnc3 patches. When testing against a libosmocore and
osmo-sgsn before mnc3, this results in:

Test case TC_attach_mnc3 finished. Verdict: fail reason: "mismatching PLMN in Attach Accept: 02342F; expected 023042"

With the current master branches the proper 3-digit MNC with leading zero is
fed back into the Attach Accept message.

Change-Id: I8901ec0b090e342ebb04a04f9d759fc46c7d9cab
2018-03-16 18:47:19 +01:00
Neels Hofmeyr cd11223c0f ignore results of .ttcnpp files
Add another macro ignore_pp_results to gen_links.sh.inc and call from all
gen_links.sh files, to add results of *.ttcnpp files, i.e. generated *.ttcn
files, to .gitignore.

Change-Id: Ic7fb176226771212d7700dafaf27ac71f12a4a61
2018-03-16 18:25:58 +01:00
Neels Hofmeyr 0ad8f7e098 gitignore Makefiles produced by 'make compile'
Change-Id: Ia71e76f0dce2ba2f9f5837f4d3d099dff92e8787
2018-03-16 18:25:58 +01:00
Neels Hofmeyr 310f5761d4 gitignore *.{cc,hh}, whitelist library/*.{cc,hh}
ttcn3 creates these files, and they clutter 'git status' output.

Change-Id: I6b7868ae71d3d3e710232b22a964f701ae8bd05d
2018-03-16 18:25:55 +01:00
Philipp Maier ade455b09c MGCP_Test: fix config file include path
The config file mistakenly references the defaults for the MSC.

- correct include path to use MGCP_Test.default

Change-Id: I12c6907717dfba1c31790a2b71f42e37743351af
2018-03-16 13:46:40 +01:00
Philipp Maier 94f3f1bfa6 MSC_Tests: Test SCCP clearing on release timeout
Provoke a timeout error in the MGCP FSM which then triggers a
release on the CC layer. Ignore this release and let the CC leyer
timeout. The MSC is expected to clear the SCCP connection.

Change-Id: If3e0bee11763f1c6b2cfae91f2a818ff7d0df9e7
Related: OS#2881
Related: OS#2882
2018-03-16 11:10:22 +01:00