diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2018-11-21 13:55:47 +0100 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2018-11-23 15:08:19 +0000 |
commit | dcc67fca3e87bbcc7e276e298c02870128ce3a9c (patch) | |
tree | 485db28344659ce94222be8869c4ecdc9dac2296 /suites | |
parent | d7fa036102e38acd7ac7cc5097a77ec561e2e8c0 (diff) |
suites: gprs: Add test to verify CS paging works while MS is GPRS attached
Related: OS#2204
Change-Id: If2844d78b52eda59c1f6d9e18363b858f2b5f007
Diffstat (limited to 'suites')
-rwxr-xr-x | suites/gprs/cs_paging_gprs_active.py | 83 | ||||
-rw-r--r-- | suites/gprs/suite.conf | 6 |
2 files changed, 88 insertions, 1 deletions
diff --git a/suites/gprs/cs_paging_gprs_active.py b/suites/gprs/cs_paging_gprs_active.py new file mode 100755 index 0000000..fc0e160 --- /dev/null +++ b/suites/gprs/cs_paging_gprs_active.py @@ -0,0 +1,83 @@ +#!/usr/bin/env python3 + +# Following test verifies CS paging works when MS is GPRS attached. +# See OS#2204 for more information. + +from osmo_gsm_tester.testenv import * + +hlr = suite.hlr() +bts = suite.bts() +pcu = bts.pcu() +mgw_msc = suite.mgw() +mgw_bsc = suite.mgw() +stp = suite.stp() +ggsn = suite.ggsn() +sgsn = suite.sgsn(hlr, ggsn) +msc = suite.msc(hlr, mgw_msc, stp) +bsc = suite.bsc(msc, mgw_bsc, stp) +ms_mo = suite.modem() +ms_mt = suite.modem() + +bsc.bts_add(bts) +sgsn.bts_add(bts) + +print('start network...') +hlr.start() +stp.start() +ggsn.start() +sgsn.start() +msc.start() +mgw_msc.start() +mgw_bsc.start() +bsc.start() + +bts.start() +wait(bsc.bts_is_connected, bts) +print('Waiting for bts to be ready...') +wait(bts.ready_for_pcu) +pcu.start() + +hlr.subscriber_add(ms_mo) +hlr.subscriber_add(ms_mt) + +ms_mo.connect(msc.mcc_mnc()) +ms_mt.connect(msc.mcc_mnc()) +ms_mo.attach() +ms_mt.attach() + +ms_mo.log_info() +ms_mt.log_info() + +print('waiting for modems to attach...') +wait(ms_mo.is_connected, msc.mcc_mnc()) +wait(ms_mt.is_connected, msc.mcc_mnc()) +wait(msc.subscriber_attached, ms_mo, ms_mt) + +print('waiting for modems to attach to data services...') +wait(ms_mo.is_attached) +wait(ms_mt.is_attached) + +# We need to use inet46 since ofono qmi only uses ipv4v6 eua (OS#2713) +ctx_id_v4_mo = ms_mo.activate_context(apn='inet46', protocol=ms_mo.CTX_PROT_IPv4) +ctx_id_v4_mt = ms_mt.activate_context(apn='inet46', protocol=ms_mt.CTX_PROT_IPv4) + +assert len(ms_mo.call_id_list()) == 0 and len(ms_mt.call_id_list()) == 0 +mo_cid = ms_mo.call_dial(ms_mt) +mt_cid = ms_mt.call_wait_incoming(ms_mo) +print('dial success') + +assert not ms_mo.call_is_active(mo_cid) and not ms_mt.call_is_active(mt_cid) +ms_mt.call_answer(mt_cid) +wait(ms_mo.call_is_active, mo_cid) +wait(ms_mt.call_is_active, mt_cid) +print('answer success, call established and ongoing') + +sleep(5) # maintain the call active for 5 seconds + +assert ms_mo.call_is_active(mo_cid) and ms_mt.call_is_active(mt_cid) +ms_mt.call_hangup(mt_cid) +wait(lambda: len(ms_mo.call_id_list()) == 0 and len(ms_mt.call_id_list()) == 0) +print('hangup success') + +ms_mo.deactivate_context(ctx_id_v4_mo) +ms_mt.deactivate_context(ctx_id_v4_mt) diff --git a/suites/gprs/suite.conf b/suites/gprs/suite.conf index 3d4fe48..d40c1e5 100644 --- a/suites/gprs/suite.conf +++ b/suites/gprs/suite.conf @@ -4,6 +4,10 @@ resources: bts: - times: 1 modem: - - times: 4 + - times: 2 + features: + - gprs + - voice + - times: 2 features: - gprs |