<p>neels has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19439">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bsc CBSP: TC_cbsp_write_bss: run a fixed series of payload lengths<br><br>Recently fixed errors in the last_block counting as well as encoding ask for a<br>proper test coverage of various lengths, which also verifies the expected<br>blocks count explicitly.<br><br>Implement this in TC_cbsp_write_bss():<br><br>Run f_tc_cbsp_write_bss() multiple times with differing fixed payload lengths,<br>at all block count transitions, plus some arbitrary lengths in-between.<br><br>Before this patch, TC_cbsp_write_bss() would pick a different random payload<br>length for every test run, which, until recently, then sporadically hit<br>last_block value errors. That's not good for reproducability.<br><br>Change-Id: I3cace19f9e5adc8ebab13ef2328a36dc150b2b31<br>---<br>M bsc/BSC_Tests_CBSP.ttcn<br>1 file changed, 33 insertions(+), 7 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/39/19439/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/bsc/BSC_Tests_CBSP.ttcn b/bsc/BSC_Tests_CBSP.ttcn</span><br><span>index f1f0240..edbaddc 100644</span><br><span>--- a/bsc/BSC_Tests_CBSP.ttcn</span><br><span>+++ b/bsc/BSC_Tests_CBSP.ttcn</span><br><span>@@ -377,20 +377,46 @@</span><br><span> }</span><br><span> </span><br><span> /* Write to entire BSS; three cells succeed; one fails (no CBCH) */</span><br><span style="color: hsl(0, 100%, 40%);">-testcase TC_cbsp_write_bss() runs on cbsp_test_CT {</span><br><span style="color: hsl(0, 100%, 40%);">-       var CBSP_IEs pages := {f_gen_page()};</span><br><span style="color: hsl(120, 100%, 40%);">+function f_tc_cbsp_write_bss(integer payload_len := -1, integer expect_blocks := -1) runs on cbsp_test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+    var CBSP_IEs pages := {f_gen_page(payload_len := payload_len)};</span><br><span>      var template (value) BSSMAP_FIELD_CellIdentificationList cell_list;</span><br><span>  cell_list := ts_BSSMAP_CIL_BSS;</span><br><span style="color: hsl(0, 100%, 40%);">- f_cbsp_init_server();</span><br><span>        f_cbsp_write(1, 1001, cell_list, content:=pages,</span><br><span>                  success_list:=tr_BSSMAP_CIL_CGI({?,?,?}), fail_list:={?});</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     var template RSL_Message tr := f_page2rsl(pages[0], 1, 1001);</span><br><span style="color: hsl(120, 100%, 40%);">+ var template RSL_Message tr := f_page2rsl(pages[0], 1, 1001, expect_blocks := expect_blocks);</span><br><span style="color: hsl(120, 100%, 40%);">+ log("RSL[0,1,2] EXPECTING ", tr_ASP_RSL_UD(tr));</span><br><span>   interleave {</span><br><span style="color: hsl(0, 100%, 40%);">-    [] IPA_RSL[0].receive(tr_ASP_RSL_UD(tr)) {}</span><br><span style="color: hsl(0, 100%, 40%);">-     [] IPA_RSL[1].receive(tr_ASP_RSL_UD(tr)) {}</span><br><span style="color: hsl(0, 100%, 40%);">-     [] IPA_RSL[2].receive(tr_ASP_RSL_UD(tr)) {}</span><br><span style="color: hsl(120, 100%, 40%);">+   [] IPA_RSL[0].receive(tr_ASP_RSL_UD(tr)) { log("Got SMSCB CMD on RSL[0]"); }</span><br><span style="color: hsl(120, 100%, 40%);">+        [] IPA_RSL[1].receive(tr_ASP_RSL_UD(tr)) { log("Got SMSCB CMD on RSL[1]"); }</span><br><span style="color: hsl(120, 100%, 40%);">+        [] IPA_RSL[2].receive(tr_ASP_RSL_UD(tr)) { log("Got SMSCB CMD on RSL[2]"); }</span><br><span>       }</span><br><span style="color: hsl(120, 100%, 40%);">+     setverdict(pass);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_cbsp_write_bss() runs on cbsp_test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+     f_cbsp_init_server(guard_timeout := 60.0);</span><br><span style="color: hsl(120, 100%, 40%);">+    /* In the SMSCB message, there is a head followed by payload,</span><br><span style="color: hsl(120, 100%, 40%);">+  * and the resulting data is segmented in blocks of 22 octets (<= 4 blocks).</span><br><span style="color: hsl(120, 100%, 40%);">+        *</span><br><span style="color: hsl(120, 100%, 40%);">+     * [head][...payload....]|[....................]|[....................]|[....................]</span><br><span style="color: hsl(120, 100%, 40%);">+         *       0               |16                    |38                    |60                   |82</span><br><span style="color: hsl(120, 100%, 40%);">+       * 0    5                |22                    |44                    |66                   |88</span><br><span style="color: hsl(120, 100%, 40%);">+       *</span><br><span style="color: hsl(120, 100%, 40%);">+     *         blocks count:   1     | 2      | 3      | 4</span><br><span style="color: hsl(120, 100%, 40%);">+         * payload octets count:   1..16 | 17..38 | 39..60 | 61..82</span><br><span style="color: hsl(120, 100%, 40%);">+    */</span><br><span style="color: hsl(120, 100%, 40%);">+   f_tc_cbsp_write_bss(payload_len := 1, expect_blocks := 1);</span><br><span style="color: hsl(120, 100%, 40%);">+    f_tc_cbsp_write_bss(payload_len := 2, expect_blocks := 1);</span><br><span style="color: hsl(120, 100%, 40%);">+    f_tc_cbsp_write_bss(payload_len := 16, expect_blocks := 1);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_tc_cbsp_write_bss(payload_len := 17, expect_blocks := 2);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_tc_cbsp_write_bss(payload_len := 23, expect_blocks := 2);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_tc_cbsp_write_bss(payload_len := 38, expect_blocks := 2);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_tc_cbsp_write_bss(payload_len := 39, expect_blocks := 3);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_tc_cbsp_write_bss(payload_len := 42, expect_blocks := 3);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_tc_cbsp_write_bss(payload_len := 60, expect_blocks := 3);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_tc_cbsp_write_bss(payload_len := 61, expect_blocks := 4);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_tc_cbsp_write_bss(payload_len := 77, expect_blocks := 4);</span><br><span style="color: hsl(120, 100%, 40%);">+   f_tc_cbsp_write_bss(payload_len := 82, expect_blocks := 4);</span><br><span> }</span><br><span> </span><br><span> /* Write to single BTS supporting CBCH: success */</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19439">change 19439</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/+/19439"/><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: I3cace19f9e5adc8ebab13ef2328a36dc150b2b31 </div>
<div style="display:none"> Gerrit-Change-Number: 19439 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>