diff options
Diffstat (limited to 'remsim/RemsimClient_Tests.ttcn')
-rw-r--r-- | remsim/RemsimClient_Tests.ttcn | 49 |
1 files changed, 21 insertions, 28 deletions
diff --git a/remsim/RemsimClient_Tests.ttcn b/remsim/RemsimClient_Tests.ttcn index 499fd3e8..d747eef4 100644 --- a/remsim/RemsimClient_Tests.ttcn +++ b/remsim/RemsimClient_Tests.ttcn @@ -15,10 +15,12 @@ module RemsimClient_Tests { import from Native_Functions all; import from Osmocom_Types all; import from IPA_Emulation all; +import from Misc_Helpers all; /* the PIPEasp port allows us to interact with osmo-remsim-client-shell via stdin/stdout */ import from PIPEasp_PortType all; import from PIPEasp_Types all; +import from PIPEasp_Templates all; import from RSPRO all; import from RSPRO_Types all; @@ -33,12 +35,24 @@ modulepar { type component client_test_CT extends rspro_server_CT { port PIPEasp_PT PIPE; var ComponentIdentity g_srv_comp_id, g_bankd_comp_id; + timer g_T_guard := 60.0; }; +private altstep as_Tguard() runs on client_test_CT { + [] g_T_guard.timeout { + setverdict(fail, "Timeout of T_guard"); + Misc_Helpers.f_shutdown(__BFILE__, __LINE__); + } +} + private function f_init() runs on client_test_CT { g_srv_comp_id := valueof(ts_CompId(remsimServer, "ttcn-server")); g_bankd_comp_id := valueof(ts_CompId(remsimBankd, "ttcn-bankd")); + /* Start the guard timer */ + g_T_guard.start; + activate(as_Tguard()); + f_rspro_srv_init(0, mp_server_ip, mp_server_port, g_srv_comp_id); f_rspro_srv_init(1, mp_bankd_ip, mp_bankd_port, g_bankd_comp_id, exp_connect := false); } @@ -183,34 +197,13 @@ testcase TC_bank_disconnect_reconnect() runs on client_test_CT { * Tests interacting with local remsim-bankd-client via PIPE port ***********************************************************************/ -template (value) ASP_PExecuteBackground ts_ExecBg(charstring cmd) := { - command := cmd -} - -template (present) ASP_PStdout tr_Stdout(template (present) charstring line) := { - stdout := line -} - -template (present) ASP_PStderr tr_Stderr(template (present) charstring line) := { - stderr := line -} - -template (value) ASP_PStdin ts_Stdin(template (value) charstring line) := { - stdin :=line -} - -/* osmo-remsim-client logs to stderr, so we need to ignore that log output */ -private altstep as_ignore_stderr() runs on client_test_CT { -[] PIPE.receive(tr_Stderr(?)) { repeat; } -} - /* start a local osmo-remsim-client as sub-process and attach it to PIPE port */ private function f_init_client_pipe(ClientSlot cs) runs on client_test_CT { var charstring cmdline := mp_client_shell_cmd & " -i 127.0.0.1"; map(self:PIPE, system:PIPE); PIPE.send(ts_ExecBg(cmdline & " -c " & int2str(cs.clientId) & " -n " & int2str(cs.slotNr))); - activate(as_ignore_stderr()); + activate(as_ignore_stderr(PIPE)); } /* pretty-print an octet string as series of ASCII encoded hex bytes with spaces */ @@ -286,8 +279,8 @@ function f_xceive_apdus(ClientSlot cslot, BankSlot bslot, integer count := 100, integer i := 0) runs on client_test_CT { for (var integer j := 0; j < count; j := j+1) { - var octetstring c_apdu := f_rnd_octstring(f_rnd_int(270)); - var octetstring r_apdu := f_rnd_octstring(f_rnd_int(270)); + var octetstring c_apdu := f_rnd_octstring_rnd_len(270); + var octetstring r_apdu := f_rnd_octstring_rnd_len(270); f_client2bank(cslot, bslot, c_apdu, i:=i); f_bank2client(bslot, cslot, r_apdu, i:=i); } @@ -332,8 +325,8 @@ testcase TC_pipe_apdu_wrong_cslot() runs on client_test_CT { f_set_atr(cslot, '3B9F96801FC78031A073BE21136743200718000001A5'O, i:=1); - var octetstring c_apdu := f_rnd_octstring(f_rnd_int(270)); - var octetstring r_apdu := f_rnd_octstring(f_rnd_int(270)); + var octetstring c_apdu := f_rnd_octstring_rnd_len(270); + var octetstring r_apdu := f_rnd_octstring_rnd_len(270); /* Send C-APDU from correct ClientId/Slot to simulated bankd */ f_client2bank(cslot, bslot, c_apdu, i:=1); /* respond with R-APDU from correct bankId/Slot but stating wrong ClientId */ @@ -359,8 +352,8 @@ testcase TC_pipe_apdu_wrong_bslot() runs on client_test_CT { f_set_atr(cslot, '3B9F96801FC78031A073BE21136743200718000001A5'O, i:=1); - var octetstring c_apdu := f_rnd_octstring(f_rnd_int(270)); - var octetstring r_apdu := f_rnd_octstring(f_rnd_int(270)); + var octetstring c_apdu := f_rnd_octstring_rnd_len(270); + var octetstring r_apdu := f_rnd_octstring_rnd_len(270); /* Send C-APDU from correct ClientId/Slot to simulated bankd */ f_client2bank(cslot, bslot, c_apdu, i:=1); /* respond with R-APDU from wrong bankId but stating correct ClientId */ |