<p>fixeria has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23147">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">remsim: add the guard timeout to all test cases<br><br>As can be seen [1], it happens quite often that a test case gets<br>stuck and runs forever.  Most of the existing test suites have<br>the guard timeout to prevent this.  Let's make use of it here too.<br><br>[1] https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-remsim-test-latest/190/<br> Build has been executing for 1 day 23 hr!<br><br>Change-Id: I3897efd2a97c3e0d487057aa7bdc2967f3424dd8<br>---<br>M remsim/RemsimBankd_Tests.ttcn<br>M remsim/RemsimClient_Tests.ttcn<br>M remsim/RemsimServer_Tests.ttcn<br>3 files changed, 59 insertions(+), 0 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/47/23147/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/remsim/RemsimBankd_Tests.ttcn b/remsim/RemsimBankd_Tests.ttcn</span><br><span>index 47beedd..a2686d3 100644</span><br><span>--- a/remsim/RemsimBankd_Tests.ttcn</span><br><span>+++ b/remsim/RemsimBankd_Tests.ttcn</span><br><span>@@ -35,11 +35,23 @@</span><br><span> /* We implement a RSPRO server to simulate the remsim-server and a</span><br><span>    RSPRO client to simulate a remsim-client connecting to bankd */</span><br><span> type component bankd_test_CT extends rspro_server_CT, rspro_client_CT, VPCD_Adapter_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+        timer g_T_guard := 60.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%);">+private altstep as_Tguard() runs on bankd_test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+    [] g_T_guard.timeout {</span><br><span style="color: hsl(120, 100%, 40%);">+                setverdict(fail, "Timeout of T_guard");</span><br><span style="color: hsl(120, 100%, 40%);">+             Misc_Helpers.f_shutdown(__BFILE__, __LINE__);</span><br><span style="color: hsl(120, 100%, 40%);">+         }</span><br><span> }</span><br><span> </span><br><span> private function f_init(boolean start_client := false) runs on bankd_test_CT {</span><br><span>         var ComponentIdentity srv_comp_id := valueof(ts_CompId(remsimServer, "ttcn-server"));</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+   /* Start the guard timer */</span><br><span style="color: hsl(120, 100%, 40%);">+   g_T_guard.start;</span><br><span style="color: hsl(120, 100%, 40%);">+      activate(as_Tguard());</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>     f_rspro_srv_init(0, mp_server_ip, mp_server_port, srv_comp_id);</span><br><span> </span><br><span>  if (start_client) {</span><br><span>diff --git a/remsim/RemsimClient_Tests.ttcn b/remsim/RemsimClient_Tests.ttcn</span><br><span>index 499fd3e..d7d6bc7 100644</span><br><span>--- a/remsim/RemsimClient_Tests.ttcn</span><br><span>+++ b/remsim/RemsimClient_Tests.ttcn</span><br><span>@@ -15,6 +15,7 @@</span><br><span> import from Native_Functions all;</span><br><span> import from Osmocom_Types all;</span><br><span> import from IPA_Emulation all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from Misc_Helpers all;</span><br><span> </span><br><span> /* the PIPEasp port allows us to interact with osmo-remsim-client-shell via stdin/stdout */</span><br><span> import from PIPEasp_PortType all;</span><br><span>@@ -33,12 +34,24 @@</span><br><span> type component client_test_CT extends rspro_server_CT {</span><br><span>        port PIPEasp_PT PIPE;</span><br><span>        var ComponentIdentity g_srv_comp_id, g_bankd_comp_id;</span><br><span style="color: hsl(120, 100%, 40%);">+ timer g_T_guard := 60.0;</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+private altstep as_Tguard() runs on client_test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+      [] g_T_guard.timeout {</span><br><span style="color: hsl(120, 100%, 40%);">+                setverdict(fail, "Timeout of T_guard");</span><br><span style="color: hsl(120, 100%, 40%);">+             Misc_Helpers.f_shutdown(__BFILE__, __LINE__);</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%);">+</span><br><span> private function f_init() runs on client_test_CT {</span><br><span>         g_srv_comp_id := valueof(ts_CompId(remsimServer, "ttcn-server"));</span><br><span>  g_bankd_comp_id := valueof(ts_CompId(remsimBankd, "ttcn-bankd"));</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+       /* Start the guard timer */</span><br><span style="color: hsl(120, 100%, 40%);">+   g_T_guard.start;</span><br><span style="color: hsl(120, 100%, 40%);">+      activate(as_Tguard());</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>     f_rspro_srv_init(0, mp_server_ip, mp_server_port, g_srv_comp_id);</span><br><span>    f_rspro_srv_init(1, mp_bankd_ip, mp_bankd_port, g_bankd_comp_id, exp_connect := false);</span><br><span> }</span><br><span>diff --git a/remsim/RemsimServer_Tests.ttcn b/remsim/RemsimServer_Tests.ttcn</span><br><span>index d5af530..135ce15 100644</span><br><span>--- a/remsim/RemsimServer_Tests.ttcn</span><br><span>+++ b/remsim/RemsimServer_Tests.ttcn</span><br><span>@@ -20,6 +20,7 @@</span><br><span> import from RSPRO_Types all;</span><br><span> import from REMSIM_Tests all;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+import from Misc_Helpers all;</span><br><span> import from IPA_Emulation all;</span><br><span> </span><br><span> import from HTTPmsg_Types all;</span><br><span>@@ -72,13 +73,28 @@</span><br><span> }</span><br><span> </span><br><span> type component test_CT extends rspro_client_CT, http_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+ timer g_T_guard := 60.0;</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+private altstep as_Tguard() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+     [] g_T_guard.timeout {</span><br><span style="color: hsl(120, 100%, 40%);">+                setverdict(fail, "Timeout of T_guard");</span><br><span style="color: hsl(120, 100%, 40%);">+             Misc_Helpers.f_shutdown(__BFILE__, __LINE__);</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_init() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+   /* Start the guard timer */</span><br><span style="color: hsl(120, 100%, 40%);">+   g_T_guard.start;</span><br><span style="color: hsl(120, 100%, 40%);">+      activate(as_Tguard());</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> </span><br><span> testcase TC_connect_and_nothing() runs on test_CT {</span><br><span>       var ComponentIdentity rspro_id := valueof(ts_CompId(remsimClient, "foobar"));</span><br><span>      timer T := 20.0;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+  f_init();</span><br><span>    f_rspro_init(rspro[0], mp_server_ip, mp_server_port, rspro_id, 0);</span><br><span>   T.start;</span><br><span>     /* expect that we're disconnected if we never send a ConnectClientReq */</span><br><span>@@ -97,6 +113,7 @@</span><br><span>    var ComponentIdentity rspro_id := valueof(ts_CompId(remsimClient, "foobar"));</span><br><span>      var JsRoot js;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+    f_init();</span><br><span>    f_rsres_init();</span><br><span>      f_rspro_init(rspro[0], mp_server_ip, mp_server_port, rspro_id, 0);</span><br><span>   rspro[0].rspro_client_slot := valueof(ts_ClientSlot(3,4));</span><br><span>@@ -120,6 +137,7 @@</span><br><span>     var ComponentIdentity rspro_id := valueof(ts_CompId(remsimBankd, "foobar"));</span><br><span>       var JsRoot js;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+    f_init();</span><br><span>    f_rsres_init();</span><br><span>      f_rspro_init(rspro[0], mp_server_ip, mp_server_port, rspro_id, 0);</span><br><span>   rspro[0].rspro_bank_id := 1;</span><br><span>@@ -170,6 +188,7 @@</span><br><span> </span><br><span> /* test adding a single slotmap */</span><br><span> testcase TC_slotmap_add() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+   f_init();</span><br><span>    f_rsres_init();</span><br><span> </span><br><span>  var JsSlotmap sm := valueof(ts_JsSlotmap(ts_BankSlot(1,2), ts_ClientSlot(3,4)));</span><br><span>@@ -181,6 +200,7 @@</span><br><span> </span><br><span> /* test adding a single slotmap with out-of-range values */</span><br><span> testcase TC_slotmap_add_out_of_range() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+ f_init();</span><br><span>    f_rsres_init();</span><br><span> </span><br><span>  var HTTPMessage http_resp;</span><br><span>@@ -206,6 +226,8 @@</span><br><span> </span><br><span> /* test adding a slotmap and then connecting a client + bankd */</span><br><span> testcase TC_slotmap_add_conn_cl_b() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+     f_init();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  /* Simulate one client */</span><br><span>    var ComponentIdentity rspro_id := valueof(ts_CompId(remsimClient, testcasename()));</span><br><span>  f_rspro_init(rspro[0], mp_server_ip, mp_server_port, rspro_id, 0);</span><br><span>@@ -249,6 +271,8 @@</span><br><span> </span><br><span> /* test connecting a client and later adding a slotmap for it */</span><br><span> testcase TC_conn_cl_b_slotmap_add() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+     f_init();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  /* Simulate one client */</span><br><span>    var ComponentIdentity rspro_id := valueof(ts_CompId(remsimClient, testcasename()));</span><br><span>  f_rspro_init(rspro[0], mp_server_ip, mp_server_port, rspro_id, 0);</span><br><span>@@ -292,6 +316,7 @@</span><br><span> </span><br><span> /* simple delete of a 'NEW' slotmap */</span><br><span> testcase TC_slotmap_del_new() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+     f_init();</span><br><span>    f_rsres_init();</span><br><span> </span><br><span>  var JsSlotmap sm := valueof(ts_JsSlotmap(ts_BankSlot(1,2), ts_ClientSlot(3,4)));</span><br><span>@@ -303,6 +328,7 @@</span><br><span> </span><br><span> /* simple delete of a non-existant slotmap */</span><br><span> testcase TC_slotmap_del_nonexistant() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+        f_init();</span><br><span>    f_rsres_init();</span><br><span> </span><br><span>  var JsSlotmap sm := valueof(ts_JsSlotmap(ts_BankSlot(11,12), ts_ClientSlot(13,14)));</span><br><span>@@ -314,6 +340,8 @@</span><br><span> /* simple delete of a 'UNACKNOWLEDGED' slotmap */</span><br><span> testcase TC_slotmap_del_unack() runs on test_CT {</span><br><span>         var ComponentIdentity rspro_id := valueof(ts_CompId(remsimBankd, testcasename()));</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  f_init();</span><br><span>    f_rspro_init(rspro[0], mp_server_ip, mp_server_port, rspro_id, 0);</span><br><span>   rspro[0].rspro_bank_id := 1;</span><br><span>         rspro[0].rspro_bank_nslots := 8;</span><br><span>@@ -347,6 +375,8 @@</span><br><span> /* simple delete of a 'ACTIVE' slotmap from server + bankd */</span><br><span> testcase TC_slotmap_del_active() runs on test_CT {</span><br><span>        var ComponentIdentity rspro_id := valueof(ts_CompId(remsimBankd, testcasename()));</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  f_init();</span><br><span>    f_rspro_init(rspro[0], mp_server_ip, mp_server_port, rspro_id, 0);</span><br><span>   rspro[0].rspro_bank_id := 1;</span><br><span>         rspro[0].rspro_bank_nslots := 8;</span><br><span>@@ -386,6 +416,8 @@</span><br><span> /* simple delete of a 'ACTIVE' slotmap from client */</span><br><span> testcase TC_slotmap_del_active_client() runs on test_CT {</span><br><span>         var ComponentIdentity rspro_id := valueof(ts_CompId(remsimBankd, testcasename()));</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  f_init();</span><br><span>    f_rspro_init(rspro[0], mp_server_ip, mp_server_port, rspro_id, 0);</span><br><span>   rspro[0].rspro_bank_id := 1;</span><br><span>         rspro[0].rspro_bank_nslots := 8;</span><br><span>@@ -438,6 +470,8 @@</span><br><span> /* Add a slotmap to a currently active bank */</span><br><span> testcase TC_slotmap_add_active_bank() runs on test_CT {</span><br><span>  var ComponentIdentity rspro_id := valueof(ts_CompId(remsimBankd, testcasename()));</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  f_init();</span><br><span>    f_rspro_init(rspro[0], mp_server_ip, mp_server_port, rspro_id, 0);</span><br><span>   rspro[0].rspro_bank_id := 1;</span><br><span>         rspro[0].rspro_bank_nslots := 8;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/23147">change 23147</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/+/23147"/><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: I3897efd2a97c3e0d487057aa7bdc2967f3424dd8 </div>
<div style="display:none"> Gerrit-Change-Number: 23147 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>