Review at  https://gerrit.osmocom.org/5451

BSC_Tests: Migrate various ASSIGNMENT tests over to MSC_ConnHdlr

This way we benefit from the ability to handle the RR MODE MODIFY,
RSL MODE MODIFY, IPA CRCX and IPA MDCX capabilities of the MSC_ConnHdlr
component.  While each test case now needs a separate function in
addition to the actual testcase, this allows for more flexibility
and a more complete emulation of BTS behaviour.

Change-Id: Iba50663cb5104bf34bd6fc8aac2aa3b47155fe99
---
M bsc/BSC_Tests.ttcn
1 file changed, 108 insertions(+), 76 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks 
refs/changes/51/5451/1

diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 67f3eb2..ce61984 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -491,79 +491,6 @@
        f_assignment_exp(ass_cmd, exp_compl, "BSC failed SIGNALLING 
assignment");
 }
 
-testcase TC_assignment_fr_a5_0() runs on test_CT {
-       var template PDU_BSSAP exp_compl := tr_BSSMAP_AssignmentComplete(omit, 
?);
-       var BSSMAP_IE_AoIP_TransportLayerAddress tla := 
valueof(ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342));
-       var PDU_BSSAP ass_cmd := valueof(ts_BSSMAP_AssignmentReq(omit, tla));
-       const OCT8 kc := '0001020304050607'O;
-
-       ass_cmd.pdu.bssmap.assignmentRequest.channelType := 
valueof(ts_BSSMAP_IE_ChannelType);
-       ass_cmd.pdu.bssmap.assignmentRequest.codecList := 
valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
-       ass_cmd.pdu.bssmap.assignmentRequest.encryptionInformation :=
-                                                       
valueof(ts_BSSMAP_IE_EncrInfo(kc, '01'O));
-       f_assignment_exp(ass_cmd, exp_compl, "BSC failed TCH/F FR A5/0 
assignment");
-}
-
-testcase TC_assignment_fr_a5_1() runs on test_CT {
-       var template PDU_BSSAP exp_compl := tr_BSSMAP_AssignmentComplete(omit, 
?);
-       var BSSMAP_IE_AoIP_TransportLayerAddress tla := 
valueof(ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342));
-       var PDU_BSSAP ass_cmd := valueof(ts_BSSMAP_AssignmentReq(omit, tla));
-       const OCT8 kc := '0001020304050607'O;
-
-       ass_cmd.pdu.bssmap.assignmentRequest.channelType := 
valueof(ts_BSSMAP_IE_ChannelType);
-       ass_cmd.pdu.bssmap.assignmentRequest.codecList := 
valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
-       ass_cmd.pdu.bssmap.assignmentRequest.encryptionInformation :=
-                                                       
valueof(ts_BSSMAP_IE_EncrInfo(kc, '02'O));
-       f_assignment_exp(ass_cmd, exp_compl, "BSC failed TCH/F FR A5/1 
assignment");
-}
-
-/* Exxpet ASSIGNMENT FAIL if mandatory IE is missing */
-testcase TC_assignment_fr_a5_1_codec_missing() runs on test_CT {
-       var template PDU_BSSAP exp_fail := tr_BSSMAP_AssignmentFail;
-       var BSSMAP_IE_AoIP_TransportLayerAddress tla := 
valueof(ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342));
-       var PDU_BSSAP ass_cmd := valueof(ts_BSSMAP_AssignmentReq(omit, tla));
-       const OCT8 kc := '0001020304050607'O;
-
-       ass_cmd.pdu.bssmap.assignmentRequest.channelType := 
valueof(ts_BSSMAP_IE_ChannelType);
-       ass_cmd.pdu.bssmap.assignmentRequest.encryptionInformation :=
-                                                       
valueof(ts_BSSMAP_IE_EncrInfo(kc, '02'O));
-       f_assignment_exp(ass_cmd, exp_fail, "BSC didn't reject missing 
mandatory speech codec IE");
-}
-
-
-
-testcase TC_assignment_fr_a5_3() runs on test_CT {
-       var template PDU_BSSAP exp_compl := tr_BSSMAP_AssignmentComplete(omit, 
?);
-       var BSSMAP_IE_AoIP_TransportLayerAddress tla := 
valueof(ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342));
-       var PDU_BSSAP ass_cmd := valueof(ts_BSSMAP_AssignmentReq(omit, tla));
-       const OCT8 kc := '0001020304050607'O;
-
-       ass_cmd.pdu.bssmap.assignmentRequest.channelType := 
valueof(ts_BSSMAP_IE_ChannelType);
-       ass_cmd.pdu.bssmap.assignmentRequest.codecList := 
valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
-       ass_cmd.pdu.bssmap.assignmentRequest.encryptionInformation :=
-                                                       
valueof(ts_BSSMAP_IE_EncrInfo(kc, '08'O));
-       f_assignment_exp(ass_cmd, exp_compl, "BSC failed TCH/F FR A5/3 
assignment");
-}
-
-testcase TC_assignment_fr_a5_4() runs on test_CT {
-       var template PDU_BSSAP exp_fail := tr_BSSMAP_AssignmentFail;
-       var BSSMAP_IE_AoIP_TransportLayerAddress tla := 
valueof(ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342));
-       var PDU_BSSAP ass_cmd := valueof(ts_BSSMAP_AssignmentReq(omit, tla));
-       const OCT8 kc := '0001020304050607'O;
-       const OCT16 kc128 := kc & kc;
-
-       ass_cmd.pdu.bssmap.assignmentRequest.channelType := 
valueof(ts_BSSMAP_IE_ChannelType);
-       ass_cmd.pdu.bssmap.assignmentRequest.codecList := 
valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
-       ass_cmd.pdu.bssmap.assignmentRequest.encryptionInformation :=
-                                                       
valueof(ts_BSSMAP_IE_EncrInfo(kc, '10'O));
-       ass_cmd.pdu.bssmap.assignmentRequest.kC128 := 
valueof(ts_BSSMAP_IE_Kc128(kc128));
-       /* TODO: expect GSM0808_CAUSE_CIPHERING_ALGORITHM_NOT_SUPPORTED cause 
value */
-       f_assignment_exp(ass_cmd, exp_fail, "BSC accepted TCH/F FR A5/4 
assignment");
-}
-
-
-
-
 type record DchanTuple {
        integer sccp_conn_id,
        RslChannelNr rsl_chan_nr
@@ -1275,8 +1202,33 @@
        return vc_conn;
 }
 
