Skip to content

Commit e99aa68

Browse files
committed
Fix coverage
Dependency horus broke coverage on `main` branch. After this commit, on `main` branch in rabbitmq-server root directory, both show coverage: 1. ``` make -C deps/rabbitmq_mqtt ct-auth t=[v5,limit]:vhost_queue_limit FULL=1 COVER=1 open deps/rabbitmq_mqtt/logs/index.html ``` 2. ``` bazel coverage //deps/rabbitmq_mqtt:auth_SUITE -t- --test_sharding_strategy=disabled --test_env FOCUS="-group [v5,limit] -case vhost_queue_limit" genhtml --output genhtml "$(bazel info output_path)/_coverage/_coverage_report.dat" open genhtml/index.html ``` where `genhtml` is https://github.com/linux-test-project/lcov/blob/master/bin/genhtml Prior to this commit, coverage was broken with both Bazel and Erlang.mk: On main - below logs are printed in different outputs: First: ``` *** CT 2023-11-07 16:40:04.959 *** COVER INFO🔗 Adding nodes to cover test: ['rmq-ct-reader_SUITE-1-21000@localhost'] ``` followed by ``` Could not start cover on 'rmq-ct-reader_SUITE-1-21000@localhost': {error, {already_started, <20798.286.0>}} ``` followed by ``` *** CT 2023-11-07 16:40:04.960 *** COVER INFO🔗 Successfully added nodes to cover test: [] ``` followed by ``` Error in process <0.202.0> on node ct_rabbitmq_mqtt@nuc with exit value: {{badmatch,{ok,[]}}, [{rabbit_ct_broker_helpers,'-cover_add_node/1-fun-0-',1, [{file,"rabbit_ct_broker_helpers.erl"}, {line,2211}]}, {rabbit_ct_broker_helpers,query_node,2, [{file,"rabbit_ct_broker_helpers.erl"}, {line,824}]}, {rabbit_ct_broker_helpers,run_node_steps,4, [{file,"rabbit_ct_broker_helpers.erl"}, {line,447}]}, {rabbit_ct_broker_helpers,start_rabbitmq_node,4, [{file,"rabbit_ct_broker_helpers.erl"}, ``` It's also worth mentioning that `make run-broker` on v3.12.x: ``` Starting broker... completed with 36 plugins. 1> whereis(cover_server). undefined ``` but on main: ``` Starting broker... completed with 36 plugins. 1> whereis(cover_server). <0.295.0> ``` So, process `cover_server` runs on main in non test code.
1 parent e527720 commit e99aa68

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

deps/rabbitmq_ct_helpers/src/rabbit_ct_broker_helpers.erl

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2208,6 +2208,11 @@ cover_add_node(Node)
22082208
when is_atom(Node) andalso Node =/= undefined ->
22092209
if_cover(
22102210
fun() ->
2211+
%% Dependency horus starts registered process cover_server on the RabbitMQ
2212+
%% node. If we weren't to stop that process first, ct_cover:add_nodes/1 would
2213+
%% print `{error, {already_started, _CoverServerPid}}` and return
2214+
%% `{ok, []}` resulting in no test coverage.
2215+
ok = erpc:call(Node, cover, stop, []),
22112216
{ok, [Node]} = ct_cover:add_nodes([Node])
22122217
end).
22132218

@@ -2224,11 +2229,14 @@ cover_remove_node(Config, Node) ->
22242229
cover_remove_node(Nodename).
22252230

22262231
if_cover(F) ->
2227-
case os:getenv("COVER") of
2228-
false ->
2229-
ok;
2230-
_ ->
2231-
F()
2232+
case {
2233+
%% make ct COVER=1
2234+
os:getenv("COVER"),
2235+
%% bazel coverage
2236+
os:getenv("COVERAGE")
2237+
} of
2238+
{false, false} -> ok;
2239+
_ -> F()
22322240
end.
22332241

22342242
setup_meck(Config) ->

0 commit comments

Comments
 (0)