pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40195?usp=email )
Change subject: stp: Introduce test TC_clnt_sctp_adm_shutdown ......................................................................
stp: Introduce test TC_clnt_sctp_adm_shutdown
Related: OS#6752 Change-Id: I8b1c8b633afc1515dedfccd43e642401896b167e --- M stp/STP_Tests_M3UA.ttcn M stp/expected-results.xml 2 files changed, 45 insertions(+), 0 deletions(-)
Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved osmith: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve
diff --git a/stp/STP_Tests_M3UA.ttcn b/stp/STP_Tests_M3UA.ttcn index 8ee35ec..57ab3de 100644 --- a/stp/STP_Tests_M3UA.ttcn +++ b/stp/STP_Tests_M3UA.ttcn @@ -1448,6 +1448,49 @@ f_clear_m3ua(); }
+/* Test administrative state, VTY "[no] shutdown" */ +testcase TC_clnt_sctp_adm_shutdown() runs on RAW_M3UA_CT { + f_init_m3ua(); + f_init_m3ua_srv(); + + var OCT4 rctx := int2oct(f_m3ua_srv_config(0).routing_ctx, 4); + f_M3UA_CLNT_asp_up_act(M3UA_SRV(0), rctx := rctx); + f_sleep(1.0); + f_vty_cs7_asp_cmd(f_m3ua_srv_config(0), "shutdown"); + log("ASP should now be DOWN") + var PortEvent pev; + alt { + [] M3UA[M3UA_SRV(0)].receive(PortEvent:{sctpEvent := ?}) -> value pev { + log("sctp event: ", pev) + repeat; + } + [] M3UA[M3UA_SRV(0)].receive(PortEvent:{connClosed:=?}) -> value pev { + log("Peer closed conn: ", pev) + } + } + + /* Wait for a while to make sure ASP doesn't reconnect to us: */ + timer T := 10.0; + T.start; + alt { + [] M3UA[M3UA_SRV(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(f_m3ua_srv_config(0), "no shutdown"); + log("Waiting for client ASP to reconnect to us"); + M3UA[M3UA_SRV(0)].receive(tr_ConnOpened) -> value pev { + g_m3ua_conn_id[M3UA_SRV(0)] := pev.connOpened.connId; + } + f_M3UA_CLNT_asp_up_act(M3UA_SRV(0), rctx := rctx); + + f_clear_m3ua(); +} + 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]; @@ -1570,6 +1613,7 @@ execute( TC_clnt_no_snm_inactive() ); execute( TC_clnt_quirk_snm_inactive() );
+ execute( TC_clnt_sctp_adm_shutdown() );
/* M3UA SSNM tests */ execute( TC_ssnm_aspac_dava_aspia_duna() ); diff --git a/stp/expected-results.xml b/stp/expected-results.xml index 3fbe1a5..9eff92e5 100644 --- a/stp/expected-results.xml +++ b/stp/expected-results.xml @@ -36,6 +36,7 @@ <testcase classname='STP_Tests_M3UA' name='TC_clnt_quirk_daud_in_asp' time='MASKED'/> <testcase classname='STP_Tests_M3UA' name='TC_clnt_no_snm_inactive' time='MASKED'/> <testcase classname='STP_Tests_M3UA' name='TC_clnt_quirk_snm_inactive' time='MASKED'/> + <testcase classname='STP_Tests_M3UA' name='TC_clnt_sctp_adm_shutdown' time='MASKED'/> <testcase classname='STP_Tests_M3UA' name='TC_ssnm_aspac_dava_aspia_duna' time='MASKED'/> <testcase classname='STP_Tests_M3UA' name='TC_ssnm_distribution_dava_duna' time='MASKED'/> <testcase classname='STP_Tests_M3UA' name='TC_ssnm_distribution_dava_duna_multipc' time='MASKED'/>