+private function f_tc_assignment_fr_a5_0(charstring id) runs on MSC_ConnHdlr {
+       var TestHdlrParams pars := valueof(t_def_TestHdlrPars);
+       var template PDU_BSSAP exp_compl := tr_BSSMAP_AssignmentComplete(omit, 
?);
+       var BSSMAP_IE_AoIP_TransportLayerAddress tla := 
valueof(ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342));
+       var PDU_BSSAP ass_cmd := valueof(ts_BSSMAP_AssignmentReq(omit, tla));
+       const OCT8 kc := '0001020304050607'O;
 
-private function f_ass(charstring id) runs on MSC_ConnHdlr {
+       ass_cmd.pdu.bssmap.assignmentRequest.channelType := 
valueof(ts_BSSMAP_IE_ChannelType);
+       ass_cmd.pdu.bssmap.assignmentRequest.codecList := 
valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
+       ass_cmd.pdu.bssmap.assignmentRequest.encryptionInformation :=
+                                                       
valueof(ts_BSSMAP_IE_EncrInfo(kc, '01'O));
+       f_establish_fully(pars, ass_cmd, exp_compl);
+}
+
+testcase TC_assignment_fr_a5_0() runs on test_CT {
+       var MSC_ConnHdlr vc_conn;
+
+       f_init(true);
+       f_sleep(1.0);
+
+       vc_conn := f_start_handler(refers(f_tc_assignment_fr_a5_0), 
testcasename());
+       vc_conn.done;
+}
+
+
+
+private function f_tc_assignment_fr_a5_1(charstring id) runs on MSC_ConnHdlr {
        var TestHdlrParams pars := valueof(t_def_TestHdlrPars);
 
        var template PDU_BSSAP exp_compl := tr_BSSMAP_AssignmentComplete(omit, 
?);
@@ -1292,16 +1244,96 @@
        f_establish_fully(pars, ass_cmd, exp_compl);
 }
 
