Change in osmo-ttcn3-hacks[master]: stp: Make sure all AS are shutdown when test finishes

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

laforge gerrit-no-reply at lists.osmocom.org
Tue Nov 12 21:35:55 UTC 2019


laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/16040 )

Change subject: stp: Make sure all AS are shutdown when test finishes
......................................................................

stp: Make sure all AS are shutdown when test finishes

This way traffic modes set dynamically by peers are cleared and can be
reset by next tests easily.

Change-Id: I177441b2d43298b3836ccf78fe11267333e80665
---
M stp/STP_Tests.ttcn
M stp/STP_Tests_M3UA.ttcn
2 files changed, 56 insertions(+), 0 deletions(-)

Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved



diff --git a/stp/STP_Tests.ttcn b/stp/STP_Tests.ttcn
index 023c53d..82bc03b 100644
--- a/stp/STP_Tests.ttcn
+++ b/stp/STP_Tests.ttcn
@@ -170,6 +170,8 @@
 
 	/* expect to receive it via IPA */
 	f_IPA_exp(0, sccp_enc);
+
+	f_clear_m3ua();
 }
 
 /* test routing an SCCP message from IPA ASP to M3UA ASP */
@@ -199,6 +201,8 @@
 	var template (present) M3UA_Protocol_Data rx_pd;
 	rx_pd := tr_M3UA_protocol_data(pc_sender, pc_receiver, c_M3UA_SI_SCCP, '00'O, '00'O, '00'O, sccp_enc);
 	f_M3UA_exp(0, tr_M3UA_DATA(rctx_receiver, rx_pd));
+
+	f_clear_m3ua();
 }
 
 /* test routing an SCCP message from IPA ASP to M3UA ASP while patching PC into SCCP addresses */
@@ -233,6 +237,8 @@
 	rx_pd := tr_M3UA_protocol_data(pc_sender, pc_receiver, c_M3UA_SI_SCCP, '00'O, '00'O, '00'O,
 					enc_PDU_SCCP(sccp_exp));
 	f_M3UA_exp(0, tr_M3UA_DATA(rctx_receiver, rx_pd));
+
+	f_clear_m3ua();
 }
 
 
diff --git a/stp/STP_Tests_M3UA.ttcn b/stp/STP_Tests_M3UA.ttcn
index 5c15c6f..c550d40 100644
--- a/stp/STP_Tests_M3UA.ttcn
+++ b/stp/STP_Tests_M3UA.ttcn
@@ -38,6 +38,7 @@
 	integer mp_stp_m3ua_port := 2905;
 	integer mp_stp_m3ua_clnt_port := 2906;
 	integer mp_local_m3ua_port := 9999;
+	integer mp_recovery_timeout_msec := 2000;
 }
 
 private const integer NR_M3UA := 3;	/* number of M3UA clients in ATS */
@@ -103,6 +104,12 @@
 	g_m3ua_conn_id[i] := res.connId;
 }
 
+friend function f_M3UA_close(integer i) runs on RAW_M3UA_CT {
+	var Result res;
+	res := M3UA_CodecPort_CtrlFunct.f_IPL4_close(M3UA[i], g_m3ua_conn_id[i], {sctp:=valueof(ts_SCTP)});
+	g_m3ua_conn_id[i] := 0;
+}
+
 friend function f_M3UA_listen(integer i) runs on RAW_M3UA_CT {
 	var Result res;
 	res := M3UA_CodecPort_CtrlFunct.f_IPL4_listen(M3UA[i], mp_local_ip, mp_local_m3ua_port+i,
@@ -126,6 +133,19 @@
 	}
 }
 
+friend function f_clear_m3ua() runs on RAW_M3UA_CT {
+	var integer i;
+
+	log("Clearing M3UA...");
+
+	for (i := 0; i < NR_M3UA; i:=i+1) {
+		f_M3UA_close(i);
+	}
+	/* Wait for recovery timer to trigger and shutdown all AS: */
+	f_sleep(int2float(mp_recovery_timeout_msec)/1000.0 + 0.5);
+	setverdict(pass, "M3UA cleared");
+}
+
 friend function f_init_m3ua_srv() runs on RAW_M3UA_CT {
 	var integer i;
 	var PortEvent sctp_evt;
@@ -192,6 +212,7 @@
 	f_init_m3ua();
 	f_M3UA_asp_up(0);
 	f_M3UA_exp(0, tr_M3UA_NOTIFY(c_M3UA_ST_T_STATE_CHG, c_M3UA_ST_I_AS_INACTIVE, *));
+	f_clear_m3ua();
 }
 
 /* Test the heartbeat procedure without optional heartbeat data payload */
