fixeria has uploaded this change for review. ( 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(-)
git pull ssh://gerrit.osmocom.org:29418/erlang/osmo-s1gw refs/changes/62/40662/1
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))].