deps_get \
deps_update \
dialyze \
- dialyzer_blt_build
+ dialyzer_blt_build \
+ test
all: \
clean_all \
deps_get \
compile_all \
- dialyze
+ dialyze \
+ test
deps_get:
@$(REBAR) get-deps
| grep -v interface \
| sed -e 's/-[0-9.]*//' \
)
+
+test:
+ @rebar ct skip_deps=true
--- /dev/null
+%%% vim: set filetype=erlang:
+{incl_app , beam_stats, details}.
, [ {hope, ".*"}
]
}.
+
+{cover_enabled, true}.
+
+{clean_files, ["test/*.beam"]}.
, [ {hope, ".*", {git, "https://github.com/ibnfirnas/hope.git", {tag, "3.7.0"}}}
]
}.
+
+{cover_enabled, true}.
+
+{clean_files, ["test/*.beam"]}.
[ option/0
]).
+%% Consumer interface
-export(
[ init/1
, consume/2
, terminate/1
]).
+%% Tests (to be run by CT):
+-export(
+ [ ct_test__beam_stats_to_bins/1
+ , ct_test__memory_component_to_statsd_msg/1
+ , ct_test__statsd_msg_add_name_prefix/1
+ , ct_test__statsd_msg_to_bin/1
+ , ct_test__node_id_to_bin/1
+ ]).
+
-type option() ::
{consumption_interval , erlang:time()}
| {dst_host , inet:ip_address() | inet:hostname()}
node_id_to_bin(NodeID) ->
NodeIDBin = atom_to_binary(NodeID, utf8),
re:replace(NodeIDBin, "[\@\.]", "_", [global, {return, binary}]).
+
+%% ============================================================================
+%% Tests
+%% ============================================================================
+
+ct_test__beam_stats_to_bins(_Cfg) ->
+ BEAMStats = #beam_stats{node_id = 'node@host.local', memory = [{foo,1}]},
+ [<<?PATH_PREFIX, ".node_host_local.foo:1|g\n">>] =
+ beam_stats_to_bins(BEAMStats).
+
+ct_test__memory_component_to_statsd_msg(_Cfg) ->
+ #statsd_msg{name = <<"foo">>, value = 1, type = gauge} =
+ memory_component_to_statsd_msg({foo, 1}).
+
+ct_test__statsd_msg_add_name_prefix(_Cfg) ->
+ Msg1 = #statsd_msg{name = <<"foo">>, value = 1, type = gauge},
+ Msg2 = statsd_msg_add_name_prefix(Msg1, <<"bar">>),
+ <<?PATH_PREFIX,".bar.foo">> = Msg2#statsd_msg.name.
+
+ct_test__statsd_msg_to_bin(_Cfg) ->
+ Msg = #statsd_msg{name = <<"foo">>, value = 1, type = gauge},
+ <<"foo:1|g\n">> = statsd_msg_to_bin(Msg).
+
+ct_test__node_id_to_bin(_Cfg) ->
+ <<"foo_bar_local">> = node_id_to_bin('foo@bar.local').
--- /dev/null
+-module(beam_stats_consumer_statsd_SUITE).
+
+-export(
+ [ all/0
+ , groups/0
+ ]).
+
+%% Test cases
+-export(
+ [ ct_test__beam_stats_to_bins/1
+ , ct_test__memory_component_to_statsd_msg/1
+ , ct_test__statsd_msg_add_name_prefix/1
+ , ct_test__statsd_msg_to_bin/1
+ , ct_test__node_id_to_bin/1
+ ]).
+
+-define(statsd_module, beam_stats_consumer_statsd).
+-define(GROUP, ?statsd_module).
+
+%% ============================================================================
+%% Common Test callbacks
+%% ============================================================================
+
+all() ->
+ [{group, ?GROUP}].
+
+groups() ->
+ Tests =
+ [ ct_test__beam_stats_to_bins
+ , ct_test__memory_component_to_statsd_msg
+ , ct_test__statsd_msg_add_name_prefix
+ , ct_test__statsd_msg_to_bin
+ , ct_test__node_id_to_bin
+ ],
+ Properties = [],
+ [{?GROUP, Properties, Tests}].
+
+%% =============================================================================
+%% Test cases
+%% =============================================================================
+
+ct_test__beam_stats_to_bins(_Cfg) ->
+ ?statsd_module:ct_test__beam_stats_to_bins(_Cfg).
+
+ct_test__memory_component_to_statsd_msg(_Cfg) ->
+ ?statsd_module:ct_test__memory_component_to_statsd_msg(_Cfg).
+
+ct_test__statsd_msg_add_name_prefix(_Cfg) ->
+ ?statsd_module:ct_test__statsd_msg_add_name_prefix(_Cfg).
+
+ct_test__statsd_msg_to_bin(_Cfg) ->
+ ?statsd_module:ct_test__statsd_msg_to_bin(_Cfg).
+
+ct_test__node_id_to_bin(_Cfg) ->
+ ?statsd_module:ct_test__node_id_to_bin(_Cfg).