diff options
author | Matthias Radestock <matthias@rabbitmq.com> | 2010-11-08 14:03:38 +0000 |
---|---|---|
committer | Matthias Radestock <matthias@rabbitmq.com> | 2010-11-08 14:03:38 +0000 |
commit | 3028f637ecd26d5f9883f584256412ace14e27c0 (patch) | |
tree | a51e517ce6d85182e69cb85198f6d80e7b884cb2 | |
parent | 9a5ae2ab325cb19cd7b4d392577e9eee80eeb998 (diff) | |
download | rabbitmq-server-3028f637ecd26d5f9883f584256412ace14e27c0.tar.gz |
saner enable_cover and report_cover funs, and saner specs as a resultbug23475
-rw-r--r-- | src/rabbit_misc.erl | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/src/rabbit_misc.erl b/src/rabbit_misc.erl index 30faaa8a..d5c8bd49 100644 --- a/src/rabbit_misc.erl +++ b/src/rabbit_misc.erl @@ -129,8 +129,8 @@ -spec(enable_cover/0 :: () -> ok_or_error()). -spec(start_cover/1 :: ([{string(), string()} | string()]) -> 'ok'). -spec(report_cover/0 :: () -> 'ok'). --spec(enable_cover/1 :: (file:filename() | [atom(), ...]) -> ok_or_error()). --spec(report_cover/1 :: (file:filename() | [atom(), ...]) -> 'ok'). +-spec(enable_cover/1 :: ([file:filename() | atom()]) -> ok_or_error()). +-spec(report_cover/1 :: ([file:filename() | atom()]) -> 'ok'). -spec(throw_on_error/2 :: (atom(), thunk(rabbit_types:error(any()) | {ok, A} | A)) -> A). -spec(with_exit_handler/2 :: (thunk(A), thunk(A)) -> A). @@ -268,29 +268,30 @@ rs(#resource{virtual_host = VHostPath, kind = Kind, name = Name}) -> lists:flatten(io_lib:format("~s '~s' in vhost '~s'", [Kind, Name, VHostPath])). -enable_cover() -> - enable_cover("."). +enable_cover() -> enable_cover(["."]). -enable_cover([Root]) when is_atom(Root) -> - enable_cover(atom_to_list(Root)); -enable_cover(Root) -> - case cover:compile_beam_directory(filename:join(Root, "ebin")) of - {error,Reason} -> {error,Reason}; - _ -> ok - end. +enable_cover(Dirs) -> + lists:foldl(fun (Dir, ok) -> + case cover:compile_beam_directory( + filename:join(lists:concat([Dir]),"ebin")) of + {error, _} = Err -> Err; + _ -> ok + end; + (_Dir, Err) -> + Err + end, ok, Dirs). start_cover(NodesS) -> {ok, _} = cover:start([makenode(N) || N <- NodesS]), ok. -report_cover() -> - report_cover("."). +report_cover() -> report_cover(["."]). + +report_cover(Dirs) -> [report_cover1(lists:concat([Dir])) || Dir <- Dirs], ok. -report_cover([Root]) when is_atom(Root) -> - report_cover(atom_to_list(Root)); -report_cover(Root) -> +report_cover1(Root) -> Dir = filename:join(Root, "cover"), - ok = filelib:ensure_dir(filename:join(Dir,"junk")), + ok = filelib:ensure_dir(filename:join(Dir, "junk")), lists:foreach(fun (F) -> file:delete(F) end, filelib:wildcard(filename:join(Dir, "*.html"))), {ok, SummaryFile} = file:open(filename:join(Dir, "summary.txt"), [write]), |