diff options
Diffstat (limited to 'remsim/RemsimBankd_Tests.ttcn')
-rw-r--r-- | remsim/RemsimBankd_Tests.ttcn | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/remsim/RemsimBankd_Tests.ttcn b/remsim/RemsimBankd_Tests.ttcn index a2686d30..c31c939c 100644 --- a/remsim/RemsimBankd_Tests.ttcn +++ b/remsim/RemsimBankd_Tests.ttcn @@ -61,8 +61,8 @@ private function f_init(boolean start_client := false) runs on bankd_test_CT { private function f_init_client(integer i := 0) runs on rspro_client_CT { var ComponentIdentity clnt_comp_id := valueof(ts_CompId(remsimClient, "ttcn-client")); - f_rspro_init(rspro[0], mp_bankd_ip, mp_bankd_port, clnt_comp_id, 0); - rspro[0].rspro_client_slot := { clientId := 23+i, slotNr := 0 }; + f_rspro_init(rspro[i], mp_bankd_ip, mp_bankd_port, clnt_comp_id, i); + rspro[i].rspro_client_slot := { clientId := 23+i, slotNr := 0 }; } @@ -328,6 +328,30 @@ testcase TC_createMapping_clientReconnect() runs on bankd_test_CT { Misc_Helpers.f_shutdown(__BFILE__, __LINE__, pass); } +/* add mapping, connect matching client, then connect another client with same ID */ +testcase TC_createMapping_clientConnectAgain() runs on bankd_test_CT { + /* FIXME: this would only be done in f_init_client(), but we need it before */ + rspro[0].rspro_client_slot := { clientId := 23+0, slotNr := 0 }; + + f_init(); + as_connectBankReq(bid := mp_bank_id, nslots := mp_num_slots); + f_rspro_srv_reset_state(ok); + + var BankSlot bs := { bankId := mp_bank_id, slotNr := 0 }; + f_rspro_srv_create_slotmap(rspro[0].rspro_client_slot, bs); + + f_sleep(1.0); + + f_init_client(0); + f_rspro_connect_client(0, tr_Status_ok_or_nocard); + + f_init_client(1); + /* use same identity as first client */ + rspro[1].rspro_client_slot := rspro[0].rspro_client_slot; + f_rspro_connect_client(1, tr_Status_ok_or_nocard); + + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, pass); +} /* remove mapping while client is connected */ @@ -426,6 +450,7 @@ control { execute( TC_clientConnect_createMapping() ); execute( TC_createMapping_clientConnect() ); execute( TC_createMapping_clientReconnect() ); + execute( TC_createMapping_clientConnectAgain() ); execute( TC_removeMapping_connected() ); execute( TC_createMapping_connectClient_changeMapping() ); |