pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/40475?usp=email )
Change subject: stp: IPA: Introduce test TC_clnt_beat_timeout ......................................................................
stp: IPA: Introduce test TC_clnt_beat_timeout
Change-Id: I5a41857dbd9f0bfe40a3a539aaed8361bc29fd6b Related: SYS#7501 Related: OS#4072 --- M stp/STP_Tests_IPA.cfg M stp/STP_Tests_IPA.ttcn M stp/expected-results.xml M stp/osmo-stp-ipa.confmerge 4 files changed, 55 insertions(+), 7 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/75/40475/1
diff --git a/stp/STP_Tests_IPA.cfg b/stp/STP_Tests_IPA.cfg index 5399093..9e9538e 100644 --- a/stp/STP_Tests_IPA.cfg +++ b/stp/STP_Tests_IPA.cfg @@ -60,6 +60,13 @@ is_server := false, remote_port := 5000, local_port := 20007 + }, + { + asp_name := "ipa-asp-client0", + as_name := "ipa-as-client0", + is_server := true, + remote_port := 7001, + local_port := 6001 } }
diff --git a/stp/STP_Tests_IPA.ttcn b/stp/STP_Tests_IPA.ttcn index 54a64d8..a34fd6d 100644 --- a/stp/STP_Tests_IPA.ttcn +++ b/stp/STP_Tests_IPA.ttcn @@ -203,6 +203,30 @@ } }
+friend function f_listen_ipa(integer idx) runs on IPA_CT { + vc_IPA[idx].start(IPA_Emulation.main_server(mp_local_ipa_ip, + g_ipa_configs[idx].local_port)); + + /* wait for incoming connection to IPA port before proceeding */ + var integer st := 0; + timer T := 10.0; + T.start; + alt { + [st == 0] IPA_CTRL[idx].receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_UP)) { + st := 1; repeat; + } + [st == 1] IPA_CTRL[idx].receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_ID_RESP)) { + st := 2; repeat; + } + [st == 2] IPA_CTRL[idx].receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_ID_ACK)) { + setverdict(pass); + } + [] T.timeout { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("No connection to IPA[", idx, "] Port")); + } + } +}
/* "accept-asp-connections pre-configured" and client from unknown ASP source * (but known AS/ipa_unit_name) */ @@ -564,11 +588,10 @@ f_vty_cs7_ipa_asp_cmd(ipa_configs[0], "timer xua beat 3");
if (ipa_configs[0].is_server) { - /* TODO */ + f_listen_ipa(0); } else { f_connect_ipa(0); } - f_sleep(3.0); /* receive CCM IPA PING: */ f_ipa_cfg_chg_ccm_enabled(IPA_CFG[0], false);
@@ -610,6 +633,12 @@ f_TC_beat_timeout(asps); }
+/* Test the IUT sends heartbeat procedure when needed. */ +testcase TC_clnt_beat_timeout() runs on IPA_CT { + var Misc_Helpers.ro_charstring asps := { "ipa-asp-client0" }; + f_TC_beat_timeout(asps); +} + control { execute( TC_unknown_client_nodynamic() ); execute( TC_unknown_as_client_nodynamic() ); @@ -624,6 +653,7 @@
execute( TC_beat() ); execute( TC_beat_timeout() ); + execute( TC_clnt_beat_timeout() ); }
diff --git a/stp/expected-results.xml b/stp/expected-results.xml index db36ab4..db4cbec 100644 --- a/stp/expected-results.xml +++ b/stp/expected-results.xml @@ -1,5 +1,5 @@ <?xml version="1.0"?> -<testsuite name='STP_Tests' tests='54' failures='0' errors='0' skipped='0' inconc='0' time='MASKED'> +<testsuite name='STP_Tests' tests='55' failures='0' errors='0' skipped='0' inconc='0' time='MASKED'> <testcase classname='STP_Tests_M3UA' name='TC_connect_asp_up' time='MASKED'/> <testcase classname='STP_Tests_M3UA' name='TC_beat' time='MASKED'/> <testcase classname='STP_Tests_M3UA' name='TC_beat_payload' time='MASKED'/> @@ -56,6 +56,7 @@ <testcase classname='STP_Tests_IPA' name='TC_unknown_client_dynamic_tmt_loadshare' time='MASKED'/> <testcase classname='STP_Tests_IPA' name='TC_beat' time='MASKED'/> <testcase classname='STP_Tests_IPA' name='TC_beat_timeout' time='MASKED'/> + <testcase classname='STP_Tests_IPA' name='TC_clnt_beat_timeout' time='MASKED'/> <testcase classname='STP_Tests_IPA_M3UA' name='TC_m3ua_to_ipa' time='MASKED'/> <testcase classname='STP_Tests_IPA_M3UA' name='TC_ipa_to_m3ua' time='MASKED'/> <testcase classname='STP_Tests_IPA_M3UA' name='TC_ipa_to_m3ua_ni' time='MASKED'/> diff --git a/stp/osmo-stp-ipa.confmerge b/stp/osmo-stp-ipa.confmerge index 500f5ac..954f175 100644 --- a/stp/osmo-stp-ipa.confmerge +++ b/stp/osmo-stp-ipa.confmerge @@ -17,12 +17,12 @@ local-ip 127.0.0.1 remote-ip 127.0.0.1 role sg - sctp-role server + transport-role server asp ipa-asp-loadshare-receiver1 20003 5000 ipa local-ip 127.0.0.1 remote-ip 127.0.0.1 role sg - sctp-role server + transport-role server as ipa-as-loadshare-receiver ipa traffic-mode loadshare routing-key 0 7 @@ -41,18 +41,28 @@ local-ip 127.0.0.1 remote-ip 127.0.0.1 role sg - sctp-role server + transport-role server asp ipa-asp-override-receiver1 20007 5000 ipa local-ip 127.0.0.1 remote-ip 127.0.0.1 role sg - sctp-role server + transport-role server as ipa-as-override-receiver ipa traffic-mode override routing-key 0 8 point-code override dpc 34 asp ipa-asp-override-receiver0 asp ipa-asp-override-receiver1 + asp ipa-asp-client0 6001 7001 ipa + local-ip 127.0.0.1 + remote-ip 127.0.0.1 + role asp + transport-role client + as ipa-as-client ipa + traffic-mode override + routing-key 0 9 + point-code override dpc 35 + asp ipa-asp-client0 ! ! ROUTING TABLE: !