aboutsummaryrefslogtreecommitdiffstats
path: root/remsim/RemsimBankd_Tests.ttcn
diff options
context:
space:
mode:
Diffstat (limited to 'remsim/RemsimBankd_Tests.ttcn')
-rw-r--r--remsim/RemsimBankd_Tests.ttcn29
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() );