aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2019-12-04 19:24:16 +0100
committerlaforge <laforge@osmocom.org>2019-12-06 09:51:31 +0000
commit6e3b68988a5413341e866613f00197dc78e05548 (patch)
treeee9e00195f0112280621bbf66f63acdf1fb85be8
parent1a4d4e97b7cca28830304dce56c554aeb4de0258 (diff)
pcu: Verify contents of data dl blocks originated from emulated SGSN
-rw-r--r--pcu/PCU_Tests_RAW.ttcn23
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 {