pespin has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/42519?usp=email )


Change subject: stp: STP_Tests_M3UA_TCP: Introduce tests 
TC_m3ua_tcp_{cli,srv}_adm_shutdown
......................................................................

stp: STP_Tests_M3UA_TCP: Introduce tests TC_m3ua_tcp_{cli,srv}_adm_shutdown

Related tests already existed for STP_Tests_M3UA, but we want to
explicitly test against M3UA_TCP since these tests involve the transport
layer directly.

Related: OS#6752
Change-Id: Ia37a0e244895fbb447ef8e71a0980538cc9fd7f8
---
M stp/STP_Tests_M3UA.ttcn
M stp/STP_Tests_M3UA_TCP.ttcn
M stp/expected-results.xml
3 files changed, 87 insertions(+), 3 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks 
refs/changes/19/42519/1

diff --git a/stp/STP_Tests_M3UA.ttcn b/stp/STP_Tests_M3UA.ttcn
index 6fb772d..485ca76 100644
--- a/stp/STP_Tests_M3UA.ttcn
+++ b/stp/STP_Tests_M3UA.ttcn
@@ -129,7 +129,7 @@
        return m3ua_configs;
 }

-private template PortEvent tr_ConnOpened := {
+friend template PortEvent tr_ConnOpened := {
        connOpened := ?
 }

@@ -1547,7 +1547,7 @@
        return str;
 }

-private function f_vty_cs7_asp_cmd(in M3uaConfig cfg, charstring cmd) runs on 
RAW_M3UA_CT
+friend function f_vty_cs7_asp_cmd(in M3uaConfig cfg, charstring cmd) runs on 
RAW_M3UA_CT
 {
        var charstring asp_cfg_str := f_asp_cfg_str(cfg);
        f_vty_config2(VTY, {"cs7 instance 0", asp_cfg_str}, cmd);
diff --git a/stp/STP_Tests_M3UA_TCP.ttcn b/stp/STP_Tests_M3UA_TCP.ttcn
index 1da65cc..dbd70ac 100644
--- a/stp/STP_Tests_M3UA_TCP.ttcn
+++ b/stp/STP_Tests_M3UA_TCP.ttcn
@@ -35,6 +35,13 @@
 import from STP_Tests_Common all;
 import from STP_Tests_M3UA all;

+private altstep as_M3UA_wait_tcp_conn_closed(integer idx) runs on RAW_M3UA_CT {
+       var PortEvent pev;
+       [] M3UA[idx].receive(PortEvent:{connClosed:=?}) -> value pev {
+               log("Peer closed conn: ", pev)
+       }
+}
+
 private function f_TC_m3ua_tcp(integer idx_a, integer idx_b) runs on 
RAW_M3UA_CT {
        var M3uaConfig cfg_a := g_m3ua_configs[idx_a];
        var M3uaConfig cfg_b := g_m3ua_configs[idx_b];
@@ -116,6 +123,78 @@
        f_TC_m3ua_tcp(0, 1);
 }

+/* Test administrative state, VTY "[no] shutdown" */
+testcase TC_m3ua_tcp_srv_adm_shutdown() runs on RAW_M3UA_CT {
+       var Misc_Helpers.ro_charstring asps := { "asp-sender-tcp" };
+       var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
+       f_init_m3ua(m3ua_configs := m3ua_configs);
+
+       f_M3UA_asp_up_act(0, c_M3UA_TMT_override, omit);
+       f_sleep(1.0);
+       f_vty_cs7_asp_cmd(g_m3ua_configs[0], "shutdown");
+       log("ASP should now be DOWN")
+       as_M3UA_wait_tcp_conn_closed(0);
+
+       f_sleep(1.0);
+       /* Make sure SCTP conn will be closed when we connect to it. */
+       log("Connecting to ASP (expect closed):");
+       f_M3UA_connect_tcp(0);
+       timer T := 5.0;
+       T.start;
+       alt {
+               [] as_M3UA_wait_tcp_conn_closed(0);
+               [] T.timeout {
+                       Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, 
"Expected close from ASP SCTP server!");
+               }
+       }
+
+       /* Now let the ASP be active again, it should reconnect to us: */
+       f_vty_cs7_asp_cmd(g_m3ua_configs[0], "no shutdown");
+       log("Connecting to ASP (expect success):");
+       f_M3UA_connect_tcp(0);
+       f_M3UA_asp_up_act(0, c_M3UA_TMT_override, omit, ntfy_after_up := 
c_M3UA_ST_I_AS_PENDING);
+
+       f_clear_m3ua();
+}
+
+/* Test administrative state, VTY "[no] shutdown" */
+testcase TC_m3ua_tcp_cli_adm_shutdown() runs on RAW_M3UA_CT {
+       var PortEvent pev;
+       var Misc_Helpers.ro_charstring asps := { "asp-client0-tcp" };
+       var M3uaConfigs m3ua_configs := m3ua_build_configs(asps);
+
+       f_init_m3ua(m3ua_configs := m3ua_configs);
+       f_init_m3ua_srv();
+
+       var OCT4 rctx := int2oct(m3ua_configs[0].routing_ctx, 4);
+       f_M3UA_CLNT_asp_up_act(0, rctx := rctx);
+       f_sleep(1.0);
+       f_vty_cs7_asp_cmd(m3ua_configs[0], "shutdown");
+       log("ASP should now be DOWN")
+       as_M3UA_wait_tcp_conn_closed(0);
+
+       /* Wait for a while to make sure ASP doesn't reconnect to us: */
+       timer T := 10.0;
+       T.start;
+       alt {
+       [] M3UA[0].receive(tr_ConnOpened) {
+               Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
+                                       "Unexpected reconnect from ASP 
client!");
+       }
+       [] T.timeout {}
+       }
+
+       /* Now let the ASP be active again, it should reconnect to us: */
+       f_vty_cs7_asp_cmd(m3ua_configs[0], "no shutdown");
+       log("Waiting for client ASP to reconnect to us");
+       M3UA[0].receive(tr_ConnOpened) -> value pev {
+                       g_m3ua_conn_id[0] := pev.connOpened.connId;
+       }
+       f_M3UA_CLNT_asp_up_act(0, rctx := rctx);
+
+       f_clear_m3ua();
+}
+
 /* Test the IUT sends heartbeat procedure when needed. */
 testcase TC_m3ua_tcp_beat_timeout() runs on RAW_M3UA_CT {
        var Misc_Helpers.ro_charstring asps := { "asp-sender-tcp" };
@@ -135,8 +214,11 @@
        execute( TC_m3ua_tcp_srv() );
        execute( TC_m3ua_tcp_srv_cli() );

+       execute( TC_m3ua_tcp_srv_adm_shutdown() );
+       execute( TC_m3ua_tcp_cli_adm_shutdown() );
+
        execute( TC_m3ua_tcp_beat_timeout() );
        execute( TC_m3ua_tcp_clnt_beat_timeout() );
 }

