aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2024-04-17 19:16:17 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2024-04-18 11:07:08 +0200
commit601b5cddc9bb98722408778b1f9e4397a2bada4e (patch)
tree08a3f141cd9ec3381b23411da535c2b63ac4366b
parent830061d27129bbfe6c3768c96b688f37dccef288 (diff)
Move f_str_split() Osmocom_VTY_Functions.ttcn -> Misc_Helpers.ttcn
This is quite a generic string handling function which fits better in a generic utility file like Misc_Helpers.ttcn. Change-Id: I54eff3eea60ed0624919baebfe0ff7393414d6b8
-rw-r--r--library/Misc_Helpers.ttcn20
-rw-r--r--library/Osmocom_VTY_Functions.ttcn25
-rw-r--r--upf/UPF_Tests.ttcn8
3 files changed, 27 insertions, 26 deletions
diff --git a/library/Misc_Helpers.ttcn b/library/Misc_Helpers.ttcn
index cbc1e70b..fd2e7bb9 100644
--- a/library/Misc_Helpers.ttcn
+++ b/library/Misc_Helpers.ttcn
@@ -79,4 +79,24 @@ function f_strstr_count(in charstring str, in charstring sub_str) return integer
return count;
}
+type record of charstring ro_charstring;
+function f_str_split(charstring str, charstring delim := "\n") return ro_charstring
+{
+ var integer pos := 0;
+ var ro_charstring parts := {};
+ var integer delim_pos;
+ var integer end := lengthof(str);
+ while (pos < end) {
+ delim_pos := f_strstr(str, delim, pos);
+ if (delim_pos < 0) {
+ delim_pos := end;
+ }
+ if (delim_pos > pos) {
+ parts := parts & { substr(str, pos, delim_pos - pos) };
+ }
+ pos := delim_pos + 1;
+ }
+ return parts;
+}
+
}
diff --git a/library/Osmocom_VTY_Functions.ttcn b/library/Osmocom_VTY_Functions.ttcn
index 6b0883f9..b982a8ff 100644
--- a/library/Osmocom_VTY_Functions.ttcn
+++ b/library/Osmocom_VTY_Functions.ttcn
@@ -274,26 +274,7 @@ function f_verify_talloc_count(TELNETasp_PT pt, StrList object_strs, integer exp
Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "talloc count mismatch");
}
-public function f_str_split(charstring str, charstring delim := "\n") return ro_charstring
-{
- var integer pos := 0;
- var ro_charstring parts := {};
- var integer delim_pos;
- var integer end := lengthof(str);
- while (pos < end) {
- delim_pos := f_strstr(str, delim, pos);
- if (delim_pos < 0) {
- delim_pos := end;
- }
- if (delim_pos > pos) {
- parts := parts & { substr(str, pos, delim_pos - pos) };
- }
- pos := delim_pos + 1;
- }
- return parts;
-}
-
-public function f_verify_talloc_bytes(TELNETasp_PT pt, ro_charstring object_strs, integer expect_bytes := 0,
+public function f_verify_talloc_bytes(TELNETasp_PT pt, Misc_Helpers.ro_charstring object_strs, integer expect_bytes := 0,
integer attempts := 5, float wait_time := 3.0)
{
var charstring show_cmd := "show talloc-context application brief";
@@ -302,7 +283,7 @@ public function f_verify_talloc_bytes(TELNETasp_PT pt, ro_charstring object_strs
attempts := attempts - 1;
var charstring ret := f_vty_transceive_ret(pt, show_cmd);
- var ro_charstring lines := f_str_split(ret);
+ var Misc_Helpers.ro_charstring lines := f_str_split(ret);
var boolean ok := true;
for (var integer i := 0; i < lengthof(object_strs); i := i + 1) {
@@ -315,7 +296,7 @@ public function f_verify_talloc_bytes(TELNETasp_PT pt, ro_charstring object_strs
if (f_strstr(line, object_str) < 0) {
continue;
}
- var ro_charstring tokens := f_str_split(line, " ");
+ var Misc_Helpers.ro_charstring tokens := f_str_split(line, " ");
if (lengthof(tokens) < 4) {
continue;
}
diff --git a/upf/UPF_Tests.ttcn b/upf/UPF_Tests.ttcn
index 140e81b3..cb8c4896 100644
--- a/upf/UPF_Tests.ttcn
+++ b/upf/UPF_Tests.ttcn
@@ -125,7 +125,7 @@ private function f_get_name_val_2int(out integer val1, out integer val2, charstr
if (not f_get_name_val(token, str, name)) {
return false;
}
- var ro_charstring nrl := f_str_split(token, delim);
+ var Misc_Helpers.ro_charstring nrl := f_str_split(token, delim);
if (lengthof(nrl) != 2) {
return false;
}
@@ -270,7 +270,7 @@ private function f_parse_gtp_action(out GTP_Action ret, charstring str) return b
private function f_vty_get_gtp_actions(TELNETasp_PT vty_pt) return GTP_Action_List {
var charstring gtp_str := f_vty_transceive_ret(vty_pt, "show gtp");
- var ro_charstring lines := f_str_split(gtp_str, "\n");
+ var Misc_Helpers.ro_charstring lines := f_str_split(gtp_str, "\n");
var GTP_Action_List gtps := {};
for (var integer i := 0; i < lengthof(lines); i := i + 1) {
var charstring line := lines[i];
@@ -399,7 +399,7 @@ private function f_parse_session_status(out PFCP_Session_Status ret, charstring
private function f_vty_get_sessions(TELNETasp_PT vty_pt) return PFCP_Session_Status_List {
var charstring sessions_str := f_vty_transceive_ret(vty_pt, "show session");
- var ro_charstring lines := f_str_split(sessions_str, "\n");
+ var Misc_Helpers.ro_charstring lines := f_str_split(sessions_str, "\n");
var PFCP_Session_Status_List sessions := {};
for (var integer i := 0; i < lengthof(lines); i := i + 1) {
var charstring line := lines[i];
@@ -483,7 +483,7 @@ private function f_vty_expect_no_active_sessions(TELNETasp_PT vty_pt) {
setverdict(pass);
}
-private function f_vty_netinst_cfg(TELNETasp_PT vty_pt, ro_charstring netinst_cmds)
+private function f_vty_netinst_cfg(TELNETasp_PT vty_pt, Misc_Helpers.ro_charstring netinst_cmds)
{
f_vty_enter_config(vty_pt);
f_vty_transceive(vty_pt, "netinst");