diff options
author | Harald Welte <laforge@osmocom.org> | 2020-11-15 21:45:49 +0100 |
---|---|---|
committer | daniel <dwillmann@sysmocom.de> | 2020-11-16 19:16:27 +0000 |
commit | 9268601b27a27caf8929851328064dcc89d9ed35 (patch) | |
tree | 394f7d52e9103607f2aefd35b7d93da94dd72ccd | |
parent | fbae83ffba83c6db3cdf1662d3de628aee5de768 (diff) |
gbproxy: Add test for Uplink-Unitdata
Change-Id: I912ba5a83c852e6ad9524e06a8e76e9f16a517d8
-rw-r--r-- | gbproxy/GBProxy_Tests.ttcn | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 81c55b5e..9ee90938 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -566,8 +566,46 @@ friend function f_bssgp_resume(OCT1 susp_ref, integer ran_idx := 0) runs on BSSG } +/* send uplink-unitdata of a variety of different sizes; expect it to show up on SGSN */ +private function f_TC_ul_unitdata(charstring id) runs on BSSGP_ConnHdlr { + var integer i; + + for (i := 0; i < 1024; i := i+1) { + var octetstring payload := f_rnd_octstring(i); + var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_UL_UD(g_pars.tlli, g_pars.bssgp_cell_id[0], payload); + /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */ + var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_UL_UD(g_pars.tlli, g_pars.bssgp_cell_id[0], payload); + + PCU[0].send(pdu_tx); + alt { + [] SGSN[0].receive(pdu_rx); + /* FIXME: Those should be handled before the ConnHdlr is started */ + [] SGSN[0].receive(BssgpStatusIndication:{*,?,BVC_S_UNBLOCKED}) { repeat; } + [] SGSN[0].receive { + setverdict(fail, "SGSN Received unexpected"); + mtc.stop; + } + } + } + setverdict(pass); +} + +testcase TC_ul_unitdata() runs on test_CT +{ + var BSSGP_ConnHdlr vc_conn; + f_init(); + + vc_conn := f_start_handler(refers(f_TC_ul_unitdata), testcasename(), g_pcu, g_sgsn, 1); + vc_conn.done; + /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */ + + f_cleanup(); +} + + control { execute( TC_BVC_bringup() ); + execute( TC_ul_unitdata() ); } |