@@ -200,6 +221,7 @@
 	f_M3UA_asp_up(0);
 	f_M3UA_exp(0, tr_M3UA_NOTIFY(c_M3UA_ST_T_STATE_CHG, c_M3UA_ST_I_AS_INACTIVE, *));
 	f_M3UA_beat(0, omit);
+	f_clear_m3ua();
 }
 
 /* Test the heartbeat procedure with optional heartbeat data payload */
@@ -208,30 +230,35 @@
 	f_M3UA_asp_up(0);
 	f_M3UA_exp(0, tr_M3UA_NOTIFY(c_M3UA_ST_T_STATE_CHG, c_M3UA_ST_I_AS_INACTIVE, *));
 	f_M3UA_beat(0, 'a1a2a3a4a5'O);
+	f_clear_m3ua();
 }
 
 /* Test the ASP-ACTIVATE procedure (without traffic-mode or routing ctx) */
 testcase TC_asp_act() runs on RAW_M3UA_CT {
 	f_init_m3ua();
 	f_M3UA_asp_up_act(0);
+	f_clear_m3ua();
 }
 
 /* Test the ASP-ACTIVATE procedure with traffic-mode override */
 testcase TC_asp_act_override() runs on RAW_M3UA_CT {
 	f_init_m3ua();
 	f_M3UA_asp_up_act(0, c_M3UA_TMT_override, omit);
+	f_clear_m3ua();
 }
 
 /* Test the ASP-ACTIVATE procedure with traffic-mode override */
 testcase TC_asp_act_loadshare() runs on RAW_M3UA_CT {
 	f_init_m3ua();
 	f_M3UA_asp_up_act(0, c_M3UA_TMT_loadshare, omit);
+	f_clear_m3ua();
 }
 
 /* Test the ASP-ACTIVATE procedure with traffic-mode broadcast */
 testcase TC_asp_act_broadcast() runs on RAW_M3UA_CT {
 	f_init_m3ua();
 	f_M3UA_asp_up_act(0, c_M3UA_TMT_broadcast, omit);
+	f_clear_m3ua();
 }
 
 /* Test if traffic is routed from idx_tx/pc_tx to idx_rx/pc_rx */
@@ -274,6 +301,7 @@
 	/* verify traffic is routed from sender to new receiver */
 	f_test_traffic(0, rctx_sender, pc_sender, 2, rctx_receiver, pc_receiver);
 
+	f_clear_m3ua();
 }
 
 private altstep as_count_rx(integer idx, template (present) PDU_M3UA exp, inout integer counter)
@@ -332,6 +360,8 @@
 		}
 	}
 	setverdict(pass);
+
+	f_clear_m3ua();
 }
 
 /* test "traffic-mode broadcast" behavior */
@@ -373,6 +403,8 @@
 		f_M3UA_exp(2, tr_M3UA_DATA(rctx_receiver, rx_pd));
 	}
 	setverdict(pass);
+
+	f_clear_m3ua();
 }
 
 private function f_M3UA_rkm_register(OCT4 id, OCT3 dpc, OCT4 rctx,
@@ -390,6 +422,8 @@
 	f_M3UA_send(0, ts_M3UA_REG_REQ({ts_M3UA_rkey(id:='00000099'O, dpc:='aabbcc'O)}));
 	f_M3UA_exp(0, tr_M3UA_REG_RSP({tr_M3UA_reg_res(id:='00000099'O, status:=c_M3UA_REGSTS_ERR_EPERM,
 						       rctx:=?)}));
+
+	f_clear_m3ua();
 }
 
 /* Send RKM registration; expect OK as RCTX does match config */
