blob: faaf4ae7c888bb19b00faa7f1d8fec9b80b56c53 [file] [log] [blame]
Harald Weltef6543322017-07-16 07:35:10 +02001module L1CTL_Test {
2 import from GSM_Types all;
3 import from Osmocom_Types all;
4 import from L1CTL_Types all;
Harald Welte52c713c2017-07-16 15:44:44 +02005 import from L1CTL_PortType all;
Harald Weltef6543322017-07-16 07:35:10 +02006
7 const octetstring c_ul_param_req := '1300000000000000001d0000'O;
8 const octetstring c_ul_data_req := '060a0128284018001d000103490615004001c0000000000000000000000000'O;
9 const octetstring c_ul_ccch_mode_req := '1000000002000000'O;
10 const octetstring c_ul_reset_req := '0d00000002000000'O;
11 const octetstring c_ul_dm_est_req := '050000002800000007000367000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005'O;
12 const octetstring c_ul_rach_req := '040000000000000012010008'O;
13
14 const octetstring c_dl_data_ind := '03000000900003670015f5613f3f00002d063f0328e36712ead000002b2b2b2b2b2b2b2b2b2b2b'O;
15
16 type component dummy_CT {
Harald Welte52c713c2017-07-16 15:44:44 +020017 var charstring l1ctl_sock_path := "/tmp/osmocom_l2";
18 port L1CTL_PT L1CTL;
Harald Weltef6543322017-07-16 07:35:10 +020019 };
20
Harald Welte52c713c2017-07-16 15:44:44 +020021 template L1ctlUlMessage t_L1ctlResetReq(template L1ctlResetType rst_type) := {
22 header := t_L1ctlHeader(L1CTL_RESET_REQ),
23 ul_info := omit,
24 payload := {
25 reset_req := {
26 reset_type := rst_type,
27 padding := '000000'O
28 }
29 }
30 };
31
32 //template UD_send_data
33
34 function f_init() runs on dummy_CT {
35 map(self:L1CTL, system:L1CTL);
36 L1CTL.send(L1CTL_connect:{path:=l1ctl_sock_path});
37 L1CTL.receive(L1CTL_connect_result:{result_code := SUCCESS, err:=omit});
38 }
39
Harald Weltef6543322017-07-16 07:35:10 +020040 testcase TC_si1() runs on dummy_CT {
41 log("L1CTL_PARAM_REQ: ", dec_L1ctlUlMessage(c_ul_param_req));
42 log("L1CTL_DATA_REQ: ", dec_L1ctlUlMessage(c_ul_data_req));
43 log("L1CTL_CCCH_MODE_REQ: ", dec_L1ctlUlMessage(c_ul_ccch_mode_req));
44 log("L1CTL_RESET_REQ: ", dec_L1ctlUlMessage(c_ul_reset_req));
45 log("L1CTL_DM_EST_REQ: ", dec_L1ctlUlMessage(c_ul_dm_est_req));
46 log("L1CTL_RACH_REQ: ", dec_L1ctlUlMessage(c_ul_rach_req));
47 log("L1CTL_DATA_IND: ", dec_L1ctlDlMessage(c_dl_data_ind));
48 setverdict(pass);
49 }
Harald Welte52c713c2017-07-16 15:44:44 +020050
51 testcase TC_l1ctl() runs on dummy_CT {
52 f_init();
53 L1CTL.send(t_L1ctlResetReq(L1CTL_RES_T_FULL));
54 }
Harald Weltef6543322017-07-16 07:35:10 +020055 control {
56 execute(TC_si1());
Harald Welte52c713c2017-07-16 15:44:44 +020057 execute(TC_l1ctl());
Harald Weltef6543322017-07-16 07:35:10 +020058 }
59}