blob: ef02970973a6feb24eae7a5e03d4f709078c8d81 [file] [log] [blame]
Harald Welte78cae922018-03-01 10:12:56 +01001module HLR_Tests {
Harald Weltedf327232017-12-28 22:51:51 +01002
3import from GSUP_Types all;
4import from IPA_Emulation all;
5
Harald Welte39b82d32018-03-01 10:21:29 +01006import from Osmocom_CTRL_Adapter all;
7
8import from Osmocom_VTY_Functions all;
9import from TELNETasp_PortType all;
10
11type component test_CT extends CTRL_Adapter_CT {
Harald Weltedf327232017-12-28 22:51:51 +010012 var IPA_Emulation_CT vc_IPA;
13 var IPA_CCM_Parameters ccm_pars;
14 port IPA_GSUP_PT GSUP;
Harald Welte39b82d32018-03-01 10:21:29 +010015
16 port TELNETasp_PT VTY;
Harald Weltedf327232017-12-28 22:51:51 +010017};
18
19modulepar {
20 charstring mp_hlr_ip := "127.0.0.1";
21 integer mp_hlr_gsup_port := 4222;
22 integer mp_hlr_ctrl_port := 4259;
23};
24
Harald Welte39b82d32018-03-01 10:21:29 +010025function f_init_vty() runs on test_CT {
26 map(self:VTY, system:VTY);
27 f_vty_set_prompts(VTY);
28 f_vty_transceive(VTY, "enable");
29}
30
Harald Weltedf327232017-12-28 22:51:51 +010031function f_init() runs on test_CT {
32 ccm_pars := c_IPA_default_ccm_pars;
33 ccm_pars.name := "Osmocom TTCN-3 GSUP Simulator";
34
35 vc_IPA := IPA_Emulation_CT.create("IPA");
36 map(vc_IPA:IPA_PORT, system:IPA_CODEC_PT);
37 connect(vc_IPA:IPA_GSUP_PORT, self:GSUP);
38 vc_IPA.start(IPA_Emulation.main_client(mp_hlr_ip, mp_hlr_gsup_port, "", -1, ccm_pars));
Harald Welte39b82d32018-03-01 10:21:29 +010039
Harald Welte79420cc2018-03-01 16:49:29 +010040 timer T:= 10.0;
41 alt {
42 [] GSUP.receive(ASP_IPA_Event:{up_down := ASP_IPA_EVENT_UP}) { }
43 [] T.timeout {
44 setverdict(fail, "Timeout waiting for GSUP IPA Link to come up");
45 self.stop;
46 }
47 }
48
Harald Welte39b82d32018-03-01 10:21:29 +010049 f_init_vty();
50
51 f_ipa_ctrl_start(mp_hlr_ip, mp_hlr_ctrl_port);
Harald Weltedf327232017-12-28 22:51:51 +010052}
53
54testcase TC_gsup_sai_err_invalid_imsi() runs on test_CT {
55 var hexstring imsi;
56 timer T := 10.0;
57
58 f_init();
59
60 imsi := '01234'H;
61 GSUP.send(valueof(ts_GSUP_SAI_REQ(imsi)));
62 T.start;
63 alt {
64 [] GSUP.receive(tr_GSUP_SAI_ERR(imsi, 17)) {
65 setverdict(pass);
66 }
Harald Welte79420cc2018-03-01 16:49:29 +010067 [] GSUP.receive(tr_GSUP_SAI_ERR(imsi, ?)) {
68 setverdict(fail, "Unexpected SAI ERROR Cause");
69 }
Harald Weltedf327232017-12-28 22:51:51 +010070 [] GSUP.receive(tr_GSUP_SAI_RES(imsi)) {
Harald Welte79420cc2018-03-01 16:49:29 +010071 setverdict(fail, "Unexpected SAI.res for unknown IMSI");
Harald Weltedf327232017-12-28 22:51:51 +010072 }
73 [] T.timeout {
Harald Welte79420cc2018-03-01 16:49:29 +010074 setverdict(fail, "Timeout waiting for SAI ERR");
Harald Weltedf327232017-12-28 22:51:51 +010075 }
76 }
77}
78
79control {
80 execute( TC_gsup_sai_err_invalid_imsi() );
81};
82
83};