pespin has uploaded this change for review.
smf: Validate metrics
Change-Id: Idba67f84164a74c5778237cfd6fe753f8939dfef
---
M smf/SMF_Session_CT.ttcn
M smf/SMF_Session_CT_5G.ttcn
M smf/SMF_Tests.default
M smf/SMF_Tests.ttcn
M smf/gen_links.sh
M smf/regen_makefile.sh
6 files changed, 63 insertions(+), 4 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/52/43752/1
diff --git a/smf/SMF_Session_CT.ttcn b/smf/SMF_Session_CT.ttcn
index 2eae5c8..bb617cb 100644
--- a/smf/SMF_Session_CT.ttcn
+++ b/smf/SMF_Session_CT.ttcn
@@ -23,6 +23,8 @@
import from DIAMETER_Templates all;
import from DIAMETER_Emulation all;
+import from Prometheus_Checker all;
+
import from NG_NAS_TypeDefs all;
import from PFCP_Types all;
@@ -49,7 +51,8 @@
/* per-session component; we typically have 1..N per testcase */
type component SMF_Session_CT extends GTP2_ConnHdlr, GTP1U_ConnHdlr, DIAMETER_ConnHdlr,
- PFCP_ConnHdlr, MutexCT, HTTP2_CT, HTTP2_ConnHdlr {
+ PFCP_ConnHdlr, MutexCT, HTTP2_CT, HTTP2_ConnHdlr,
+ Prometheus_Checker_CT {
var SessionPars g_pars;
/* Address allocation */
@@ -301,6 +304,8 @@
runs on SMF_Session_CT {
g_pars := valueof(pars);
+ f_prometheus_init(mp_smf_hostname, c_prometheus_default_http_port);
+
/* No need to register g_pars.pfcp_pars.gtp1u_pars.access.local.teid since we don't expect any message on it */
f_gtp1u_register_teid(g_pars.pfcp_pars.gtp1u_pars.core.local.teid);
diff --git a/smf/SMF_Session_CT_5G.ttcn b/smf/SMF_Session_CT_5G.ttcn
index 0008235..61dfc0a 100644
--- a/smf/SMF_Session_CT_5G.ttcn
+++ b/smf/SMF_Session_CT_5G.ttcn
@@ -60,6 +60,7 @@
runs on SMF_Session_CT {
/* Register SCP HTTP2 sever, where IUT will send all SBI requests: */
f_http2_server_emu_register(f_http2_server_path_match(), idx := HTTP2_CONN_SCP);
+ f_http2_adapter_init();
}
function f_handler_cleanup_5G()
diff --git a/smf/SMF_Tests.default b/smf/SMF_Tests.default
index 4c0b502..3a78848 100644
--- a/smf/SMF_Tests.default
+++ b/smf/SMF_Tests.default
@@ -1,6 +1,8 @@
[LOGGING]
[TESTPORT_PARAMETERS]
+*.TCP.noDelay := "yes" // turn off nagle
+*.HTTP.use_notification_ASPs := "yes"
[MODULE_PARAMETERS]
diff --git a/smf/SMF_Tests.ttcn b/smf/SMF_Tests.ttcn
index 861004c..9341de4 100644
--- a/smf/SMF_Tests.ttcn
+++ b/smf/SMF_Tests.ttcn
@@ -23,6 +23,8 @@
import from DIAMETER_ts32_299_Templates all;
import from DIAMETER_Emulation all;
+import from Prometheus_Checker all;
+
import from PFCP_Types all;
import from PFCP_Emulation all;
import from PFCP_Templates all;
@@ -344,8 +346,21 @@
/* create an IPv4 session, then delete it again */
private function f_TC_createSession_deleteSession() runs on SMF_Session_CT {
+ var PrometheusExpects expects0 := valueof({
+ ts_PrometheusExpect("ues_active", GAUGE, min := 0, max := 0),
+ ts_PrometheusExpect("gtp2_sessions_active", GAUGE, min := 0, max := 0)
+ });
+ var PrometheusExpects expects1 := valueof({
+ ts_PrometheusExpect("ues_active", GAUGE, min := 1, max := 1),
+ ts_PrometheusExpect("gtp2_sessions_active", GAUGE, min := 1, max := 1)
+ });
+ f_prometheus_expect(expects0, wait_converge := true);
+
f_s5s8_create_session();
+ f_prometheus_expect(expects1, wait_converge := true);
+
f_s5s8_delete_session(omit, Request_accepted);
+ f_prometheus_expect(expects0, wait_converge := true);
setverdict(pass);
}
testcase TC_createSession_deleteSession() runs on SMF_Test_CT {
@@ -379,6 +394,11 @@
f_shutdown();
}
+private function f_TC_createSession_deleteSession_250_Session() runs on SMF_Session_CT {
+ f_s5s8_create_session();
+ f_s5s8_delete_session(omit, Request_accepted);
+ setverdict(pass);
+}
function f_TC_createSession_deleteSession_250(INT3b pdn_type) runs on SMF_Test_CT {
var SMF_Session_CT vc_conn[250];
var integer i;
@@ -387,7 +407,7 @@
for (i := 0; i < sizeof(vc_conn); i := i + 1) {
var SessionPars pars := f_SessionPars(idx := i, pdn_type := pdn_type);
- vc_conn[i] := f_start_handler(refers(f_TC_createSession_deleteSession), pars);
+ vc_conn[i] := f_start_handler(refers(f_TC_createSession_deleteSession_250_Session), pars);
}
for (i := 0; i < sizeof(vc_conn); i := i + 1) {
@@ -556,9 +576,21 @@
/* create an IPv4 session from 5G AMF, then delete it again */
private function f_TC_n11_createSession_deleteSession() runs on SMF_Session_CT {
- f_n11_init();
+ var PrometheusExpects expects0 := valueof({
+ ts_PrometheusExpect("ues_active", GAUGE, min := 0, max := 0),
+ ts_PrometheusExpect("pfcp_sessions_active", GAUGE, min := 0, max := 0)
+ });
+ var PrometheusExpects expects1 := valueof({
+ ts_PrometheusExpect("ues_active", GAUGE, min := 1, max := 1),
+ ts_PrometheusExpect("pfcp_sessions_active", GAUGE, min := 1, max := 1)
+ });
+ f_prometheus_expect(expects0, wait_converge := true);
+
f_n11_create_session();
+ f_prometheus_expect(expects1, wait_converge := true);
+
f_n11_delete_session();
+ f_prometheus_expect(expects0, wait_converge := true);
setverdict(pass);
}
testcase TC_n11_createSession_deleteSession() runs on SMF_Test_CT {
@@ -595,6 +627,11 @@
f_shutdown();
}
+private function f_TC_n11_createSession_deleteSession_250_Session() runs on SMF_Session_CT {
+ f_n11_create_session();
+ f_n11_delete_session();
+ setverdict(pass);
+}
function f_TC_n11_createSession_deleteSession_250(INT3b pdn_type) runs on SMF_Test_CT {
var SMF_Session_CT vc_conn[250];
var integer i;
@@ -603,7 +640,7 @@
for (i := 0; i < sizeof(vc_conn); i := i + 1) {
var SessionPars pars := f_SessionPars(idx := i, pdn_type := pdn_type);
- vc_conn[i] := f_start_handler(refers(f_TC_n11_createSession_deleteSession), pars);
+ vc_conn[i] := f_start_handler(refers(f_TC_n11_createSession_deleteSession_250_Session), pars);
}
for (i := 0; i < sizeof(vc_conn); i := i + 1) {
diff --git a/smf/gen_links.sh b/smf/gen_links.sh
index 061f69a..7b7e678 100755
--- a/smf/gen_links.sh
+++ b/smf/gen_links.sh
@@ -54,6 +54,16 @@
FILES="DIAMETER_EncDec.cc"
gen_links $DIR $FILES
+# Needed by HTTP_Adapter (Prometheus_Checker.ttcn metrics):
+DIR=$BASEDIR/titan.TestPorts.Common_Components.Abstract_Socket/src
+FILES="Abstract_Socket.cc Abstract_Socket.hh "
+gen_links $DIR $FILES
+
+# Needed by HTTP_Adapter (Prometheus_Checker.ttcn metrics):
+DIR=$BASEDIR/titan.TestPorts.HTTPmsg/src
+FILES="HTTPmsg_MessageLen.ttcn HTTPmsg_MessageLen_Function.cc HTTPmsg_PT.cc HTTPmsg_PT.hh HTTPmsg_PortType.ttcn HTTPmsg_Types.ttcn "
+gen_links $DIR $FILES
+
DIR=$BASEDIR/titan.ProtocolModules.HTTP2/src
FILES="HTTP2_EncDec.cc HTTP2_Types.ttcn"
gen_links $DIR $FILES
@@ -126,6 +136,7 @@
FILES+="HTTP2_CodecPort.ttcn HTTP2_CodecPort_CtrlFunct.ttcn HTTP2_CodecPort_CtrlFunctDef.cc HTTP2_Templates.ttcn HTTP2_Functions.ttcn HTTP2_Msg.ttcn HTTP2_Adapter.ttcn HTTP2_Server_Emulation.ttcn "
FILES+="TS29503_Nudm_UECM_Templates.ttcn TS29503_Nudm_SDM_Templates.ttcn TS29502_Nsmf_PDUSession_Templates.ttcn TS29512_Npcf_SMPolicyControl_Templates.ttcn TS29518_Namf_Communication_Templates.ttcn "
FILES+="NG_NAS_Osmo_Types.ttcn NG_NAS_Osmo_Templates.ttcn NG_NAS_Functions.ttcn "
+FILES+="HTTP_Adapter.ttcn Prometheus_Checker.ttcn "
gen_links $DIR $FILES
gen_links_finish
diff --git a/smf/regen_makefile.sh b/smf/regen_makefile.sh
index 08a5b4a..b3d5863 100755
--- a/smf/regen_makefile.sh
+++ b/smf/regen_makefile.sh
@@ -5,6 +5,7 @@
FILES=" *.asn
*.ttcn
*.ttcnpp
+ Abstract_Socket.cc
BSSGP_EncDec.cc
common_ext.cc
DIAMETER_CodecPort_CtrlFunctDef.cc
@@ -14,6 +15,8 @@
GTPv1C_CodecPort_CtrlFunctDef.cc
GTPv1U_CodecPort_CtrlFunctDef.cc
GTPv2_CodecPort_CtrlFunctDef.cc
+ HTTPmsg_MessageLen_Function.cc
+ HTTPmsg_PT.cc
HTTP2_EncDec.cc
HTTP2_CodecPort_CtrlFunctDef.cc
ICMPv6_EncDec.cc
To view, visit change 43752. To unsubscribe, or for help writing mail filters, visit settings.