<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-pcu/+/24234">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">MsTest: Set up tbf talloc destructor<br><br>This is right now not an issue, but it will be whenever talloc<br>destructor contains extra steps like freeing an FSM.<br><br>Change-Id: I096ff56321c8ae5e66634537aae8b95804282c65<br>---<br>M tests/ms/MsTest.cpp<br>1 file changed, 42 insertions(+), 24 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/34/24234/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/tests/ms/MsTest.cpp b/tests/ms/MsTest.cpp</span><br><span>index 498c835..2ff2fc2 100644</span><br><span>--- a/tests/ms/MsTest.cpp</span><br><span>+++ b/tests/ms/MsTest.cpp</span><br><span>@@ -46,6 +46,36 @@</span><br><span> int16_t spoof_mnc = 0, spoof_mcc = 0;</span><br><span> bool spoof_mnc_3_digits = false;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static int ul_tbf_dtor(struct gprs_rlcmac_ul_tbf *tbf)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+       tbf->~gprs_rlcmac_ul_tbf();</span><br><span style="color: hsl(120, 100%, 40%);">+        return 0;</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%);">+static int dl_tbf_dtor(struct gprs_rlcmac_dl_tbf *tbf)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+     tbf->~gprs_rlcmac_dl_tbf();</span><br><span style="color: hsl(120, 100%, 40%);">+        return 0;</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%);">+static gprs_rlcmac_ul_tbf *alloc_ul_tbf(struct gprs_rlcmac_bts *bts, GprsMs *ms)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+   gprs_rlcmac_ul_tbf *ul_tbf;</span><br><span style="color: hsl(120, 100%, 40%);">+   ul_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf);</span><br><span style="color: hsl(120, 100%, 40%);">+        talloc_set_destructor(ul_tbf, ul_tbf_dtor);</span><br><span style="color: hsl(120, 100%, 40%);">+   new (ul_tbf) gprs_rlcmac_ul_tbf(bts, ms);</span><br><span style="color: hsl(120, 100%, 40%);">+     return ul_tbf;</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%);">+static gprs_rlcmac_dl_tbf *alloc_dl_tbf(struct gprs_rlcmac_bts *bts, GprsMs *ms)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+      gprs_rlcmac_dl_tbf *dl_tbf;</span><br><span style="color: hsl(120, 100%, 40%);">+   dl_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf);</span><br><span style="color: hsl(120, 100%, 40%);">+        talloc_set_destructor(dl_tbf, dl_tbf_dtor);</span><br><span style="color: hsl(120, 100%, 40%);">+   new (dl_tbf) gprs_rlcmac_dl_tbf(bts, ms);</span><br><span style="color: hsl(120, 100%, 40%);">+     return dl_tbf;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static void test_ms_state()</span><br><span> {</span><br><span>      uint32_t tlli = 0xffeeddbb;</span><br><span>@@ -59,10 +89,8 @@</span><br><span>     ms = ms_alloc(bts, tlli);</span><br><span>    OSMO_ASSERT(ms_is_idle(ms));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        dl_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf);</span><br><span style="color: hsl(0, 100%, 40%);">-  new (dl_tbf) gprs_rlcmac_dl_tbf(bts, ms);</span><br><span style="color: hsl(0, 100%, 40%);">-       ul_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf);</span><br><span style="color: hsl(0, 100%, 40%);">-  new (ul_tbf) gprs_rlcmac_ul_tbf(bts, ms);</span><br><span style="color: hsl(120, 100%, 40%);">+     dl_tbf = alloc_dl_tbf(bts, ms);</span><br><span style="color: hsl(120, 100%, 40%);">+       ul_tbf = alloc_ul_tbf(bts, ms);</span><br><span> </span><br><span>  ms_attach_tbf(ms, ul_tbf);</span><br><span>   OSMO_ASSERT(!ms_is_idle(ms));</span><br><span>@@ -125,10 +153,8 @@</span><br><span> </span><br><span>     OSMO_ASSERT(ms_is_idle(ms));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        dl_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf);</span><br><span style="color: hsl(0, 100%, 40%);">-  new (dl_tbf) gprs_rlcmac_dl_tbf(bts, ms);</span><br><span style="color: hsl(0, 100%, 40%);">-       ul_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf);</span><br><span style="color: hsl(0, 100%, 40%);">-  new (ul_tbf) gprs_rlcmac_ul_tbf(bts, ms);</span><br><span style="color: hsl(120, 100%, 40%);">+     dl_tbf = alloc_dl_tbf(bts, ms);</span><br><span style="color: hsl(120, 100%, 40%);">+       ul_tbf = alloc_ul_tbf(bts, ms);</span><br><span> </span><br><span>  OSMO_ASSERT(last_cb == CB_UNKNOWN);</span><br><span> </span><br><span>@@ -199,12 +225,9 @@</span><br><span>       OSMO_ASSERT(ms_is_idle(ms));</span><br><span>         was_idle = false;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   dl_tbf[0] = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf);</span><br><span style="color: hsl(0, 100%, 40%);">-       new (dl_tbf[0]) gprs_rlcmac_dl_tbf(bts, ms);</span><br><span style="color: hsl(0, 100%, 40%);">-    dl_tbf[1] = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf);</span><br><span style="color: hsl(0, 100%, 40%);">-       new (dl_tbf[1]) gprs_rlcmac_dl_tbf(bts, ms);</span><br><span style="color: hsl(0, 100%, 40%);">-    ul_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf);</span><br><span style="color: hsl(0, 100%, 40%);">-  new (ul_tbf) gprs_rlcmac_ul_tbf(bts, ms);</span><br><span style="color: hsl(120, 100%, 40%);">+     dl_tbf[0] = alloc_dl_tbf(bts, ms);</span><br><span style="color: hsl(120, 100%, 40%);">+    dl_tbf[1] = alloc_dl_tbf(bts, ms);</span><br><span style="color: hsl(120, 100%, 40%);">+    ul_tbf = alloc_ul_tbf(bts, ms);</span><br><span> </span><br><span>  ms_attach_tbf(ms, dl_tbf[0]);</span><br><span>        OSMO_ASSERT(!ms_is_idle(ms));</span><br><span>@@ -419,8 +442,7 @@</span><br><span>  /* delete ms */</span><br><span>      ms = store.get_ms(tlli + 0);</span><br><span>         OSMO_ASSERT(ms != NULL);</span><br><span style="color: hsl(0, 100%, 40%);">-        ul_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf);</span><br><span style="color: hsl(0, 100%, 40%);">-  new (ul_tbf) gprs_rlcmac_ul_tbf(bts, ms);</span><br><span style="color: hsl(120, 100%, 40%);">+     ul_tbf = alloc_ul_tbf(bts, ms);</span><br><span>      ms_attach_tbf(ms, ul_tbf);</span><br><span>   ms_detach_tbf(ms, ul_tbf);</span><br><span>   ms = store.get_ms(tlli + 0);</span><br><span>@@ -458,10 +480,8 @@</span><br><span> </span><br><span>      OSMO_ASSERT(ms_is_idle(ms));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        dl_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf);</span><br><span style="color: hsl(0, 100%, 40%);">-  new (dl_tbf) gprs_rlcmac_dl_tbf(bts, ms);</span><br><span style="color: hsl(0, 100%, 40%);">-       ul_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_ul_tbf);</span><br><span style="color: hsl(0, 100%, 40%);">-  new (ul_tbf) gprs_rlcmac_ul_tbf(bts, ms);</span><br><span style="color: hsl(120, 100%, 40%);">+     dl_tbf = alloc_dl_tbf(bts, ms);</span><br><span style="color: hsl(120, 100%, 40%);">+       ul_tbf = alloc_ul_tbf(bts, ms);</span><br><span> </span><br><span>  OSMO_ASSERT(last_cb == CB_UNKNOWN);</span><br><span> </span><br><span>@@ -516,8 +536,7 @@</span><br><span> </span><br><span>    OSMO_ASSERT(ms_is_idle(ms));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        dl_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf);</span><br><span style="color: hsl(0, 100%, 40%);">-  new (dl_tbf) gprs_rlcmac_dl_tbf(bts, ms);</span><br><span style="color: hsl(120, 100%, 40%);">+     dl_tbf = alloc_dl_tbf(bts, ms);</span><br><span>      ms_attach_tbf(ms, dl_tbf);</span><br><span> </span><br><span>       OSMO_ASSERT(!ms_is_idle(ms));</span><br><span>@@ -562,8 +581,7 @@</span><br><span>  ms2 = ms_alloc(bts, tlli + 1);</span><br><span>       dump_ms(ms2, "2: with BTS defaults");</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     dl_tbf = talloc_zero(tall_pcu_ctx, struct gprs_rlcmac_dl_tbf);</span><br><span style="color: hsl(0, 100%, 40%);">-  new (dl_tbf) gprs_rlcmac_dl_tbf(bts, ms2);</span><br><span style="color: hsl(120, 100%, 40%);">+    dl_tbf = alloc_dl_tbf(bts, ms2);</span><br><span>     ms_attach_tbf(ms2, dl_tbf);</span><br><span> </span><br><span>      dump_ms(ms2, "2: after TBF attach ");</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/24234">change 24234</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-pcu/+/24234"/><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-Change-Id: I096ff56321c8ae5e66634537aae8b95804282c65 </div>
<div style="display:none"> Gerrit-Change-Number: 24234 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>