From a5c71cdefe659f984f7d268a8e5dd980a66bac3b Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Wed, 17 Jun 2020 22:12:04 +0200 Subject: sgsn: Allow f_gtpu_xceive_mt() to verify non-forwarding case In some scenarios we do not expect a PDU from GTP to show up on the Gb side. Let's add support for this. Change-Id: Ia9fde1d433657c920ee1ec4d41004f4544ceb346 Related: OS#4616 --- sgsn/SGSN_Tests.ttcn | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 77ebbcda..4b4bbd98 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1506,15 +1506,26 @@ template (value) PDU_SN ts_SN_UD(BIT4 nsapi, octetstring payload) := { } /* Transceive given 'payload' as MT message from GTP -> OsmoSGSN -> Gb */ -private function f_gtpu_xceive_mt(inout PdpActPars apars, octetstring payload, integer ran_index := 0) +private function f_gtpu_xceive_mt(inout PdpActPars apars, octetstring payload, integer ran_index := 0, boolean expect_fwd := true) runs on BSSGP_ConnHdlr { + timer T := 5.0; /* Send PDU via GTP from our simulated GGSN to the SGSN */ f_gtpu_send(apars, payload); + T.start; /* Expect PDU via BSSGP/LLC on simulated PCU from SGSN */ alt { [] as_xid(apars, ran_index); //[] BSSGP[ran_index].receive(tr_BD_SNDCP(apars.sapi, tr_SN_UD(apars.nsapi, payload))); - [] BSSGP[ran_index].receive(tr_SN_UD(apars.nsapi, payload)); + [expect_fwd] BSSGP[ran_index].receive(tr_SN_UD(apars.nsapi, payload)); + [expect_fwd] T.timeout { + setverdict(fail, "Timeout waiting for GTP-U to appear on BSSGP"); + mtc.stop; + } + [not expect_fwd] BSSGP[ran_index].receive(tr_SN_UD(apars.nsapi, payload)) { + setverdict(fail, "GTP-U forwarded to BSSGP but not expected") + mtc.stop; + } + [not expect_fwd] T.timeout {} } } -- cgit v1.2.3