@ -128,10 +128,13 @@ eunit(Config, AppFile) ->
Modules = [ rebar_utils : beam_to_mod ( ? EUNIT_DIR , N ) | | N < - BeamFiles ] ,
Modules = [ rebar_utils : beam_to_mod ( ? EUNIT_DIR , N ) | | N < - BeamFiles ] ,
SrcModules = [ rebar_utils : erl_to_mod ( M ) | | M < - SrcErls ] ,
SrcModules = [ rebar_utils : erl_to_mod ( M ) | | M < - SrcErls ] ,
cover_init ( Config , BeamFiles ) ,
{ ok , CoverLog } = cover_init ( Config , BeamFiles ) ,
EunitResult = perform_eunit ( Config , Modules ) ,
EunitResult = perform_eunit ( Config , Modules ) ,
perform_cover ( Config , Modules , SrcModules ) ,
perform_cover ( Config , Modules , SrcModules ) ,
cover_close ( CoverLog ) ,
case EunitResult of
case EunitResult of
ok - >
ok - >
ok ;
ok ;
@ -275,9 +278,25 @@ cover_analyze(Config, Modules, SrcModules) ->
ok
ok
end .
end .
cover_init ( false , _ BeamFiles ) - >
cover_close ( not_enabled ) - >
ok ;
ok ;
cover_close ( F ) - >
ok = file : close ( F ) .
cover_init ( false , _ BeamFiles ) - >
{ ok , not_enabled } ;
cover_init ( true , BeamFiles ) - >
cover_init ( true , BeamFiles ) - >
% % Attempt to start the cover server , then set it ' s group leader to
% % . eunit / cover . log , so all cover log messages will go there instead of
% % to stdout .
{ _ , CoverPid } = cover : start ( ) ,
{ ok , F } = file : open (
filename : join ( [ ? EUNIT_DIR , " cover.log " ] ) ,
[ write ] ) ,
group_leader ( F , CoverPid ) ,
% % Make sure any previous runs of cover don ' t unduly influence
% % Make sure any previous runs of cover don ' t unduly influence
cover : reset ( ) ,
cover : reset ( ) ,
@ -300,7 +319,7 @@ cover_init(true, BeamFiles) ->
[ Beam , Desc ] )
[ Beam , Desc ] )
end ,
end ,
_ = [ PrintWarning ( Beam , Desc ) | | { Beam , { error , Desc } } < - Compiled ] ,
_ = [ PrintWarning ( Beam , Desc ) | | { Beam , { error , Desc } } < - Compiled ] ,
ok
{ ok , F }
end ;
end ;
cover_init ( Config , BeamFiles ) - >
cover_init ( Config , BeamFiles ) - >
cover_init ( rebar_config : get ( Config , cover_enabled , false ) , BeamFiles ) .
cover_init ( rebar_config : get ( Config , cover_enabled , false ) , BeamFiles ) .