anchor.diff:      end.
   
   
  -find_tests(TestDir) ->
  -    case rebar_config:get_global(suite, undefined) of
  -        undefined ->
  -            {ok, Files} = file:list_dir(TestDir),
  -            Filter = fun(Filename) ->
  -                             lists:suffix("_tests.erl", Filename)
  -                     end,
  -            Erls = lists:filter(Filter, Files),
  -            [list_to_atom(filename:basename(F, ".erl")) || F <- Erls];
  -        Suite ->
  -            %% Add the _tests suffix if missing
  -            case lists:suffix("_tests", Suite) of
  -                true ->
  -                    [list_to_atom(Suite)];
  -                false ->
  -                    [list_to_atom(Suite ++ "_tests")]
  -            end
  -    end.
  -
  -%% Clear the contents of the work dir and change to it
  -%%                
  -change_to_work_dir(MainDir) ->                  
  -    WorkDir = filename:join([MainDir, "logs", "eunit_work"]),
  -    rebar_file_utils:rm_rf(WorkDir),
  -    ok = filelib:ensure_dir(filename:join(WorkDir, "x")),
  -    ok = file:set_cwd(WorkDir).
  -
  -
  -    
  -
                             
   
  
positive.code: %% -------------------------------------------------------------------
  %% 
  %% Targets:
  %% eunit - runs eunit tests (with suffix _tests.erl) in ./test
  %%
  %% Global options:
  %% verbose=1 - show extra output from the eunit test
  
negative.code: 
  -include("rebar.hrl").
  
  -define(EUNIT_DIR, ".eunit").
  
  %% ===================================================================
  %% Public API
  %% ===================================================================
  
  eunit(Config, File) ->
      %% Make sure ?EUNIT_DIR/ directory exists (tack on dummy module)
      ok = filelib:ensure_dir(?EUNIT_DIR ++ "/foo"),
  
      %% Compile all erlang from src/ into ?EUNIT_DIR
      rebar_erlc_compiler:do_compile(Config, "src/*.erl", ?EUNIT_DIR, ".erl", ".beam", fun compile_erl/2,
                                     rebar_config:get_list(Config, erl_first_files, [])),
  
      %% TODO: If there are other wildcards specified in eunit_sources, compile them
  
      %% Save current code path and then prefix ?EUNIT_DIR on it so that our modules
      %% are found there
      InitCodePath = code:get_path(),
      true = code:add_patha(?EUNIT_DIR),
  
      %% Enable verbose in eunit if so requested..
      case rebar_config:is_verbose() of
          true ->
              BaseOpts = [verbose];
          false ->
              BaseOpts = []
      end,
  
      %% Run eunit
      EunitOpts = BaseOpts ++ rebar_config:get_list(Config, eunit_opts, []),
      case catch(eunit:test({dir, ?EUNIT_DIR}, EunitOpts)) of
          ok ->
              ok;
          _ ->
              ?CONSOLE("One or more eunit tests failed.\n", []),
              ?FAIL
      end,
  
      %% Restore code path
      true = code:set_path(InitCodePath),
      ok.
  
  clean(Config, File) ->
      rebar_file_utils:rm_rf(?EUNIT_DIR).
      
  
  %% ===================================================================
  %% Internal functions
  %% ===================================================================
  
  compile_erl(Source, Config) ->
      ErlOpts = rebar_config:get_list(Config, erl_opts, []),
      EunitOpts = rebar_config:get_list(Config, eunit_compile_opts, []),
      Opts = [{i, "include"}, {outdir, ?EUNIT_DIR}, {d, 'TEST'}, debug_info, report] ++ ErlOpts ++ EunitOpts,
      case compile:file(Source, Opts) of
          {ok, _} ->
              ok;
  