diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2019-12-04 19:24:16 +0100 |
---|---|---|
committer | laforge <laforge@osmocom.org> | 2019-12-06 09:51:31 +0000 |
commit | 6e3b68988a5413341e866613f00197dc78e05548 (patch) | |
tree | ee9e00195f0112280621bbf66f63acdf1fb85be8 | |
parent | 1a4d4e97b7cca28830304dce56c554aeb4de0258 (diff) |
pcu: Verify contents of data dl blocks originated from emulated SGSN
Change-Id: I4fe79572094038cbb26d5195c0544846ca2550b5
-rw-r--r-- | pcu/PCU_Tests_RAW.ttcn | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/pcu/PCU_Tests_RAW.ttcn b/pcu/PCU_Tests_RAW.ttcn index 410dc31c..cddf9f66 100644 --- a/pcu/PCU_Tests_RAW.ttcn +++ b/pcu/PCU_Tests_RAW.ttcn @@ -759,13 +759,34 @@ private function f_rx_rlcmac_dl_block_exp_data(out RlcmacDlBlock dl_block, octet runs on RAW_PCU_Test_CT { var template RlcmacDlBlock dl_template := tr_RLCMAC_DATA_RRBP; dl_template.data.blocks := ?; - /* TODO: match data correctly: { valueof(t_RLCMAC_LLCBLOCK(data)) }; */ f_rx_rlcmac_dl_block(dl_block); if (not match(dl_block, dl_template)) { setverdict(fail, "Failed to match Packet data: ", dl_block, " vs ", dl_template); mtc.stop; } + + if (lengthof(dl_block.data.blocks) < 1) { + setverdict(fail, "DL block has no LLC payload: ", dl_block); + mtc.stop; + } + + if (ispresent(dl_block.data.blocks[0].hdr) and dl_block.data.blocks[0].hdr.length_ind != lengthof(data)) { + setverdict(fail, "DL block has LLC header with wrong expected size: ", + dl_block.data.blocks[0].hdr.length_ind, " vs ", lengthof(data)); + mtc.stop; + } + + if (dl_block.data.blocks[0].payload != data) { + setverdict(fail, "Failed to match content of LLC payload in DL Block: ", dl_block, " vs ", data); + mtc.stop; + } + + /* Check next data blocks contain dummy frames */ + if (lengthof(dl_block.data.blocks) > 1 and substr(dl_block.data.blocks[1].payload, 0, 3) != '43C001'O) { + setverdict(fail, "Second data payload is not a dummy frame: ", dl_block.data.blocks[1].payload); + mtc.stop; + } } testcase TC_pcuif_suspend() runs on RAW_PCU_Test_CT { |