<p>Stefan Sperling has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/10196">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">detect VTY TELNET port connection failures (attempt #2)<br><br>Pass the CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT parameter to<br>the TELNET port by default. This allows tests to make progress<br>into an error handling path if they are started while the osmo-*<br>program they want to connect on VTY is not running.<br><br>Observed with osmo-ggsn tests, where if the one test runs<br>into a VTY connection failure the subsequent test would get<br>stuck forever in a map() call on the VTY TELNET port.<br><br>Teach the function f_vty_wait_for_prompt() about connection<br>reports by the TELNET module. We may now receive an integer which<br>represents the socket file descriptor for the telnet connection.<br>This case was not handled by the previous change made in<br>commit cb111b21aba1d5881da1a1d3f19754cbd15b3779. As a result,<br>BSC tests started failing with "VTY Timeout for prompt" because<br>the alt-statement in f_vty_wait_for_prompt() would not progress<br>past the integer sitting on the VTY port's receive queue.<br><br>Change-Id: I56925f93af6c55e93f3f417099db135744da6a40<br>Related: OS#3149<br>---<br>M bsc/BSC_Tests.default<br>M bts/BTS_Tests.default<br>M ggsn_tests/GGSN_Tests.default<br>M hlr/HLR_Tests.default<br>M library/Osmocom_VTY_Functions.ttcn<br>M msc/MSC_Tests.default<br>M sccp/SCCP_Tests.default<br>M sgsn/SGSN_Tests.default<br>M sip/SIP_Tests.default<br>9 files changed, 17 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/96/10196/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/bsc/BSC_Tests.default b/bsc/BSC_Tests.default</span><br><span>index c13f7b0..8818359 100644</span><br><span>--- a/bsc/BSC_Tests.default</span><br><span>+++ b/bsc/BSC_Tests.default</span><br><span>@@ -15,6 +15,7 @@</span><br><span> *.BSCVTY.CTRL_DETECT_SERVER_DISCONNECTED := "yes"</span><br><span> *.BSCVTY.CTRL_READMODE := "buffered"</span><br><span> *.BSCVTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes"</span><br><span style="color: hsl(120, 100%, 40%);">+*.BSCVTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes"</span><br><span> *.BSCVTY.PROMPT1 := "OsmoBSC> "</span><br><span> </span><br><span> [MODULE_PARAMETERS]</span><br><span>diff --git a/bts/BTS_Tests.default b/bts/BTS_Tests.default</span><br><span>index 502c17f..f254993 100644</span><br><span>--- a/bts/BTS_Tests.default</span><br><span>+++ b/bts/BTS_Tests.default</span><br><span>@@ -12,6 +12,7 @@</span><br><span> *.BTSVTY.CTRL_DETECT_SERVER_DISCONNECTED := "yes"</span><br><span> *.BTSVTY.CTRL_READMODE := "buffered"</span><br><span> *.BTSVTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes"</span><br><span style="color: hsl(120, 100%, 40%);">+*.BTSVTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes"</span><br><span> *.BTSVTY.PROMPT1 := "OsmoBTS> "</span><br><span> *.PCU.socket_type := "SEQPACKET"</span><br><span> </span><br><span>diff --git a/ggsn_tests/GGSN_Tests.default b/ggsn_tests/GGSN_Tests.default</span><br><span>index ff0cd97..4d52e24 100644</span><br><span>--- a/ggsn_tests/GGSN_Tests.default</span><br><span>+++ b/ggsn_tests/GGSN_Tests.default</span><br><span>@@ -8,6 +8,7 @@</span><br><span> *.GGSNVTY.CTRL_DETECT_SERVER_DISCONNECTED := "yes"</span><br><span> *.GGSNVTY.CTRL_READMODE := "buffered"</span><br><span> *.GGSNVTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes"</span><br><span style="color: hsl(120, 100%, 40%);">+*.GGSNVTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes"</span><br><span> *.GGSNVTY.PROMPT1 := "OsmoGGSN> "</span><br><span> </span><br><span> [MODULE_PARAMETERS]</span><br><span>diff --git a/hlr/HLR_Tests.default b/hlr/HLR_Tests.default</span><br><span>index f458479..84d4ff3 100644</span><br><span>--- a/hlr/HLR_Tests.default</span><br><span>+++ b/hlr/HLR_Tests.default</span><br><span>@@ -9,6 +9,7 @@</span><br><span> *.VTY.CTRL_DETECT_SERVER_DISCONNECTED := "yes"</span><br><span> *.VTY.CTRL_READMODE := "buffered"</span><br><span> *.VTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes"</span><br><span style="color: hsl(120, 100%, 40%);">+*.VTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes"</span><br><span> *.VTY.PROMPT1 := "OsmoHLR> "</span><br><span> </span><br><span> [MODULE_PARAMETERS]</span><br><span>diff --git a/library/Osmocom_VTY_Functions.ttcn b/library/Osmocom_VTY_Functions.ttcn</span><br><span>index 6e4eb74..427bd5c 100644</span><br><span>--- a/library/Osmocom_VTY_Functions.ttcn</span><br><span>+++ b/library/Osmocom_VTY_Functions.ttcn</span><br><span>@@ -46,6 +46,7 @@</span><br><span>    /* wait for any of the permitted prompts; buffer + return all intermediate output */</span><br><span>         function f_vty_wait_for_prompt(TELNETasp_PT pt) return charstring {</span><br><span>          var charstring rx, buf := "";</span><br><span style="color: hsl(120, 100%, 40%);">+               var integer fd;</span><br><span>              timer T := 2.0;</span><br><span> </span><br><span>          T.start;</span><br><span>@@ -57,6 +58,14 @@</span><br><span>                                testcase.stop(fail, "VTY: Unknown Command");</span><br><span>                               };</span><br><span>                   [] pt.receive(charstring:?) -> value rx { buf := buf & rx; repeat };</span><br><span style="color: hsl(120, 100%, 40%);">+                   [] pt.receive(integer:?) -> value fd {</span><br><span style="color: hsl(120, 100%, 40%);">+                             if (fd == -1) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                       setverdict(fail, "VTY Telnet Connection Failure");</span><br><span style="color: hsl(120, 100%, 40%);">+                                  mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+                             } else {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      repeat; /* telnet connection succeeded */</span><br><span style="color: hsl(120, 100%, 40%);">+                             }</span><br><span style="color: hsl(120, 100%, 40%);">+                     }</span><br><span>                    [] T.timeout {</span><br><span>                               setverdict(fail, "VTY Timeout for prompt");</span><br><span>                                mtc.stop;</span><br><span>diff --git a/msc/MSC_Tests.default b/msc/MSC_Tests.default</span><br><span>index bcaae06..a24fa38 100644</span><br><span>--- a/msc/MSC_Tests.default</span><br><span>+++ b/msc/MSC_Tests.default</span><br><span>@@ -20,6 +20,7 @@</span><br><span> *.MSCVTY.CTRL_DETECT_SERVER_DISCONNECTED := "yes"</span><br><span> *.MSCVTY.CTRL_READMODE := "buffered"</span><br><span> *.MSCVTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes"</span><br><span style="color: hsl(120, 100%, 40%);">+*.MSCVTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes"</span><br><span> *.MSCVTY.PROMPT1 := "OsmoMSC> "</span><br><span> </span><br><span> </span><br><span>diff --git a/sccp/SCCP_Tests.default b/sccp/SCCP_Tests.default</span><br><span>index 7d16e5b..95e0d2f 100644</span><br><span>--- a/sccp/SCCP_Tests.default</span><br><span>+++ b/sccp/SCCP_Tests.default</span><br><span>@@ -15,6 +15,7 @@</span><br><span> *.SCCP_DEMO_USER_VTY.CTRL_DETECT_SERVER_DISCONNECTED := "yes"</span><br><span> *.SCCP_DEMO_USER_VTY.CTRL_READMODE := "buffered"</span><br><span> *.SCCP_DEMO_USER_VTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes"</span><br><span style="color: hsl(120, 100%, 40%);">+*.SCCP_DEMO_USER_VTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes"</span><br><span> *.SCCP_DEMO_USER_VTY.PROMPT1 := "sccp-demo-user> "</span><br><span> </span><br><span> [MODULE_PARAMETERS]</span><br><span>diff --git a/sgsn/SGSN_Tests.default b/sgsn/SGSN_Tests.default</span><br><span>index bac5fdd..3957e82 100644</span><br><span>--- a/sgsn/SGSN_Tests.default</span><br><span>+++ b/sgsn/SGSN_Tests.default</span><br><span>@@ -15,6 +15,7 @@</span><br><span> *.SGSNVTY.CTRL_DETECT_SERVER_DISCONNECTED := "yes"</span><br><span> *.SGSNVTY.CTRL_READMODE := "buffered"</span><br><span> *.SGSNVTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes"</span><br><span style="color: hsl(120, 100%, 40%);">+*.SGSNVTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes"</span><br><span> *.SGSNVTY.PROMPT1 := "OsmoSGSN> "</span><br><span> </span><br><span> </span><br><span>diff --git a/sip/SIP_Tests.default b/sip/SIP_Tests.default</span><br><span>index 2576b33..4434a1a 100644</span><br><span>--- a/sip/SIP_Tests.default</span><br><span>+++ b/sip/SIP_Tests.default</span><br><span>@@ -13,6 +13,7 @@</span><br><span> *.SIPVTY.CTRL_DETECT_SERVER_DISCONNECTED := "yes"</span><br><span> *.SIPVTY.CTRL_READMODE := "buffered"</span><br><span> *.SIPVTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes"</span><br><span style="color: hsl(120, 100%, 40%);">+*.SIPVTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes"</span><br><span> *.SIPVTY.PROMPT1 := "OsmoSIPcon> "</span><br><span> </span><br><span> *.SIP.local_sip_port := "5060"</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/10196">change 10196</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/10196"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I56925f93af6c55e93f3f417099db135744da6a40 </div>
<div style="display:none"> Gerrit-Change-Number: 10196 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Stefan Sperling <ssperling@sysmocom.de> </div>