pespin has uploaded this change for review.

View Change

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:
!

To view, visit change 40475. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I5a41857dbd9f0bfe40a3a539aaed8361bc29fd6b
Gerrit-Change-Number: 40475
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin@sysmocom.de>