-}
\ No newline at end of file
+}
diff --git a/stp/expected-results.xml b/stp/expected-results.xml
index 7d9d684..44f5ced 100644
--- a/stp/expected-results.xml
+++ b/stp/expected-results.xml
@@ -49,6 +49,8 @@
   <testcase classname='STP_Tests_M3UA_TCP' name='TC_m3ua_tcp_cli_srv' 
time='MASKED'/>
   <testcase classname='STP_Tests_M3UA_TCP' name='TC_m3ua_tcp_srv' 
time='MASKED'/>
   <testcase classname='STP_Tests_M3UA_TCP' name='TC_m3ua_tcp_srv_cli' 
time='MASKED'/>
+  <testcase classname='STP_Tests_M3UA_TCP' name='TC_m3ua_tcp_srv_adm_shutdown' 
time='MASKED'/>
+  <testcase classname='STP_Tests_M3UA_TCP' name='TC_m3ua_tcp_cli_adm_shutdown' 
time='MASKED'/>
   <testcase classname='STP_Tests_M3UA_TCP' name='TC_m3ua_tcp_beat_timeout' 
time='MASKED'/>
   <testcase classname='STP_Tests_M3UA_TCP' 
name='TC_m3ua_tcp_clnt_beat_timeout' time='MASKED'/>
   <testcase classname='STP_Tests_IPA' name='TC_unknown_client_nodynamic' 
time='MASKED'/>

--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/42519?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Ia37a0e244895fbb447ef8e71a0980538cc9fd7f8
Gerrit-Change-Number: 42519
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>

Reply via email to