Print more self-explanatory error message on bind/connect failures
When sockets cannot be bound or connected, the existing TTCN-3 code prints
the following rather cryptic error messages:
"IPA-CTRL-IPA(47)@f70ff1fd5cfd: Dynamic test case error: Using the value of an optional field containing omit. (Transport endpoint is not connected)"
The "Transport endpoint is not connected" sort-of gives it away, but
let's make it more explicit by introducing explicit checks for the
res.connId and manual setverdict(fail) statements with proper error
message.
Change-Id: Id22a1b5189d81c4fca03d5e7aff60ffdd1ad56bf
diff --git a/library/IPA_Emulation.ttcnpp b/library/IPA_Emulation.ttcnpp
index be64dd1..41a3968 100644
--- a/library/IPA_Emulation.ttcnpp
+++ b/library/IPA_Emulation.ttcnpp
@@ -201,6 +201,10 @@
var IPL4asp_Types.Result res;
res := IPA_CodecPort_CtrlFunct.f_IPL4_connect(IPA_PORT, remote_host, remote_port,
local_host, local_port, 0, { tcp:={} });
+ if (not ispresent(res.connId)) {
+ setverdict(fail, "Could not connect IPA socket, check your configuration");
+ self.stop;
+ }
g_ipa_conn_id := res.connId;
g_ccm_pars := ccm_pars;
g_is_bsc_mgw := true;
@@ -212,6 +216,10 @@
var IPL4asp_Types.Result res;
res := IPA_CodecPort_CtrlFunct.f_IPL4_listen(IPA_PORT,
local_host, local_port, { tcp:={} });
+ if (not ispresent(res.connId)) {
+ setverdict(fail, "Could not listen IPA socket, check your configuration");
+ self.stop;
+ }
g_ipa_conn_id := res.connId;
g_ccm_pars := ccm_pars;
g_is_bsc_mgw := false;
diff --git a/library/MGCP_Emulation.ttcn b/library/MGCP_Emulation.ttcn
index aaef39e..e2f79b3 100644
--- a/library/MGCP_Emulation.ttcn
+++ b/library/MGCP_Emulation.ttcn
@@ -237,7 +237,10 @@
} else {
res := MGCP_CodecPort_CtrlFunct.f_IPL4_connect(MGCP, p.callagent_ip, p.callagent_udp_port, p.mgw_ip, p.mgw_udp_port, -1, { udp:={} });
}
-
+ if (not ispresent(res.connId)) {
+ setverdict(fail, "Could not connect MGCP socket, check your configuration");
+ self.stop;
+ }
g_mgcp_conn_id := res.connId;
while (true) {
@@ -268,6 +271,10 @@
/* we aren't yet connected to the remote side port, let's fix this */
p.callagent_udp_port := mrf.remPort;
res := MGCP_CodecPort_CtrlFunct.f_IPL4_connect(MGCP, p.callagent_ip, p.callagent_udp_port, p.mgw_ip, p.mgw_udp_port, g_mgcp_conn_id, { udp:={} });
+ if (not ispresent(res.connId)) {
+ setverdict(fail, "Could not connect MGCP socket, check your configuration");
+ self.stop;
+ }
}
if (ischosen(mrf.msg.command)) {
cmd := mrf.msg.command;
diff --git a/library/NS_Emulation.ttcn b/library/NS_Emulation.ttcn
index 27acae2..d43d15c 100644
--- a/library/NS_Emulation.ttcn
+++ b/library/NS_Emulation.ttcn
@@ -81,6 +81,10 @@
var Result res;
/* Connect the UDP socket */
res := f_IPL4_connect(NSCP, mp_remote_ip, mp_remote_udp_port, mp_local_ip, mp_local_udp_port, 0, { udp := {}});
+ if (not ispresent(res.connId)) {
+ setverdict(fail, "Could not connect NS UDP socket, check your configuration");
+ self.stop;
+ }
g_conn_id := res.connId;
f_change_state(NSE_S_DEAD_BLOCKED);
/* Send the first NS-ALIVE to test the connection */
diff --git a/library/RTP_Emulation.ttcn b/library/RTP_Emulation.ttcn
index a3a0509..20e4299 100644
--- a/library/RTP_Emulation.ttcn
+++ b/library/RTP_Emulation.ttcn
@@ -264,10 +264,18 @@
}
res := RTP_CodecPort_CtrlFunct.f_IPL4_listen(RTP, g_local_host,
g_local_port, {udp:={}});
+ if (not ispresent(res.connId)) {
+ setverdict(fail, "Could not listen on RTP socket, check your configuration");
+ self.stop;
+ }
g_rtp_conn_id := res.connId;
tr_rtp.connId := g_rtp_conn_id;
res := RTP_CodecPort_CtrlFunct.f_IPL4_listen(RTCP, g_local_host,
g_local_port+1, {udp:={}});
+ if (not ispresent(res.connId)) {
+ setverdict(fail, "Could not listen on RTCP socket, check your configuration");
+ self.stop;
+ }
g_rtcp_conn_id := res.connId;
tr_rtcp.connId := g_rtcp_conn_id;
CTRL.reply(RTPEM_bind:{g_local_host, g_local_port});
@@ -282,10 +290,18 @@
g_remote_port,
g_local_host, g_local_port,
g_rtp_conn_id, {udp:={}});
+ if (not ispresent(res.connId)) {
+ setverdict(fail, "Could not connect to RTP socket, check your configuration");
+ self.stop;
+ }
res := RTP_CodecPort_CtrlFunct.f_IPL4_connect(RTCP, g_remote_host,
g_remote_port+1,
g_local_host, g_local_port+1,
g_rtcp_conn_id, {udp:={}});
+ if (not ispresent(res.connId)) {
+ setverdict(fail, "Could not connect to RTCP socket, check your configuration");
+ self.stop;
+ }
CTRL.reply(RTPEM_connect:{g_remote_host, g_remote_port});
}
[] CTRL.getcall(RTPEM_mode:{RTPEM_MODE_NONE}) {
diff --git a/library/SMPP_Emulation.ttcn b/library/SMPP_Emulation.ttcn
index 83e7801..c14340c 100644
--- a/library/SMPP_Emulation.ttcn
+++ b/library/SMPP_Emulation.ttcn
@@ -134,6 +134,10 @@
var IPL4asp_Types.Result res;
res := SMPP_CodecPort_CtrlFunct.f_IPL4_connect(SMPP_PORT, remote_host, remote_port,
local_host, local_port, 0, { tcp :={} });
+ if (not ispresent(res.connId)) {
+ setverdict(fail, "Could not connect to SMPP port, check your configuration");
+ self.stop;
+ }
g_smpp_conn_id := res.connId;
}