summaryrefslogtreecommitdiffstats
path: root/sccp
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2020-01-21 12:21:05 +0100
committerPau Espin Pedrol <pespin@sysmocom.de>2020-01-21 13:18:41 +0100
commit392eaf32fec2d16f0658817ef02edfea231110a1 (patch)
treed7b13efd00d8364bb9ed17b91d1db465749a2434 /sccp
parent2521906537119671273f332d50c019b9ce8ac075 (diff)
sccp: Don't use hardcoded SCCP local referencesHEADmaster
as tests are added or order is changed, local references used by the system under test may change, so let's take and use the one notified instead of harcoding values. Change-Id: I2b52cc637c20d5644f413030edd9040a6e6bfe2f
Diffstat (limited to 'sccp')
-rw-r--r--sccp/SCCP_Tests_RAW.ttcn33
1 files changed, 23 insertions, 10 deletions
diff --git a/sccp/SCCP_Tests_RAW.ttcn b/sccp/SCCP_Tests_RAW.ttcn
index 6acb4c7..5996846 100644
--- a/sccp/SCCP_Tests_RAW.ttcn
+++ b/sccp/SCCP_Tests_RAW.ttcn
@@ -39,6 +39,8 @@ type component SCCP_Test_RAW_CT {
var MSC_SCCP_MTP3_parameters g_param;
+ var OCT3 g_own_lref := '000001'O
+
/*Configure T(tias) over VTY, seconds */
var integer g_demo_sccp_timer_ias := 7 * 60;
/*Configure T(tiar) over VTY, seconds */
@@ -109,7 +111,9 @@ private function f_send_sccp(template PDU_SCCP sccp) runs on SCCP_Test_RAW_CT {
MTP3.send(tx);
}
-private function f_exp_sccp(template PDU_SCCP sccp) runs on SCCP_Test_RAW_CT {
+private function f_exp_sccp(template PDU_SCCP sccp)
+runs on SCCP_Test_RAW_CT return SCCP_MTP3_TRANSFERind {
+
var SCCP_MTP3_TRANSFERind rx;
var template SCCP_MTP3_TRANSFERind exp := {
sio := g_param.sio,
@@ -122,7 +126,7 @@ private function f_exp_sccp(template PDU_SCCP sccp) runs on SCCP_Test_RAW_CT {
T.start;
alt {
[] MTP3.receive(exp) -> value rx {
- setverdict(pass);
+ return rx;
}
[] MTP3.receive {
setverdict(fail, "Unexpected MTP/SCCP received");
@@ -133,12 +137,17 @@ private function f_exp_sccp(template PDU_SCCP sccp) runs on SCCP_Test_RAW_CT {
self.stop
}
}
+ return rx;
}
-private function f_establish_conn(SCCP_PAR_Address calling, SCCP_PAR_Address called) runs on SCCP_Test_RAW_CT {
+private function f_establish_conn(SCCP_PAR_Address calling, SCCP_PAR_Address called)
+runs on SCCP_Test_RAW_CT return OCT3 {
+ var SCCP_MTP3_TRANSFERind mtp3_rx;
- f_send_sccp(ts_SCCP_CR('000001'O, calling, called));
- f_exp_sccp(tr_SCCP_CC('000000'O, '000001'O));
+ f_send_sccp(ts_SCCP_CR(g_own_lref, calling, called));
+ mtp3_rx := f_exp_sccp(tr_SCCP_CC(?, g_own_lref));
+
+ return mtp3_rx.data.connconfirm.sourceLocRef;
}
private function f_tx_udt_exp(SCCP_PAR_Address calling, SCCP_PAR_Address called, octetstring data) runs on SCCP_Test_RAW_CT {
@@ -159,6 +168,7 @@ testcase TC_cr_cc() runs on SCCP_Test_RAW_CT {
calling := valueof(ts_SccpAddr_PC_SSN(mp_sccp_cfg[0].own_pc, mp_sccp_cfg[0].own_ssn,
mp_sccp_cfg[0].sio, mp_sccp_cfg[0].sccp_service_type));
f_establish_conn(calling, called);
+ setverdict(pass);
}
/* Verify sccp_demo_user answers a CR with a CC for PC and SSN set up to echo back */
@@ -175,11 +185,13 @@ testcase TC_udt_without_cr_cc() runs on SCCP_Test_RAW_CT {
mp_sccp_cfg[0].sio, mp_sccp_cfg[0].sccp_service_type));
f_tx_udt_exp(calling, called, data);
+ setverdict(pass);
}
/* Verify T(iar) triggers and releases the channel */
testcase TC_tiar_timeout() runs on SCCP_Test_RAW_CT {
var SCCP_PAR_Address calling, called;
+ var OCT3 remote_lref;
var octetstring data := f_rnd_octstring(f_rnd_int(100));
/* Set T(iar) in sccp_demo_user low enough that it will trigger before other side
@@ -194,17 +206,18 @@ testcase TC_tiar_timeout() runs on SCCP_Test_RAW_CT {
mp_sccp_cfg[0].sio, mp_sccp_cfg[0].sccp_service_type));
calling := valueof(ts_SccpAddr_PC_SSN(mp_sccp_cfg[0].own_pc, mp_sccp_cfg[0].own_ssn,
mp_sccp_cfg[0].sio, mp_sccp_cfg[0].sccp_service_type));
- f_establish_conn(calling, called);
+ remote_lref := f_establish_conn(calling, called);
f_tx_udt_exp(calling, called, data);
log("Waiting for first IT");
- f_exp_sccp(tr_SCCP_IT(?, ?));
+ f_exp_sccp(tr_SCCP_IT(remote_lref, g_own_lref));
log("Waiting for second IT");
- f_exp_sccp(tr_SCCP_IT(?, ?));
+ f_exp_sccp(tr_SCCP_IT(remote_lref, g_own_lref));
log("Waiting for RLSD");
- f_exp_sccp(tr_SCCP_RLSD(?, ?, hex2int('0D'H))); /* Cause: Expiration of Rx Inactivity Timer */
- f_send_sccp(ts_SCCP_RLC('000001'O, '000000'O));
+ f_exp_sccp(tr_SCCP_RLSD(remote_lref, g_own_lref, hex2int('0D'H))); /* Cause: Expiration of Rx Inactivity Timer */
+ f_send_sccp(ts_SCCP_RLC(g_own_lref, remote_lref));
+ setverdict(pass);
}
control {