<p>Max has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/12947">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Add encoding tests for Immediate Assignment<br><br>Change-Id: I63f4654b23c7c4f063f6b3254d77157fac798586<br>---<br>M tests/types/TypesTest.cpp<br>M tests/types/TypesTest.err<br>M tests/types/TypesTest.ok<br>3 files changed, 61 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/47/12947/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/tests/types/TypesTest.cpp b/tests/types/TypesTest.cpp</span><br><span>index 5a6338f..2536901 100644</span><br><span>--- a/tests/types/TypesTest.cpp</span><br><span>+++ b/tests/types/TypesTest.cpp</span><br><span>@@ -431,6 +431,58 @@</span><br><span>  }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static void check_imm_ass(struct gprs_rlcmac_tbf *tbf, bool dl, enum ph_burst_type bt, const uint8_t *exp, uint8_t len)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+        uint8_t alpha = 7, gamma = 8, ta = 35, ts = 5, tsc = 1, usf = 1, sz = sizeof(DUMMY_VEC) / 2, plen;</span><br><span style="color: hsl(120, 100%, 40%);">+    bitvec *immediate_assignment = bitvec_alloc(sz, tall_pcu_ctx);</span><br><span style="color: hsl(120, 100%, 40%);">+        struct msgb *m = msgb_alloc(80, "test");</span><br><span style="color: hsl(120, 100%, 40%);">+    bool poll = true;</span><br><span style="color: hsl(120, 100%, 40%);">+     uint16_t ra = 13, arfcn = 877;</span><br><span style="color: hsl(120, 100%, 40%);">+        uint32_t ref_fn = 24, fn = 11;</span><br><span style="color: hsl(120, 100%, 40%);">+        int8_t ta_idx = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  bitvec_unhex(immediate_assignment, DUMMY_VEC);</span><br><span style="color: hsl(120, 100%, 40%);">+        plen = Encoding::write_immediate_assignment(tbf, immediate_assignment, dl,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                ra, ref_fn, ta, arfcn, ts, tsc, usf,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                  poll, fn, alpha, gamma, ta_idx, bt);</span><br><span style="color: hsl(120, 100%, 40%);">+      printf("[%u] %s Immediate Assignment: %s\n", plen, dl ? "DL" : "UL",</span><br><span style="color: hsl(120, 100%, 40%);">+           osmo_hexdump_nospc(immediate_assignment->data, sz));</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      memcpy(msgb_put(m, sz), immediate_assignment->data, sz);</span><br><span style="color: hsl(120, 100%, 40%);">+   if (!msgb_eq_data_print(m, exp, len))</span><br><span style="color: hsl(120, 100%, 40%);">+         printf("%s(%s) failed!", __func__, dl ? "DL" : "UL");</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void test_immediate_assign_dl()</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+  BTS the_bts;</span><br><span style="color: hsl(120, 100%, 40%);">+  the_bts.bts_data()->alloc_algorithm = alloc_algorithm_a;</span><br><span style="color: hsl(120, 100%, 40%);">+   the_bts.bts_data()->trx[0].pdch[2].enable();</span><br><span style="color: hsl(120, 100%, 40%);">+       the_bts.bts_data()->trx[0].pdch[3].enable();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     struct gprs_rlcmac_tbf *tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, 0, 1, 1, false);</span><br><span style="color: hsl(120, 100%, 40%);">+     static uint8_t res[] = { 0x06, 0x3f, 0x30, 0x0d, 0x23, 0x6d, 0x7f, 0x03, 0x18, 0x23,</span><br><span style="color: hsl(120, 100%, 40%);">+                           0x00, 0xd0, 0x00, 0x00, 0x00, 0x08, 0x17, 0x47, 0x08, 0x0b, 0x5b, 0x2b, 0x2b, };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   check_imm_ass(tbf, true, GSM_L1_BURST_TYPE_ACCESS_2, res, ARRAY_SIZE(res));</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void test_immediate_assign_ul0()</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ static uint8_t res[] = { 0x06, 0x3f, 0x10, 0x0d, 0x23, 0x6d, 0x0d, 0x03, 0x18, 0x23,</span><br><span style="color: hsl(120, 100%, 40%);">+                           0x00, 0xc5, 0xd1, 0x08, 0x0b, 0x5b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   check_imm_ass(NULL, false, GSM_L1_BURST_TYPE_ACCESS_0, res, ARRAY_SIZE(res));</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void test_immediate_assign_ul1()</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+       static uint8_t res[] = { 0x06, 0x3f, 0x10, 0x0d, 0x23, 0x6d, 0x7f, 0x03, 0x18, 0x23,</span><br><span style="color: hsl(120, 100%, 40%);">+                           0x00, 0x46, 0x97, 0x40, 0x0b, 0x58, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   check_imm_ass(NULL, false, GSM_L1_BURST_TYPE_ACCESS_1, res, ARRAY_SIZE(res));</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> void test_immediate_assign_rej()</span><br><span> {</span><br><span>  uint8_t plen;</span><br><span>@@ -496,6 +548,9 @@</span><br><span>  test_rlc_v_b();</span><br><span>      test_rlc_v_n();</span><br><span>      test_rlc_dl_ul_basic();</span><br><span style="color: hsl(120, 100%, 40%);">+       test_immediate_assign_dl();</span><br><span style="color: hsl(120, 100%, 40%);">+   test_immediate_assign_ul0();</span><br><span style="color: hsl(120, 100%, 40%);">+  test_immediate_assign_ul1();</span><br><span>         test_immediate_assign_rej();</span><br><span>         test_lsb();</span><br><span> </span><br><span>diff --git a/tests/types/TypesTest.err b/tests/types/TypesTest.err</span><br><span>index e69de29..038598f 100644</span><br><span>--- a/tests/types/TypesTest.err</span><br><span>+++ b/tests/types/TypesTest.err</span><br><span>@@ -0,0 +1,3 @@</span><br><span style="color: hsl(120, 100%, 40%);">+Allocating DL TBF: MS_CLASS=1/1</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) Setting Control TS 2</span><br><span style="color: hsl(120, 100%, 40%);">+TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) Allocated: trx = 0, ul_slots = 04, dl_slots = 04</span><br><span>diff --git a/tests/types/TypesTest.ok b/tests/types/TypesTest.ok</span><br><span>index 4bdd917..53aa5b1 100644</span><br><span>--- a/tests/types/TypesTest.ok</span><br><span>+++ b/tests/types/TypesTest.ok</span><br><span>@@ -6,6 +6,9 @@</span><br><span> rbb: 10 00 00 00 00 00 00 01 </span><br><span> show_rbb: RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR</span><br><span> show_rbb: IIRRIIIR</span><br><span style="color: hsl(120, 100%, 40%);">+[11] DL Immediate Assignment: 063f300d236d7f03182300d0000000081747080b5b2b2b</span><br><span style="color: hsl(120, 100%, 40%);">+[11] UL Immediate Assignment: 063f100d236d0d03182300c5d1080b5b2b2b2b2b2b2b2b</span><br><span style="color: hsl(120, 100%, 40%);">+[11] UL Immediate Assignment: 063f100d236d7f031823004697400b582b2b2b2b2b2b2b</span><br><span> assignment reject: 06 3a 10 7f 06 36 14 7f 06 36 14 7f 06 36 14 7f 06 36 14 c0 2b 2b </span><br><span> assignment reject: 06 3a 10 70 06 36 14 70 06 36 14 70 06 36 14 70 06 36 14 0b 2b 2b </span><br><span> Testing LBS utility...</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/12947">change 12947</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/12947"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-pcu </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I63f4654b23c7c4f063f6b3254d77157fac798586 </div>
<div style="display:none"> Gerrit-Change-Number: 12947 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Max <msuraev@sysmocom.de> </div>