<p>Pau Espin Pedrol <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/11857">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Neels Hofmeyr: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">suites: gprs: Add test to verify CS paging works while MS is GPRS attached<br><br>Related: OS#2204<br>Change-Id: If2844d78b52eda59c1f6d9e18363b858f2b5f007<br>---<br>A suites/gprs/cs_paging_gprs_active.py<br>M suites/gprs/suite.conf<br>2 files changed, 88 insertions(+), 1 deletion(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/suites/gprs/cs_paging_gprs_active.py b/suites/gprs/cs_paging_gprs_active.py</span><br><span>new file mode 100755</span><br><span>index 0000000..fc0e160</span><br><span>--- /dev/null</span><br><span>+++ b/suites/gprs/cs_paging_gprs_active.py</span><br><span>@@ -0,0 +1,83 @@</span><br><span style="color: hsl(120, 100%, 40%);">+#!/usr/bin/env python3</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Following test verifies CS paging works when MS is GPRS  attached.</span><br><span style="color: hsl(120, 100%, 40%);">+# See OS#2204 for more information.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+from osmo_gsm_tester.testenv import *</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+hlr = suite.hlr()</span><br><span style="color: hsl(120, 100%, 40%);">+bts = suite.bts()</span><br><span style="color: hsl(120, 100%, 40%);">+pcu = bts.pcu()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_msc = suite.mgw()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_bsc = suite.mgw()</span><br><span style="color: hsl(120, 100%, 40%);">+stp = suite.stp()</span><br><span style="color: hsl(120, 100%, 40%);">+ggsn = suite.ggsn()</span><br><span style="color: hsl(120, 100%, 40%);">+sgsn = suite.sgsn(hlr, ggsn)</span><br><span style="color: hsl(120, 100%, 40%);">+msc = suite.msc(hlr, mgw_msc, stp)</span><br><span style="color: hsl(120, 100%, 40%);">+bsc = suite.bsc(msc, mgw_bsc, stp)</span><br><span style="color: hsl(120, 100%, 40%);">+ms_mo = suite.modem()</span><br><span style="color: hsl(120, 100%, 40%);">+ms_mt = suite.modem()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+bsc.bts_add(bts)</span><br><span style="color: hsl(120, 100%, 40%);">+sgsn.bts_add(bts)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+print('start network...')</span><br><span style="color: hsl(120, 100%, 40%);">+hlr.start()</span><br><span style="color: hsl(120, 100%, 40%);">+stp.start()</span><br><span style="color: hsl(120, 100%, 40%);">+ggsn.start()</span><br><span style="color: hsl(120, 100%, 40%);">+sgsn.start()</span><br><span style="color: hsl(120, 100%, 40%);">+msc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_msc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+mgw_bsc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+bsc.start()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+bts.start()</span><br><span style="color: hsl(120, 100%, 40%);">+wait(bsc.bts_is_connected, bts)</span><br><span style="color: hsl(120, 100%, 40%);">+print('Waiting for bts to be ready...')</span><br><span style="color: hsl(120, 100%, 40%);">+wait(bts.ready_for_pcu)</span><br><span style="color: hsl(120, 100%, 40%);">+pcu.start()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+hlr.subscriber_add(ms_mo)</span><br><span style="color: hsl(120, 100%, 40%);">+hlr.subscriber_add(ms_mt)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ms_mo.connect(msc.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+ms_mt.connect(msc.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+ms_mo.attach()</span><br><span style="color: hsl(120, 100%, 40%);">+ms_mt.attach()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ms_mo.log_info()</span><br><span style="color: hsl(120, 100%, 40%);">+ms_mt.log_info()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+print('waiting for modems to attach...')</span><br><span style="color: hsl(120, 100%, 40%);">+wait(ms_mo.is_connected, msc.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+wait(ms_mt.is_connected, msc.mcc_mnc())</span><br><span style="color: hsl(120, 100%, 40%);">+wait(msc.subscriber_attached, ms_mo, ms_mt)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+print('waiting for modems to attach to data services...')</span><br><span style="color: hsl(120, 100%, 40%);">+wait(ms_mo.is_attached)</span><br><span style="color: hsl(120, 100%, 40%);">+wait(ms_mt.is_attached)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# We need to use inet46 since ofono qmi only uses ipv4v6 eua (OS#2713)</span><br><span style="color: hsl(120, 100%, 40%);">+ctx_id_v4_mo = ms_mo.activate_context(apn='inet46', protocol=ms_mo.CTX_PROT_IPv4)</span><br><span style="color: hsl(120, 100%, 40%);">+ctx_id_v4_mt = ms_mt.activate_context(apn='inet46', protocol=ms_mt.CTX_PROT_IPv4)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+assert len(ms_mo.call_id_list()) == 0 and len(ms_mt.call_id_list()) == 0</span><br><span style="color: hsl(120, 100%, 40%);">+mo_cid = ms_mo.call_dial(ms_mt)</span><br><span style="color: hsl(120, 100%, 40%);">+mt_cid = ms_mt.call_wait_incoming(ms_mo)</span><br><span style="color: hsl(120, 100%, 40%);">+print('dial success')</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+assert not ms_mo.call_is_active(mo_cid) and not ms_mt.call_is_active(mt_cid)</span><br><span style="color: hsl(120, 100%, 40%);">+ms_mt.call_answer(mt_cid)</span><br><span style="color: hsl(120, 100%, 40%);">+wait(ms_mo.call_is_active, mo_cid)</span><br><span style="color: hsl(120, 100%, 40%);">+wait(ms_mt.call_is_active, mt_cid)</span><br><span style="color: hsl(120, 100%, 40%);">+print('answer success, call established and ongoing')</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+sleep(5) # maintain the call active for 5 seconds</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+assert ms_mo.call_is_active(mo_cid) and ms_mt.call_is_active(mt_cid)</span><br><span style="color: hsl(120, 100%, 40%);">+ms_mt.call_hangup(mt_cid)</span><br><span style="color: hsl(120, 100%, 40%);">+wait(lambda: len(ms_mo.call_id_list()) == 0 and len(ms_mt.call_id_list()) == 0)</span><br><span style="color: hsl(120, 100%, 40%);">+print('hangup success')</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ms_mo.deactivate_context(ctx_id_v4_mo)</span><br><span style="color: hsl(120, 100%, 40%);">+ms_mt.deactivate_context(ctx_id_v4_mt)</span><br><span>diff --git a/suites/gprs/suite.conf b/suites/gprs/suite.conf</span><br><span>index 3d4fe48..d40c1e5 100644</span><br><span>--- a/suites/gprs/suite.conf</span><br><span>+++ b/suites/gprs/suite.conf</span><br><span>@@ -4,6 +4,10 @@</span><br><span>   bts:</span><br><span>   - times: 1</span><br><span>   modem:</span><br><span style="color: hsl(0, 100%, 40%);">-  - times: 4</span><br><span style="color: hsl(120, 100%, 40%);">+  - times: 2</span><br><span style="color: hsl(120, 100%, 40%);">+    features:</span><br><span style="color: hsl(120, 100%, 40%);">+    - gprs</span><br><span style="color: hsl(120, 100%, 40%);">+    - voice</span><br><span style="color: hsl(120, 100%, 40%);">+  - times: 2</span><br><span>     features:</span><br><span>     - gprs</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/11857">change 11857</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/11857"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-gsm-tester </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: If2844d78b52eda59c1f6d9e18363b858f2b5f007 </div>
<div style="display:none"> Gerrit-Change-Number: 11857 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: Pau Espin Pedrol <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder (1000002) </div>
<div style="display:none"> Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Pau Espin Pedrol <pespin@sysmocom.de> </div>