-testcase TC_hdlr() runs on test_CT {
+testcase TC_assignment_fr_a5_1() runs on test_CT {
        var MSC_ConnHdlr vc_conn;
 
        f_init(true);
        f_sleep(1.0);
 
-       vc_conn := f_start_handler(refers(f_ass), "foo");
+       vc_conn := f_start_handler(refers(f_tc_assignment_fr_a5_1), 
testcasename());
        vc_conn.done;
 }
 
+/* Expect ASSIGNMENT FAIL if mandatory IE is missing */
+private function f_tc_assignment_fr_a5_1_codec_missing(charstring id) runs on 
MSC_ConnHdlr {
+       var TestHdlrParams pars := valueof(t_def_TestHdlrPars);
+       var template PDU_BSSAP exp_fail := tr_BSSMAP_AssignmentFail;
+       var BSSMAP_IE_AoIP_TransportLayerAddress tla := 
valueof(ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342));
+       var PDU_BSSAP ass_cmd := valueof(ts_BSSMAP_AssignmentReq(omit, tla));
+       const OCT8 kc := '0001020304050607'O;
+
+       ass_cmd.pdu.bssmap.assignmentRequest.channelType := 
valueof(ts_BSSMAP_IE_ChannelType);
+       ass_cmd.pdu.bssmap.assignmentRequest.encryptionInformation :=
+                                                       
valueof(ts_BSSMAP_IE_EncrInfo(kc, '02'O));
+       f_establish_fully(pars, ass_cmd, exp_fail);
+}
+
+testcase TC_assignment_fr_a5_1_codec_missing() runs on test_CT {
+       var MSC_ConnHdlr vc_conn;
+
+       f_init(true);
+       f_sleep(1.0);
+
+       vc_conn := 
f_start_handler(refers(f_tc_assignment_fr_a5_1_codec_missing), testcasename());
+       vc_conn.done;
+}
+
+
+private function f_tc_assignment_fr_a5_3(charstring id ) runs on MSC_ConnHdlr {
+       var TestHdlrParams pars := valueof(t_def_TestHdlrPars);
+       var template PDU_BSSAP exp_compl := tr_BSSMAP_AssignmentComplete(omit, 
?);
+       var BSSMAP_IE_AoIP_TransportLayerAddress tla := 
valueof(ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342));
+       var PDU_BSSAP ass_cmd := valueof(ts_BSSMAP_AssignmentReq(omit, tla));
+       const OCT8 kc := '0001020304050607'O;
+
+       ass_cmd.pdu.bssmap.assignmentRequest.channelType := 
valueof(ts_BSSMAP_IE_ChannelType);
+       ass_cmd.pdu.bssmap.assignmentRequest.codecList := 
valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
+       ass_cmd.pdu.bssmap.assignmentRequest.encryptionInformation :=
+                                                       
valueof(ts_BSSMAP_IE_EncrInfo(kc, '08'O));
+       f_establish_fully(pars, ass_cmd, exp_compl);
+}
+
+testcase TC_assignment_fr_a5_3() runs on test_CT {
+       var MSC_ConnHdlr vc_conn;
+
+       f_init(true);
+       f_sleep(1.0);
+
+       vc_conn := f_start_handler(refers(f_tc_assignment_fr_a5_3), 
testcasename());
+       vc_conn.done;
+}
+
+
+private function f_tc_assignment_fr_a5_4(charstring id) runs on MSC_ConnHdlr {
+       var TestHdlrParams pars := valueof(t_def_TestHdlrPars);
+       var template PDU_BSSAP exp_fail := tr_BSSMAP_AssignmentFail;
+       var BSSMAP_IE_AoIP_TransportLayerAddress tla := 
valueof(ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342));
+       var PDU_BSSAP ass_cmd := valueof(ts_BSSMAP_AssignmentReq(omit, tla));
+       const OCT8 kc := '0001020304050607'O;
+       const OCT16 kc128 := kc & kc;
+
+       ass_cmd.pdu.bssmap.assignmentRequest.channelType := 
valueof(ts_BSSMAP_IE_ChannelType);
+       ass_cmd.pdu.bssmap.assignmentRequest.codecList := 
valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
+       ass_cmd.pdu.bssmap.assignmentRequest.encryptionInformation :=
+                                                       
valueof(ts_BSSMAP_IE_EncrInfo(kc, '10'O));
+       ass_cmd.pdu.bssmap.assignmentRequest.kC128 := 
valueof(ts_BSSMAP_IE_Kc128(kc128));
+       /* TODO: expect GSM0808_CAUSE_CIPHERING_ALGORITHM_NOT_SUPPORTED cause 
value */
+       f_establish_fully(pars, ass_cmd, exp_fail);
+}
+
+testcase TC_assignment_fr_a5_4() runs on test_CT {
+       var MSC_ConnHdlr vc_conn;
+
+       f_init(true);
+       f_sleep(1.0);
+
+       vc_conn := f_start_handler(refers(f_tc_assignment_fr_a5_4), 
testcasename());
+       vc_conn.done;
+}
+
+
+
+
 control {
        execute( TC_ctrl_msc_connection_status() );
        execute( TC_ctrl() );

-- 
To view, visit https://gerrit.osmocom.org/5451
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iba50663cb5104bf34bd6fc8aac2aa3b47155fe99
Gerrit-PatchSet: 1
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <[email protected]>

Reply via email to