<p>pespin <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/26130">View Change</a></p><div style="white-space:pre-wrap">Approvals:
laforge: Looks good to me, but someone else must approve
neels: Looks good to me, approved
Jenkins Builder: Verified
</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">pcu: Improve counter validation<br><br>Validate some new counters recently added in osmo-pcu.<br><br>Related: SYS#4878<br>Change-Id: I98e340053c91abdbf28c6e9641190bc78df35eff<br>---<br>M pcu/PCU_Tests.ttcn<br>1 file changed, 170 insertions(+), 5 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn</span><br><span>index 2daf89b..2cc6fad 100644</span><br><span>--- a/pcu/PCU_Tests.ttcn</span><br><span>+++ b/pcu/PCU_Tests.ttcn</span><br><span>@@ -2383,6 +2383,22 @@</span><br><span> var template (present) CodingScheme exp_dl_cs_mcs := cs_gprs_any;</span><br><span> </span><br><span> f_TC_mo_ping_pong_2phase_access(c_PCUIF_Flags_noMCS, ms_racap_gprs_def, exp_ul_cs_mcs, exp_dl_cs_mcs);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ if (mp_osmo_pcu_newer_than_0_9_0) {</span><br><span style="color: hsl(120, 100%, 40%);">+ var StatsDExpects expect := {</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests", mtype := "c", min := 1, max := 1 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.11bit", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.one_phase", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.two_phase", mtype := "c", min := 1, max := 1 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_UL", mtype := "c", min := 1, max := 1 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.one_phase", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.two_phase", mtype := "c", min := 1, max := 1 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.contention_resolution_success", mtype := "c", min := 1, max := 1 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_DL", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.pkt.ul_assignment", mtype := "c", min := 1, max := 1 }</span><br><span style="color: hsl(120, 100%, 40%);">+ };</span><br><span style="color: hsl(120, 100%, 40%);">+ f_statsd_expect(expect);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span> }</span><br><span> </span><br><span> testcase TC_mo_ping_pong_with_ul_racap_egprs_only() runs on RAW_PCU_Test_CT {</span><br><span>@@ -2390,6 +2406,21 @@</span><br><span> var template (present) CodingScheme exp_dl_cs_mcs := mcs_egprs_any;</span><br><span> </span><br><span> f_TC_mo_ping_pong_2phase_access(c_PCUIF_Flags_default, ms_racap_egprs_def, exp_ul_cs_mcs, exp_dl_cs_mcs);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (mp_osmo_pcu_newer_than_0_9_0) {</span><br><span style="color: hsl(120, 100%, 40%);">+ var StatsDExpects expect := {</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests", mtype := "c", min := 1, max := 1 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.11bit", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.one_phase", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.two_phase", mtype := "c", min := 1, max := 1 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_UL", mtype := "c", min := 1, max := 1 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.one_phase", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.two_phase", mtype := "c", min := 1, max := 1 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.contention_resolution_success", mtype := "c", min := 1, max := 1 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_DL", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.pkt.ul_assignment", mtype := "c", min := 1, max := 1 }</span><br><span style="color: hsl(120, 100%, 40%);">+ };</span><br><span style="color: hsl(120, 100%, 40%);">+ f_statsd_expect(expect);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span> }</span><br><span> </span><br><span> testcase TC_force_two_phase_access() runs on RAW_PCU_Test_CT {</span><br><span>@@ -2400,6 +2431,22 @@</span><br><span> var template (present) CodingScheme exp_dl_cs_mcs := cs_gprs_any;</span><br><span> </span><br><span> f_TC_mo_ping_pong_2phase_access(c_PCUIF_Flags_noMCS, ms_racap_gprs_def, exp_ul_cs_mcs, exp_dl_cs_mcs);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ if (mp_osmo_pcu_newer_than_0_9_0) {</span><br><span style="color: hsl(120, 100%, 40%);">+ var StatsDExpects expect := {</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests", mtype := "c", min := 1, max := 1 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.11bit", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.one_phase", mtype := "c", min := 1, max := 1 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.two_phase", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_UL", mtype := "c", min := 1, max := 1 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.one_phase", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.two_phase", mtype := "c", min := 1, max := 1 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.contention_resolution_success", mtype := "c", min := 1, max := 1 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_DL", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.pkt.ul_assignment", mtype := "c", min := 1, max := 1 }</span><br><span style="color: hsl(120, 100%, 40%);">+ };</span><br><span style="color: hsl(120, 100%, 40%);">+ f_statsd_expect(expect);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span> }</span><br><span> </span><br><span> /* Test scenario where SGSN wants to send some data against MS and it is</span><br><span>@@ -3054,6 +3101,7 @@</span><br><span> </span><br><span> /* Initialize the PCU interface abstraction */</span><br><span> f_init_raw(testcasename());</span><br><span style="color: hsl(120, 100%, 40%);">+ f_statsd_reset();</span><br><span> </span><br><span> /* Establish BSSGP connection to the PCU */</span><br><span> f_bssgp_establish();</span><br><span>@@ -3094,6 +3142,22 @@</span><br><span> /* ACK the ACK */</span><br><span> f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ if (mp_osmo_pcu_newer_than_0_9_0) {</span><br><span style="color: hsl(120, 100%, 40%);">+ var StatsDExpects expect := {</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests", mtype := "c", min := 1, max := 1 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.11bit", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.one_phase", mtype := "c", min := 1, max := 1 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.two_phase", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_UL", mtype := "c", min := 1, max := 1 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.one_phase", mtype := "c", min := 1, max := 1 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.two_phase", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.contention_resolution_success", mtype := "c", min := 1, max := 1 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_DL", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.pkt.ul_assignment", mtype := "c", min := 1, max := 1 }</span><br><span style="color: hsl(120, 100%, 40%);">+ };</span><br><span style="color: hsl(120, 100%, 40%);">+ f_statsd_expect(expect);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> f_shutdown(__BFILE__, __LINE__, final := true);</span><br><span> }</span><br><span> </span><br><span>@@ -3628,16 +3692,18 @@</span><br><span> var template GsmRrMessage imm_ass;</span><br><span> var template IaRestOctets rest;</span><br><span> var template EgprsUlAss ul_ass;</span><br><span style="color: hsl(120, 100%, 40%);">+ const integer num_req := 6;</span><br><span> </span><br><span> /* Initialize the PCU interface abstraction */</span><br><span> f_init_raw(testcasename());</span><br><span style="color: hsl(120, 100%, 40%);">+ f_statsd_reset();</span><br><span> </span><br><span> var EGPRSPktChRequest req := {</span><br><span> /* NOTE: other fields are set in the loop */</span><br><span> signalling := { tag := '110011'B }</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- for (var integer i := 0; i < 6; i := i + 1) {</span><br><span style="color: hsl(120, 100%, 40%);">+ for (var integer i := 0; i < num_req; i := i + 1) {</span><br><span> var BIT5 ext_ra := int2bit(f_rnd_int(32), 5);</span><br><span> req.signalling.random_bits := ext_ra;</span><br><span> </span><br><span>@@ -3649,6 +3715,21 @@</span><br><span> f_TC_egprs_pkt_chan_req(req, imm_ass);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ if (mp_osmo_pcu_newer_than_0_9_0) {</span><br><span style="color: hsl(120, 100%, 40%);">+ var StatsDExpects expect := {</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.11bit", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.one_phase", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.two_phase", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_UL", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.one_phase", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.two_phase", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.contention_resolution_success", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_DL", mtype := "c", min := 0, max := 0 }</span><br><span style="color: hsl(120, 100%, 40%);">+ };</span><br><span style="color: hsl(120, 100%, 40%);">+ f_statsd_expect(expect);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> f_shutdown(__BFILE__, __LINE__, final := true);</span><br><span> }</span><br><span> </span><br><span>@@ -3656,16 +3737,18 @@</span><br><span> var template GsmRrMessage imm_ass;</span><br><span> var template IaRestOctets rest;</span><br><span> var template EgprsUlAss ul_ass;</span><br><span style="color: hsl(120, 100%, 40%);">+ const integer num_req := 6;</span><br><span> </span><br><span> /* Initialize the PCU interface abstraction */</span><br><span> f_init_raw(testcasename());</span><br><span style="color: hsl(120, 100%, 40%);">+ f_statsd_reset();</span><br><span> </span><br><span> var EGPRSPktChRequest req := {</span><br><span> /* NOTE: other fields are set in the loop */</span><br><span> one_phase := { tag := '0'B }</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- for (var integer i := 0; i < 6; i := i + 1) {</span><br><span style="color: hsl(120, 100%, 40%);">+ for (var integer i := 0; i < num_req; i := i + 1) {</span><br><span> var BIT5 ext_ra := int2bit(f_rnd_int(32), 5);</span><br><span> var BIT5 mslot_class := int2bit(f_rnd_int(32), 5);</span><br><span> var BIT2 priority := substr(ext_ra, 0, 2);</span><br><span>@@ -3683,6 +3766,21 @@</span><br><span> f_TC_egprs_pkt_chan_req(req, imm_ass);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ if (mp_osmo_pcu_newer_than_0_9_0) {</span><br><span style="color: hsl(120, 100%, 40%);">+ var StatsDExpects expect := {</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.11bit", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.one_phase", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.two_phase", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_UL", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.one_phase", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.two_phase", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.contention_resolution_success", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_DL", mtype := "c", min := 0, max := 0 }</span><br><span style="color: hsl(120, 100%, 40%);">+ };</span><br><span style="color: hsl(120, 100%, 40%);">+ f_statsd_expect(expect);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> f_shutdown(__BFILE__, __LINE__, final := true);</span><br><span> }</span><br><span> </span><br><span>@@ -3690,16 +3788,18 @@</span><br><span> var template GsmRrMessage imm_ass;</span><br><span> var template IaRestOctets rest;</span><br><span> var template EgprsUlAss ul_ass;</span><br><span style="color: hsl(120, 100%, 40%);">+ const integer num_req := 6;</span><br><span> </span><br><span> /* Initialize the PCU interface abstraction */</span><br><span> f_init_raw(testcasename());</span><br><span style="color: hsl(120, 100%, 40%);">+ f_statsd_reset();</span><br><span> </span><br><span> var EGPRSPktChRequest req := {</span><br><span> /* NOTE: other fields are set in the loop */</span><br><span> two_phase := { tag := '110000'B }</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- for (var integer i := 0; i < 6; i := i + 1) {</span><br><span style="color: hsl(120, 100%, 40%);">+ for (var integer i := 0; i < num_req; i := i + 1) {</span><br><span> var BIT5 ext_ra := int2bit(f_rnd_int(32), 5);</span><br><span> var BIT2 priority := substr(ext_ra, 0, 2);</span><br><span> var BIT3 rand := substr(ext_ra, 2, 3);</span><br><span>@@ -3715,6 +3815,21 @@</span><br><span> f_TC_egprs_pkt_chan_req(req, imm_ass);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ if (mp_osmo_pcu_newer_than_0_9_0) {</span><br><span style="color: hsl(120, 100%, 40%);">+ var StatsDExpects expect := {</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.11bit", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.one_phase", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.two_phase", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_UL", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.one_phase", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.two_phase", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.contention_resolution_success", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_DL", mtype := "c", min := 0, max := 0 }</span><br><span style="color: hsl(120, 100%, 40%);">+ };</span><br><span style="color: hsl(120, 100%, 40%);">+ f_statsd_expect(expect);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> f_shutdown(__BFILE__, __LINE__, final := true);</span><br><span> }</span><br><span> </span><br><span>@@ -3767,11 +3882,13 @@</span><br><span> testcase TC_egprs_pkt_chan_req_reject_content() runs on RAW_PCU_Test_CT {</span><br><span> var template IARRestOctets rest;</span><br><span> var BIT5 ext_ra;</span><br><span style="color: hsl(120, 100%, 40%);">+ const integer num_req := 6;</span><br><span> </span><br><span> /* Initialize the PCU interface abstraction */</span><br><span> f_init_raw(testcasename());</span><br><span style="color: hsl(120, 100%, 40%);">+ f_statsd_reset();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- for (var integer i := 0; i < 6; i := i + 1) {</span><br><span style="color: hsl(120, 100%, 40%);">+ for (var integer i := 0; i < num_req; i := i + 1) {</span><br><span> ext_ra := int2bit(f_rnd_int(32), 5); /* 5 LSB's of RA11 */</span><br><span> rest := tr_IARRestOctets({ *, tr_ExtRAOpt(ext_ra), * });</span><br><span> </span><br><span>@@ -3779,6 +3896,20 @@</span><br><span> f_TC_egprs_pkt_chan_req_reject('111111'B & ext_ra, 1337 + i, rest);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ if (mp_osmo_pcu_newer_than_0_9_0) {</span><br><span style="color: hsl(120, 100%, 40%);">+ var StatsDExpects expect := {</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.11bit", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.one_phase", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.two_phase", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.unexpected", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_UL", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_rej", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_DL", mtype := "c", min := 0, max := 0 }</span><br><span style="color: hsl(120, 100%, 40%);">+ };</span><br><span style="color: hsl(120, 100%, 40%);">+ f_statsd_expect(expect);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> f_shutdown(__BFILE__, __LINE__, final := true);</span><br><span> }</span><br><span> </span><br><span>@@ -3788,16 +3919,18 @@</span><br><span> var template IARRestOctets rest;</span><br><span> var BIT5 ext_ra;</span><br><span> var BIT11 ra11;</span><br><span style="color: hsl(120, 100%, 40%);">+ const integer num_req := 6;</span><br><span> </span><br><span> /* Initialize the PCU interface abstraction */</span><br><span> f_init_raw(testcasename());</span><br><span style="color: hsl(120, 100%, 40%);">+ f_statsd_reset();</span><br><span> </span><br><span> var EGPRSPktChRequest req := {</span><br><span> /* NOTE: other fields are set in the loop */</span><br><span> emergency := { tag := '110111'B }</span><br><span> };</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- for (var integer i := 0; i < 6; i := i + 1) {</span><br><span style="color: hsl(120, 100%, 40%);">+ for (var integer i := 0; i < num_req; i := i + 1) {</span><br><span> ext_ra := int2bit(f_rnd_int(32), 5); /* 5 LSB's of RA11 */</span><br><span> rest := tr_IARRestOctets({ *, tr_ExtRAOpt(ext_ra), * });</span><br><span> </span><br><span>@@ -3808,6 +3941,20 @@</span><br><span> f_TC_egprs_pkt_chan_req_reject(ra11, 1337 + i, rest);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ if (mp_osmo_pcu_newer_than_0_9_0) {</span><br><span style="color: hsl(120, 100%, 40%);">+ var StatsDExpects expect := {</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.11bit", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.one_phase", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.two_phase", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.unexpected", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_UL", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_rej", mtype := "c", min := num_req, max := num_req },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_DL", mtype := "c", min := 0, max := 0 }</span><br><span style="color: hsl(120, 100%, 40%);">+ };</span><br><span style="color: hsl(120, 100%, 40%);">+ f_statsd_expect(expect);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> f_shutdown(__BFILE__, __LINE__, final := true);</span><br><span> }</span><br><span> </span><br><span>@@ -3826,6 +3973,7 @@</span><br><span> </span><br><span> /* Initialize the PCU interface abstraction */</span><br><span> f_init_raw(testcasename(), info_ind);</span><br><span style="color: hsl(120, 100%, 40%);">+ f_statsd_reset();</span><br><span> </span><br><span> var EGPRSPktChRequest req := {</span><br><span> one_phase := {</span><br><span>@@ -3849,6 +3997,23 @@</span><br><span> /* At this point, the IUT should run out of free USFs */</span><br><span> f_TC_egprs_pkt_chan_req_reject(ra11, 1870, rest, wi := info_ind.t3142);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ if (mp_osmo_pcu_newer_than_0_9_0) {</span><br><span style="color: hsl(120, 100%, 40%);">+ var StatsDExpects expect := {</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests", mtype := "c", min := 8, max := 8 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.11bit", mtype := "c", min := 8, max := 8 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.one_phase", mtype := "c", min := 8, max := 8 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.two_phase", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.rach.requests.unexpected", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_UL", mtype := "c", min := 7, max := 7 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.one_phase", mtype := "c", min := 7, max := 7 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.two_phase", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_ul.contention_resolution_success", mtype := "c", min := 0, max := 0 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_rej", mtype := "c", min := 1, max := 1 },</span><br><span style="color: hsl(120, 100%, 40%);">+ { name := "TTCN3.bts.0.immediate.assignment_DL", mtype := "c", min := 0, max := 0 }</span><br><span style="color: hsl(120, 100%, 40%);">+ };</span><br><span style="color: hsl(120, 100%, 40%);">+ f_statsd_expect(expect);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> f_shutdown(__BFILE__, __LINE__, final := true);</span><br><span> }</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/26130">change 26130</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/c/osmo-ttcn3-hacks/+/26130"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I98e340053c91abdbf28c6e9641190bc78df35eff </div>
<div style="display:none"> Gerrit-Change-Number: 26130 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>