@ -150,7 +150,7 @@ run_eunit(Config, CodePath, SrcErls) ->
AllBeamFiles ) ,
OtherBeamFiles = TestBeamFiles --
[ filename : rootname ( N ) ++ " _tests.beam " | | N < - AllBeamFiles ] ,
ModuleBeamFiles = BeamFiles ++ OtherBeamFiles ,
ModuleBeamFiles = randomize_suites ( Config , BeamFiles ++ OtherBeamFiles ) ,
% % Get modules to be run in eunit
AllModules = [ rebar_utils : beam_to_mod ( ? EUNIT_DIR , N ) | | N < - AllBeamFiles ] ,
@ -233,6 +233,33 @@ get_suites(Config) ->
Suites
end .
% %
% % == randomize suites ==
% %
randomize_suites ( Config , Modules ) - >
case rebar_config : get_global ( Config , random_suite_order , undefined ) of
undefined - >
Modules ;
" true " - >
Seed = crypto : rand_uniform ( 1 , 65535 ) ,
randomize_suites1 ( Modules , Seed ) ;
String - >
try list_to_integer ( String ) of
Seed - >
randomize_suites1 ( Modules , Seed )
catch
error : badarg - >
? ERROR ( " Bad random seed provided: ~p ~n " , [ String ] ) ,
? FAIL
end
end .
randomize_suites1 ( Modules , Seed ) - >
random : seed ( 35 , Seed , 1337 ) ,
? CONSOLE ( " Randomizing suite order with seed ~b ~n " , [ Seed ] ) ,
[ X | | { _ , X } < - lists : sort ( [ { random : uniform ( ) , M } | | M < - Modules ] ) ] .
% %
% % == get matching tests ==
% %