fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/39872?usp=email )
Change subject: msc: split up as_unexp_gsup_or_bssap_msg() ......................................................................
msc: split up as_unexp_gsup_or_bssap_msg()
Make use of derived as_unexp_{gsup,bssap}_msg() altsteps. Take a chance to improve them by printing unexpected PDUs.
Change-Id: Ie6c349bdae289d19614809545e23c2b7bf88f8ed --- M msc/MSC_Tests.ttcn 1 file changed, 47 insertions(+), 88 deletions(-)
Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified fixeria: Looks good to me, approved
diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 380052b..03f2412 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -673,14 +673,11 @@ alt { [] BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ)) { } //[] BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_ACC)) { } - [] BSSAP.receive { - setverdict(fail, "Received unexpected BSSAP"); - mtc.stop; - } [] GSUP.receive(tr_GSUP_UL_REQ(g_pars.imsi)) { setverdict(fail, "Unexpected GSUP UL REQ"); mtc.stop; } + [] as_unexp_bssap_msg(); [] T.timeout { setverdict(fail, "Timeout waiting for CM SERV REJ"); mtc.stop; @@ -714,10 +711,7 @@ T.start; alt { [] BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ)) { } - [] BSSAP.receive { - setverdict(fail, "Received unexpected BSSAP"); - mtc.stop; - } + [] as_unexp_bssap_msg(); [] T.timeout { setverdict(fail, "Timeout waiting for CM SERV REJ"); mtc.stop; @@ -1890,10 +1884,7 @@ f_cl3_or_initial_ue(l3_info); alt { [] BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ)) { } - [] BSSAP.receive { - setverdict(fail, "Received unexpected BSSAP instead of CM SERV REJ"); - mtc.stop; - } + [] as_unexp_bssap_msg(); }
f_expect_clear(); @@ -1974,10 +1965,7 @@ setverdict(fail, "CipherModeCommand despite no A5 intersection"); mtc.stop; } - [] BSSAP.receive { - setverdict(fail, "Unknown/unexpected BSSAP received"); - mtc.stop; - } + [] as_unexp_bssap_msg(); } setverdict(pass); } @@ -2041,10 +2029,7 @@ setverdict(fail, "CipherModeCommand despite no A5 intersection"); mtc.stop; } - [] BSSAP.receive { - setverdict(fail, "Unknown/unexpected BSSAP received"); - mtc.stop; - } + [] as_unexp_bssap_msg(); } setverdict(pass); } @@ -2545,10 +2530,7 @@ setverdict(fail, "paging seems not to stop!"); mtc.stop; } - [] BSSAP.receive { - setverdict(fail, "unexpected BSSAP message received"); - self.stop; - } + [] as_unexp_bssap_msg(); [] T.timeout { setverdict(pass); } @@ -2793,10 +2775,7 @@ log("RX MO-forwardSM-Req: ", gsup_msg_rx); setverdict(pass); } - [] GSUP.receive { - setverdict(fail, "Rx unexpected GSUP message"); - mtc.stop; - } + [] as_unexp_gsup_msg(); }
/* Trigger RP-ACK by sending MO-forwardSM-Res */ @@ -2848,10 +2827,7 @@ log("RX MO-ReadyForSM-Req: ", gsup_msg_rx); setverdict(pass); } - [] GSUP.receive { - setverdict(fail, "Rx unexpected GSUP message"); - mtc.stop; - } + [] as_unexp_gsup_msg(); }
/* Trigger RP-ACK by sending MO-forwardSM-Res */ @@ -2935,10 +2911,7 @@ log("RX MT-forwardSM-Res (RP-ACK)"); setverdict(pass); } - [] GSUP.receive { - setverdict(fail, "Rx unexpected GSUP message"); - mtc.stop; - } + [] as_unexp_gsup_msg(); }
f_expect_clear(); @@ -2997,10 +2970,7 @@ setverdict(pass); mtc.stop; } - [] GSUP.receive { - setverdict(fail, "Rx unexpected GSUP message"); - mtc.stop; - } + [] as_unexp_gsup_msg(); }
f_expect_clear(); @@ -3084,10 +3054,7 @@ log("RX MT-forwardSM-Res (RP-ACK)"); setverdict(pass); } - [] GSUP.receive { - setverdict(fail, "Rx unexpected GSUP message"); - mtc.stop; - } + [] as_unexp_gsup_msg(); }
/* Send the 2nd RP-ACK and expect MT-forwardSM-Res on GSUP */ @@ -3100,10 +3067,7 @@ log("RX MT-forwardSM-Res (RP-ACK)"); setverdict(pass); } - [] GSUP.receive { - setverdict(fail, "Rx unexpected GSUP message"); - mtc.stop; - } + [] as_unexp_gsup_msg(); }
f_expect_clear(); @@ -3155,10 +3119,7 @@ log("RX MO-ReadyForSM-Req, SM-RP-MR is '00'O"); setverdict(pass); } - [] GSUP.receive { - setverdict(fail, "Rx unexpected GSUP message"); - mtc.stop; - } + [] as_unexp_gsup_msg(); }
/* Submit MT SMS on GSUP */ @@ -3197,10 +3158,7 @@ log("RX MT-forwardSM-Res (RP-ACK)"); setverdict(pass); } - [] GSUP.receive { - setverdict(fail, "Rx unexpected GSUP message"); - mtc.stop; - } + [] as_unexp_gsup_msg(); }
f_expect_clear(); @@ -3260,10 +3218,7 @@ log("RX MT-forwardSM-Res (RP-ACK)"); setverdict(pass); } - [] GSUP.receive { - setverdict(fail, "Rx unexpected GSUP message"); - mtc.stop; - } + [] as_unexp_gsup_msg(); }
/* Keep some 'distance' between transmissions */ @@ -3321,10 +3276,7 @@ log("RX MT-forwardSM-Res (RP-ACK)"); setverdict(pass); } - [] GSUP.receive { - setverdict(fail, "Rx unexpected GSUP message"); - mtc.stop; - } + [] as_unexp_gsup_msg(); }
f_expect_clear(); @@ -3461,16 +3413,33 @@ * USSD Testing ***********************************************************************/
-private altstep as_unexp_gsup_or_bssap_msg() +private altstep as_unexp_gsup_msg() runs on BSC_ConnHdlr { - [] GSUP.receive { - setverdict(fail, "Unknown/unexpected GSUP received"); + var GSUP_PDU pdu; + + [] GSUP.receive(GSUP_PDU:?) -> value pdu { + setverdict(fail, "Unknown/unexpected GSUP received: ", pdu); self.stop; - } + } +} + +private altstep as_unexp_bssap_msg() +runs on BSC_ConnHdlr { + var PDU_DTAP_MT dtap; + var PDU_BSSAP bssap; + + [] BSSAP.receive(PDU_DTAP_MT:?) -> value dtap { + setverdict(fail, "Unknown/unexpected BSSAP/DTAP received: ", dtap); + self.stop; + } + [] BSSAP.receive(PDU_BSSAP:?) -> value bssap { + setverdict(fail, "Unknown/unexpected BSSAP received: ", bssap); + self.stop; + } [] BSSAP.receive { - setverdict(fail, "Unknown/unexpected BSSAP message received"); + setverdict(fail, "Unknown/unexpected BSSAP received"); self.stop; - } + } }
private function f_expect_gsup_msg(template GSUP_PDU msg, @@ -3485,7 +3454,8 @@ setverdict(pass); } /* We don't expect anything else */ - [] as_unexp_gsup_or_bssap_msg(); + [] as_unexp_gsup_msg(); + [] as_unexp_bssap_msg(); [] T.timeout { setverdict(fail, "Timeout waiting for GSUP message: ", msg); } @@ -3506,7 +3476,8 @@ setverdict(pass); } /* We don't expect anything else */ - [] as_unexp_gsup_or_bssap_msg(); + [] as_unexp_gsup_msg(); + [] as_unexp_bssap_msg(); [] T.timeout { setverdict(fail, "Timeout waiting for BSSAP message: ", msg); } @@ -4385,10 +4356,7 @@ setverdict(fail, "Wrong ciphering algorithm mask in CiphModCmd"); mtc.stop; } - [] BSSAP.receive { - setverdict(fail, "Unknown/unexpected BSSAP received"); - mtc.stop; - } + [] as_unexp_bssap_msg(); } f_expect_common_id();
@@ -4397,10 +4365,7 @@ [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) { setverdict(pass); } - [] BSSAP.receive { - setverdict(fail, "Unknown/unexpected BSSAP received"); - mtc.stop; - } + [] as_unexp_bssap_msg(); } f_expect_clear(); } @@ -4434,10 +4399,7 @@ [] BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_LU_Rej)) { setverdict(pass); } - [] BSSAP.receive { - setverdict(fail, "Unknown/unexpected BSSAP received"); - mtc.stop; - } + [] as_unexp_bssap_msg(); } f_expect_clear(verify_vlr_cell_id:=false); } @@ -4481,10 +4443,7 @@ setverdict(fail, "Wrong ciphering algorithm mask in CiphModCmd"); mtc.stop; } - [] BSSAP.receive { - setverdict(fail, "Unknown/unexpected BSSAP received"); - mtc.stop; - } + [] as_unexp_bssap_msg(); } f_expect_common_id();