Request "gsup.hlr" service right after creating subscriber from the home
HLR. "TC_MSLookup_mDNS_service_other_home" is similar, but does not query
the "gsup.hlr" service. The "gsup.hlr" service has a different code path
in OsmoHLR:
- it exists without being explicitly configured and returns the IP and
port of the HLR's own GSUP server
- the request is answered, even if the subscriber is not attached to the
HLR (for Location Update via proxy)
Related: OS#4380
Change-Id: Id567989e4be7ac2d3857d3ea61a1ca3a2401a8dc
Send an mslookup mDNS request to the home HLR, asking about a service
that is not "gsup.hlr". Hence the "_other" in the test name, service
"gsup.hlr" has different code paths, and related tests will be added in
follow-up patches.
This is the first test using MSLookup_mDNS_Emulation, so add related
test infrastructure.
Related: OS#4380
Depends: osmo-hlr I2fe453553c90e6ee527ed13a13089900efd488aa
Change-Id: Ia7f92d33691f910549353b16a7b0efc18e521719
Make it possible to do CS location update, not only PS. This is needed
for upcoming D-GSM related tests.
Related: SYS#4618
Change-Id: Idd699f054c9242614b9bea066428293f8b2da9c2
TC_gsup_sai_num_auth_vectors tests the GSUP IE
GSUP_IE_NUM_VECTORS_REQ which allows the client to
ask for a specific amount of auth tuples in a
Send Auth Info request.
Change-Id: I10a523cbaf08fe42924ffd0dc498496fdc76395f
In Change-Id I40c6cf7e28ad9331e6c27fe7acafa3f9e277eedf we introduced
a patch that verifies the AMF separation bit for 3G/3G vs 4G
authentication. However, the test ignored the fact that AUTN cannot
be present in pure 2G tuples.
This makes TC_gsup_sai pass again.
Change-Id: I9b61e62a58b583461dd5e67dd12119be282cae21
I found some of the tests hard to analyse when geting failures, because they
don't stop the test on failure. Spread some 'mtc.stop' so that the test stops
at the failed message instead of carrying on.
Change-Id: I804aca84d0ccf4767a5c097cf6c882ccbd87c4e1
Test all possible code paths where a subscriber on demand can be
created:
* Check IMEI early
* Location Update
* Send Auth Info
Related: OS#2542
Change-Id: Id544fa906ad442c2bbbccff437c18d04ddccde2e
Create tests for most code paths of rx_check_imei_req() in hlr.c (except
for subscriber create on demand, this will be in an upcoming patch).
Add missing message types to GSUP_Types.ttcn, and adjust the IMEI and
IMEI_Result IEs for consistency with the existing IEs, and to make the
tests compile.
Related: OS#2541
Change-Id: I97c8462f0817149feadd0c4865e3df6c2af92a80
Allow to check if a certain pattern does not match the "show subscriber"
output. This will be used by upcoming tests for the check IMEI GSUP
message type, to check if the IMEI was not stored, depending on the
OsmoHLR configuration.
Change-Id: I176d8fd2ee74e1eb7ac797f931cd6005d398740f
Some of our files didn't have a copyright notice at all, let's add
it. Also, update the notices in other files and ensure a SPDX
identifier is present in all but the most trivial files.
Change-Id: If7fa19ce484b415bc645e39b3d0d666b44b5f0fd
In the most use cases of f_SS_expect() we are not interested in
GSUP_PDU returned by this function. Calling it without storing
the returned value causes TTCN-3 compiler to complain:
warning: The value returned by function
`@HLR_Tests.f_SS_expect' is not used
Let's make use of previously unused variable 'res', and save
the returned GSUP_PDU to make the TTCN-3 compiler happy.
Change-Id: Ifda42aa18af8076013b436364513296b2b008731
Both session state and session ID IEs are always being encoded
together by libosmocore's GSUP implementation. So, if a message
contains a session ID IE, session state IE shall also be there.
For some reason, the session state IE was missing in both
ts_GSUP_PROC_SS_ERR and tr_GSUP_PROC_SS_ERR templates. This
could led to incorrect matching in our test cases.
This change fixes both templates by adding the missing IE. Since
tr_GSUP_PROC_SS_ERR templete is used in HLR_Tests.ttcn, all the
affected matching statements were also corrected.
This correction doesn't affect successful test case executions,
because we don't test possible problematic situations yet. But
if something went wrong on the HLR side (i.e. SUT), the matching
statements wouldn't match the PROC_SS_ERR message correctly
and continue to wait until the guard timer is expired.
Change-Id: I44070396ce7119eab4608d9f9fb090bb223dfaa2
As at the moment, OsmoHLR doesn't support "structured" SS, such
requests are being rejected. This test case aims to verify that.
Change-Id: I147b919d0242b3b44e39a4587bf1b4660fa58bd2
Related: OS#3651
There is no need to pass session state from f_main_mo() to a
choosen EUSE handler (e.g. f_ss_echo), because a handler
itself is capable to extract the session state IE.
Change-Id: I1054baf3e7dafd05b797610b586e6202740f07b6
This function can now be called from anywhere to try and safely shutdown
a testcase. It is not optimal as we can't call "all component.stop" from
outside the mtc, but without any proper and orderly shutdown handling of
all our emulation components I believe this is the best we can do.
To use it:
import from Misc_Helpers all;
in your module and then call
Misc_Helpers.f_shutdown(__BFILE__, __LINE__);
You can also pass the function a verdict and a message and it will take care
of calling setverdict, but beware of the following:
While setverdict would accept any number of arguments as log message
and convert them to a log string f_shutdown expects one charstring.
It's possible to use the log2str function to use the log arguments in
setverdict for f_shutdown, for example
setverdict(fail, "Template didn't match: ", tmpl_foo);
would become
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, log2str("Template didn't match: ", tmpl_foo));
Change-Id: I84d1aa6732f6b748d2bfdeac8f6309023717f267
As OsmoHLR is getting support for external USSD Entities (EUSEs),
we have to implement this function in the test logic in order to
test it.
Change-Id: Ibab210b06abfd5a21e81c7f7fbe574c4f67414a0
Pass the CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT parameter to
the TELNET port by default. This allows tests to make progress
into an error handling path if they are started while the osmo-*
program they want to connect on VTY is not running.
Observed with osmo-ggsn tests, where if the one test runs
into a VTY connection failure the subsequent test would get
stuck forever in a map() call on the VTY TELNET port.
Teach the function f_vty_wait_for_prompt() about connection
reports by the TELNET module. We may now receive an integer which
represents the socket file descriptor for the telnet connection.
This case was not handled by the previous change made in
commit cb111b21ab. As a result,
BSC tests started failing with "VTY Timeout for prompt" because
the alt-statement in f_vty_wait_for_prompt() would not progress
past the integer sitting on the VTY port's receive queue.
Change-Id: I56925f93af6c55e93f3f417099db135744da6a40
Related: OS#3149
With this patch, I see all ttcn3-bsc-tests failing with
"Verdict: fail reason: VTY Timeout for prompt"
This reverts commit cb111b21ab.
Change-Id: I215d7ab5eee75cf6d3afaac760af64356c943140
Pass the CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT parameter to
the TELNET port by default. This allows tests to make progress
into an error handling path if they are started while the osmo-*
program they want to connect on VTY is not running.
Observed with osmo-ggsn tests, where if the one test runs
into a VTY connection failure the subsequent test would get
stuck forever in a map() call on the VTY TELNET port.
Change-Id: I9acf7793d5d68aec6d087cff254a10d8b673dab1
Related: OS#3149
Call mtc.stop after setverdict(fail), add reasons to most failures and
fail with verdict error for internal errors.
Change-Id: I9b618235939fa41160b9be6677b121963d3ec857
Going via GSUP_Emulation (rather than using GSUP_CodecPort directly)
adds many benefits, such as:
* ability to have multiple transactions in parallel
* no silent discard/ignore of unexpected GSUP messages, like those
for IMSIs we don't expect.
Change-Id: Id2ddd6b81c374ad6350b62fcc5442436757d66cd
as of Change-Id Change-Id: I4f51abdf44dfc62d7e8792341aad6dafe58923da,
osmo-hlr passes HLR_Tests.TC_gsup_sai_err_invalid_imsi
Change-Id: I72fb71806c72ce29e8c6c9b25723f02009463cec
'make clean' as generated by ttcn3_makefilegen removes all *.log files, which
of course cleans out expected-results.log, which should not happen. Since this
is a junit XML file, rename the suffix to .xml.
Change-Id: Ic334f6b758eef865e3a497aa430691a3ae696d25
With https://gerrit.osmocom.org/#/c/7685/ the test TC_vty_msisdn_isd
is now passing. Update expected log output accordingly.
Change-Id: Ie8cfbef5a0adcb927917b0623f89309479a60001
Depends: Iffe1d7afb9fc7dbae542f70bbf5391ddc08a14b4
Related: OS#2785
Check for reception of an Insert Subscriber Data with outdated MSISDN.
This happened to me while working on a fix for issue OS#2785, and it
seems to be an easy mistake implementations can make. Catch this
situation in the test and log an explicit message about the problem.
Related: OS#2785
Change-Id: Ib0809617cca621cc22f29b078828057fd49f27e5
Compare current test results to the expected results, and exit in error on
discrepancies.
Add compare-result.sh: (trivially) grep junit xml output to determine which
tests passed and which didn't, and compare against an expected-result.log,
another junit file from a previous run. Summarize and determine success.
Include an "xfail" feature: tests that are expected to fail are marked as
"xfail", unexpected failures as "FAIL".
In various subdirs, copy the current jenkins jobs' junit xml outputs as
expected-results.log, so that we will start getting useful output in both
jenkins runs and manual local runs.
In start-testsuite.sh, after running the tests, invoke the results comparison.
Due to the single-line parsing nature, the script so far does not distinguish
between error and failure. I doubt that we actually need to do that though.
Related: OS#3136
Change-Id: I87d62a8be73d73a5eeff61a842e7c27a0066079d
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
First of all, use one common place to define the gen_links() macro, in
gen_links.sh.inc.
In this new file, add a 'shift' to exclude the $DIR arg from also appearing in
$FILES.
This prevents the following wrong symlinks in the source dirs:
M3UA_CNL113537/src/src
MTP3asp_CNL113337/src/src
SCCP_CNL113341/src/src
Change-Id: Ia8493e77df1ba8723f2c5d2a49816247b0fb55f7
Don't exit too early: After sending ISD.resp we still need to wait
for the UL.res from the HLR before continuing processing.
Change-Id: Iab42a397cbca83b86fc8a6b26ae2d66abb81c187
This tests whether the HLR is sending an InsertSubscriberData to the VLR
of an active/registered subscriber after the MSISDN is updated in the
HLR.
Change-Id: I597a3c2d49aa6fa65007304105363a3e99fa4ae9
Related: OS#2785