@@ -402,6 +436,8 @@
 	f_M3UA_send(0, ts_M3UA_REG_REQ({ts_M3UA_rkey(id:='10000099'O, dpc:=dpc, rctx:=rctx)}));
 	f_M3UA_exp(0, tr_M3UA_REG_RSP({tr_M3UA_reg_res(id:='10000099'O, status:=c_M3UA_REGSTS_SUCCESS,
 						       rctx:=rctx)}));
+
+	f_clear_m3ua();
 }
 
 /* Send RKM registration; expect OK as dynamic not permitted */
@@ -415,6 +451,8 @@
 						       rctx:=?)}));
 
 	f_vty_config2(VTY, {"cs7 instance 0"}, "xua rkm routing-key-allocation static-only");
+
+	f_clear_m3ua();
 }
 
 /* try to de-register a routing key that was never registered -> error */
@@ -422,6 +460,7 @@
 	f_init_m3ua();
 	f_M3UA_send(0, ts_M3UA_DEREG_REQ(ts_M3UA_routing_ctx(int2oct(1023,4))));
 	f_M3UA_exp(0, tr_M3UA_DEREG_RSP({tr_M3UA_dereg_res(?,c_m3UA_DEREGSTS_ERR_NOT_REG)}));
+	f_clear_m3ua();
 }
 
 /* try to de-register a routing key that is invalid (non-existant) -> error */
@@ -429,6 +468,7 @@
 	f_init_m3ua();
 	f_M3UA_send(0, ts_M3UA_DEREG_REQ(ts_M3UA_routing_ctx(int2oct(1234,4))));
 	f_M3UA_exp(0, tr_M3UA_DEREG_RSP({tr_M3UA_dereg_res(?,c_m3UA_DEREGSTS_ERR_INVAL_RCTX)}));
+	f_clear_m3ua();
 }
 
 /* try to de-register a routing key that was registered -> OK*/
@@ -436,6 +476,7 @@
 	f_init_m3ua();
 	f_M3UA_send(0, ts_M3UA_DEREG_REQ(ts_M3UA_routing_ctx(int2oct(1023,4))));
 	f_M3UA_exp(0, tr_M3UA_DEREG_RSP({tr_M3UA_dereg_res(?,c_m3UA_DEREGSTS_SUCCESS)}));
+	f_clear_m3ua();
 }
 
 /* try to de-register a routing key for an active ASP -> ERROR */
@@ -455,6 +496,8 @@
 	f_M3UA_send(0, ts_M3UA_DEREG_REQ(ts_M3UA_routing_ctx(rctx)));
 	f_M3UA_exp(0, tr_M3UA_DEREG_RSP({tr_M3UA_dereg_res(?,c_m3UA_DEREGSTS_ERR_ASP_ACTIVE)}));
 	/* FIXME: we now may have changed the state on the STP side! */
+
+	f_clear_m3ua();
 }
 
 /***********************************************************************
@@ -497,6 +540,8 @@
 	f_init_m3ua_srv();
 
 	f_M3UA_CLNT_asp_up(M3UA_SRV(0));
+
+	f_clear_m3ua();
 }
 
 /* Expect inbound connection from ASP/SCTP-client, followed by ASP-UP + ASP-ACT */
@@ -505,6 +550,8 @@
 	f_init_m3ua_srv();
 
 	f_M3UA_CLNT_asp_up_act(M3UA_SRV(0));
+
+	f_clear_m3ua();
 }
 
 /* Test traffic being routed through "server" side STP (M3UA SG), coming back in "client"
@@ -525,6 +572,8 @@
 
 	/* verify traffic is routed from sender to [sole] receiver */
 	f_test_traffic(0, rctx_sender, pc_sender, M3UA_SRV(0), rctx_receiver, pc_receiver);
+
+	f_clear_m3ua();
 }
 
 /* Test traffic being routed through "client" side STP (M3UA ASP), coming back in "server"
@@ -545,6 +594,7 @@
 
 	/* verify traffic is routed from sender to [sole] receiver */
 	f_test_traffic(M3UA_SRV(0), rctx_sender, pc_sender, 0, rctx_receiver, pc_receiver);
+	f_clear_m3ua();
 }
 
 

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

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I177441b2d43298b3836ccf78fe11267333e80665
Gerrit-Change-Number: 16040
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20191112/254277ed/attachment.htm>


More information about the gerrit-log mailing list