MME_Tests: add testcase TC_s1ap_reset
There is currently no testcase that makes sure that the S1AP reset
works.
Related: OS#5760
Change-Id: I23f4d5f2c39790b6cb0dacaec1e31912177af3ec
diff --git a/library/s1ap/S1AP_Templates.ttcn b/library/s1ap/S1AP_Templates.ttcn
index 46ec779..9e75cec 100644
--- a/library/s1ap/S1AP_Templates.ttcn
+++ b/library/s1ap/S1AP_Templates.ttcn
@@ -251,8 +251,18 @@
}
}
}
-
-
+template (present) S1AP_PDU
+tr_S1AP_ResetAck_any := {
+ successfulOutcome := {
+ procedureCode := id_Reset,
+ criticality := reject,
+ value_ := {
+ ResetAcknowledge := {
+ protocolIEs := ?
+ }
+ }
+ }
+}
/*********************************************************************************
@@ -938,7 +948,7 @@
/* all non-UE-related S1AP messages */
template (present) S1AP_PDU
tr_S1AP_nonUErelated := (tr_S1AP_SetupReq, tr_S1AP_SetupResp, tr_S1AP_SetupFail,
- tr_S1AP_Reset, tr_S1AP_ResetAck, tr_S1AP_MMEDirectInfTrans
+ tr_S1AP_Reset, tr_S1AP_ResetAck, tr_S1AP_ResetAck_any, tr_S1AP_MMEDirectInfTrans
);
}
diff --git a/mme/MME_Tests.ttcn b/mme/MME_Tests.ttcn
index ebfb673..17a4d60 100644
--- a/mme/MME_Tests.ttcn
+++ b/mme/MME_Tests.ttcn
@@ -905,6 +905,31 @@
vc_conn.done;
}
+/* Successful RESET procedure from eNB to MME */
+testcase TC_s1ap_reset() runs on MTC_CT {
+ var charstring id := testcasename();
+ f_init_s1ap(id, 3);
+ f_s1ap_setup(0);
+
+ var template (value) Cause reset_cause := {misc := om_intervention};
+ var template (value) ResetType reset_type := {s1_Interface := reset_all};
+ timer T := 5.0;
+
+ S1AP_UNIT[0].send(ts_S1AP_Reset(reset_cause, reset_type));
+ T.start;
+ alt {
+ [] S1AP_UNIT[0].receive(tr_S1AP_ResetAck_any) {
+ setverdict(pass);
+ }
+ [] S1AP_UNIT[0].receive {
+ setverdict(fail, "Received unexpected S1AP");
+ }
+ [] T.timeout {
+ setverdict(fail, "Timeout waiting for S1AP Setup result");
+ }
+ }
+}
+
control {
execute( TC_s1ap_setup_wrong_plmn() );
execute( TC_s1ap_setup_wrong_tac() );
@@ -912,6 +937,8 @@
execute( TC_s1ap_attach() );
execute( TC_gn_echo_request() );
execute( TC_RIM_RAN_INF() );
+ execute( TC_s1ap_reset() );
}
+
}