fixeria has submitted this change. (
https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/40662?usp=email )
Change subject: s1ap_proxy_test: also test exometer counters
......................................................................
s1ap_proxy_test: also test exometer counters
Change-Id: Icef5fc68d72278f3042e951db04d8a93f0a00670
Related: SYS#7065
---
D test/exometer_mock.erl
M test/s1ap_proxy_test.erl
2 files changed, 79 insertions(+), 27 deletions(-)
Approvals:
pespin: Looks good to me, but someone else must approve
Jenkins Builder: Verified
laforge: Looks good to me, approved
diff --git a/test/exometer_mock.erl b/test/exometer_mock.erl
deleted file mode 100644
index 5a09692..0000000
--- a/test/exometer_mock.erl
+++ /dev/null
@@ -1,24 +0,0 @@
--module(exometer_mock).
-
--export([mock_all/0,
- unmock_all/0]).
-
-
-%% ------------------------------------------------------------------
-%% public API
-%% ------------------------------------------------------------------
-
-%% mock all pfcp_peer module functions
-mock_all() ->
- meck:new(exometer),
- meck:expect(exometer, new, fun(_Name, _Type) -> ok end),
- meck:expect(exometer, reset, fun(_Name) -> ok end),
- meck:expect(exometer, update, fun(_Name, _Value) -> ok end),
- meck:expect(exometer, get_value, fun(_Name, DataPoint) -> {ok,[{DataPoint,0}]}
end).
-
-%% unmock all pfcp_peer module functions
-unmock_all() ->
- true = meck:validate(exometer),
- meck:unload(exometer).
-
-%% vim:set ts=4 sw=4 et:
diff --git a/test/s1ap_proxy_test.erl b/test/s1ap_proxy_test.erl
index 74f3f05..4f79451 100644
--- a/test/s1ap_proxy_test.erl
+++ b/test/s1ap_proxy_test.erl
@@ -1,9 +1,14 @@
-module(s1ap_proxy_test).
-include_lib("eunit/include/eunit.hrl").
+-include("s1gw_metrics.hrl").
-include("pfcp_mock.hrl").
+-define(_assertMetric(Name, Value),
+ ?_assertEqual(Value, s1gw_metrics:get_current_value(Name))).
+
+
%% ------------------------------------------------------------------
%% setup functions
%% ------------------------------------------------------------------
@@ -16,14 +21,15 @@
start() ->
pfcp_mock:mock_all(),
- exometer_mock:mock_all(),
+ exometer:start(),
+ s1gw_metrics:init(),
{ok, Pid} = s1ap_proxy:start_link(),
#{handler => Pid}.
stop(#{handler := Pid}) ->
s1ap_proxy:shutdown(Pid),
- exometer_mock:unmock_all(),
+ exometer:stop(),
pfcp_mock:unmock_all().
@@ -67,7 +73,10 @@
test_s1_setup_req(#{handler := Pid}) ->
SetupReq = s1_setup_req_pdu(),
%% Expect the PDU to be proxied unmodified
- [?_assertEqual({forward, SetupReq}, s1ap_proxy:process_pdu(Pid, SetupReq))].
+ [?_assertEqual({forward, SetupReq}, s1ap_proxy:process_pdu(Pid, SetupReq)),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ALL, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_ALL, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_UNMODIFIED, 1)].
test_e_rab_setup(#{handler := Pid}) ->
@@ -80,6 +89,11 @@
[?_assertEqual({forward, SetupReqExp}, s1ap_proxy:process_pdu(Pid, SetupReqIn)),
?_assertEqual({forward, SetupRspExp}, s1ap_proxy:process_pdu(Pid, SetupRspIn)),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ALL, 2),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ERAB_SETUP_REQ, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ERAB_SETUP_RSP, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_ALL, 2),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_PROC, 2),
?_assertMatch({ok, _}, s1ap_proxy:fetch_erab(Pid, {7, 9, 6})),
?_assertMatch([_], s1ap_proxy:fetch_erab_list(Pid))].
@@ -94,6 +108,12 @@
SetupRspExp = e_rab_setup_rsp_fail_pdu(),
[?_assertEqual({reply, SetupRspExp}, s1ap_proxy:process_pdu(Pid, SetupReqIn)),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ALL, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ERAB_SETUP_REQ, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_ALL, 0),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_PROC, 0),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_REPLY_ALL, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_REPLY_ERAB_SETUP_RSP, 1),
?_assertEqual([], s1ap_proxy:fetch_erab_list(Pid))].
@@ -112,6 +132,12 @@
?_assertMatch([_], s1ap_proxy:fetch_erab_list(Pid)),
?_assertEqual({forward, ReleaseCmd}, s1ap_proxy:process_pdu(Pid, ReleaseCmd)),
?_assertEqual({forward, ReleaseRsp}, s1ap_proxy:process_pdu(Pid, ReleaseRsp)),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ALL, 2 + 2),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ERAB_RELEASE_CMD, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ERAB_RELEASE_RSP, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_ALL, 2 + 2),
+%% ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_PROC, 2),
+%% ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_UNMODIFIED, 2),
?_assertEqual([], s1ap_proxy:fetch_erab_list(Pid))].
@@ -126,6 +152,10 @@
[?_assertMatch({forward, _}, s1ap_proxy:process_pdu(Pid, SetupReq)),
?_assertMatch({forward, _}, s1ap_proxy:process_pdu(Pid, SetupRsp)),
?_assertEqual({forward, ReleaseInd}, s1ap_proxy:process_pdu(Pid, ReleaseInd)),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ALL, 3),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ERAB_RELEASE_IND, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_ALL, 2 + 1),
+%% ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_UNMODIFIED, 1),
?_assertEqual([], s1ap_proxy:fetch_erab_list(Pid))].
@@ -148,6 +178,12 @@
?_assertMatch({forward, _}, s1ap_proxy:process_pdu(Pid, SetupRsp)),
?_assertEqual({forward, ModifyReqExp}, s1ap_proxy:process_pdu(Pid, ModifyReqIn)),
?_assertEqual({forward, ModifyRsp}, s1ap_proxy:process_pdu(Pid, ModifyRsp)),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ALL, 2 + 2),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ERAB_MODIFY_REQ, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ERAB_MODIFY_RSP, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_ALL, 2 + 2),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_PROC, 2 + 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_UNMODIFIED, 1),
?_assertEqual({forward, ReleaseInd}, s1ap_proxy:process_pdu(Pid, ReleaseInd)),
?_assertEqual([], s1ap_proxy:fetch_erab_list(Pid))].
@@ -168,6 +204,12 @@
?_assertMatch({forward, _}, s1ap_proxy:process_pdu(Pid, SetupRsp)),
?_assertMatch({forward, _}, s1ap_proxy:process_pdu(Pid, ModifyReq)),
?_assertEqual({forward, ModifyRsp}, s1ap_proxy:process_pdu(Pid, ModifyRsp)),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ALL, 2 + 2),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ERAB_MODIFY_REQ, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ERAB_MODIFY_RSP, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_ALL, 2 + 2),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_PROC, 2 + 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_UNMODIFIED, 1),
?_assertEqual({forward, ReleaseInd}, s1ap_proxy:process_pdu(Pid, ReleaseInd)),
?_assertEqual([], s1ap_proxy:fetch_erab_list(Pid))].
@@ -191,6 +233,12 @@
?_assertMatch({forward, _}, s1ap_proxy:process_pdu(Pid, SetupRsp)),
?_assertEqual({forward, ModifyIndExp}, s1ap_proxy:process_pdu(Pid, ModifyIndIn)),
?_assertEqual({forward, ModifyCnf}, s1ap_proxy:process_pdu(Pid, ModifyCnf)),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ALL, 2 + 2),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ERAB_MOD_IND, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ERAB_MOD_CNF, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_ALL, 2 + 2),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_PROC, 2 + 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_UNMODIFIED, 1),
?_assertEqual({forward, ReleaseInd}, s1ap_proxy:process_pdu(Pid, ReleaseInd)),
?_assertEqual([], s1ap_proxy:fetch_erab_list(Pid))].
@@ -214,6 +262,12 @@
?_assertMatch({forward, _}, s1ap_proxy:process_pdu(Pid, SetupRsp)),
?_assertEqual({forward, ModifyIndExp}, s1ap_proxy:process_pdu(Pid, ModifyIndIn)),
?_assertEqual({forward, ModifyCnf}, s1ap_proxy:process_pdu(Pid, ModifyCnf)),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ALL, 2 + 2),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ERAB_MOD_IND, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ERAB_MOD_CNF, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_ALL, 2 + 2),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_PROC, 2 + 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_UNMODIFIED, 1),
?_assertEqual({forward, ReleaseInd}, s1ap_proxy:process_pdu(Pid, ReleaseInd)),
?_assertEqual([], s1ap_proxy:fetch_erab_list(Pid))].
@@ -235,6 +289,12 @@
?_assertMatch({forward, _}, s1ap_proxy:process_pdu(Pid, SetupRsp)),
?_assertEqual({forward, ModifyIndExp}, s1ap_proxy:process_pdu(Pid, ModifyIndIn)),
?_assertEqual({forward, ModifyCnf}, s1ap_proxy:process_pdu(Pid, ModifyCnf)),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ALL, 2 + 2),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ERAB_MOD_IND, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ERAB_MOD_CNF, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_ALL, 2 + 2),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_PROC, 2 + 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_UNMODIFIED, 1),
?_assertEqual([], s1ap_proxy:fetch_erab_list(Pid))].
@@ -248,6 +308,11 @@
[?_assertEqual({forward, InitCtxSetupReqExp}, s1ap_proxy:process_pdu(Pid,
InitCtxSetupReqIn)),
?_assertEqual({forward, InitCtxSetupRspExp}, s1ap_proxy:process_pdu(Pid,
InitCtxSetupRspIn)),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ALL, 2),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_INIT_CTX_REQ, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_INIT_CTX_RSP, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_ALL, 2),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_PROC, 2),
?_assertMatch([_], s1ap_proxy:fetch_erab_list(Pid))].
@@ -262,6 +327,11 @@
[?_assertMatch({forward, _}, s1ap_proxy:process_pdu(Pid, InitCtxSetupReq)),
?_assertMatch({forward, _}, s1ap_proxy:process_pdu(Pid, InitCtxSetupRsp)),
?_assertEqual({forward, UeCtxReleaseReq}, s1ap_proxy:process_pdu(Pid,
UeCtxReleaseReq)),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ALL, 2 + 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_RELEASE_CTX_REQ, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_ALL, 2 + 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_PROC, 2),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_UNMODIFIED, 1),
?_assertMatch([], s1ap_proxy:fetch_erab_list(Pid))].
@@ -279,6 +349,12 @@
?_assertMatch({forward, _}, s1ap_proxy:process_pdu(Pid, InitCtxSetupRsp)),
?_assertEqual({forward, UeCtxReleaseCmd}, s1ap_proxy:process_pdu(Pid,
UeCtxReleaseCmd)),
?_assertEqual({forward, UeCtxReleaseCompl}, s1ap_proxy:process_pdu(Pid,
UeCtxReleaseCompl)),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_ALL, 2 + 2),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_RELEASE_CTX_CMD, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_IN_PKT_RELEASE_CTX_COMPL, 1),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_ALL, 2 + 2),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_PROC, 2),
+ ?_assertMetric(?S1GW_CTR_S1AP_PROXY_OUT_PKT_FWD_UNMODIFIED, 2),
?_assertMatch([], s1ap_proxy:fetch_erab_list(Pid))].
--
To view, visit
https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/40662?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: erlang/osmo-s1gw
Gerrit-Branch: master
Gerrit-Change-Id: Icef5fc68d72278f3042e951db04d8a93f0a00670
Gerrit-Change-Number: 40662
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>