summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Majkowski <majek@lshift.net>2009-07-21 12:30:02 +0100
committerMarek Majkowski <majek@lshift.net>2009-07-21 12:30:02 +0100
commit67a9811b69734390b50d203a8a857e9f373f2b6f (patch)
tree0967f1c41efa1103710c6bc3f894f6b75128b55b
parente368db61320d50a3577723f3f7a1e13814a22c75 (diff)
downloadrabbitmq-server-67a9811b69734390b50d203a8a857e9f373f2b6f.tar.gz
code coverage is a bit more generic now, removed reference to hardcoded ebin directory
-rw-r--r--Makefile4
-rw-r--r--src/rabbit_misc.erl13
2 files changed, 11 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index 9c372a28..b5e7b5bd 100644
--- a/Makefile
+++ b/Makefile
@@ -115,8 +115,10 @@ force-snapshot: all
stop-node:
-$(ERL_CALL) -q
+COVER_DIR=$(EBIN_DIR)
+
start-cover: all
- echo "cover:start(), rabbit_misc:enable_cover()." | $(ERL_CALL)
+ echo "cover:start(), rabbit_misc:enable_cover([\"$(COVER_DIR)\"])." | $(ERL_CALL)
stop-cover: all
echo "rabbit_misc:report_cover(), cover:stop()." | $(ERL_CALL)
diff --git a/src/rabbit_misc.erl b/src/rabbit_misc.erl
index 72e16f0f..58c8f0d3 100644
--- a/src/rabbit_misc.erl
+++ b/src/rabbit_misc.erl
@@ -40,7 +40,7 @@
-export([get_config/1, get_config/2, set_config/2]).
-export([dirty_read/1]).
-export([r/3, r/2, r_arg/4, rs/1]).
--export([enable_cover/0, report_cover/0]).
+-export([enable_cover/1, report_cover/0]).
-export([throw_on_error/2, with_exit_handler/2, filter_exit_map/2]).
-export([with_user/2, with_vhost/2, with_user_and_vhost/3]).
-export([execute_mnesia_transaction/1]).
@@ -87,7 +87,7 @@
-spec(r_arg/4 :: (vhost() | r(atom()), K, amqp_table(), binary()) ->
undefined | r(K) when is_subtype(K, atom())).
-spec(rs/1 :: (r(atom())) -> string()).
--spec(enable_cover/0 :: () -> 'ok' | {'error', any()}).
+-spec(enable_cover/1 :: () -> 'ok' | {'error', any()}).
-spec(report_cover/0 :: () -> 'ok').
-spec(throw_on_error/2 ::
(atom(), thunk({error, any()} | {ok, A} | A)) -> A).
@@ -187,9 +187,12 @@ rs(#resource{virtual_host = VHostPath, kind = Kind, name = Name}) ->
lists:flatten(io_lib:format("~s '~s' in vhost '~s'",
[Kind, Name, VHostPath])).
-enable_cover() ->
- case cover:compile_beam_directory("ebin") of
- {error,Reason} -> {error,Reason};
+
+
+enable_cover(Dirs) ->
+ Results = lists:map(fun cover:compile_beam_directory/1, Dirs),
+ case lists:filter(fun(X) -> X /= [] end, Results) of
+ [{error, Reason} | _] -> {error, Reason};
_ -> ok
end.