anchor.diff:      end.
   
   make_cmd(TestDir, _Config) ->
  -    {ok, Cwd} = file:get_cwd(),
  +    Cwd = rebar_utils:get_cwd(),
       LogDir = filename:join(Cwd, "logs"),
  -    Ebin = filename:join(Cwd, "ebin"),
  +    EbinDir = filename:absname(filename:join(Cwd, "ebin")),
       IncludeDir = filename:join(Cwd, "include"),
       case filelib:is_dir(IncludeDir) of
  -	true ->
  -	    Include = " -I \"" ++ IncludeDir ++ "\"";
  -	false ->
  -	    Include = ""
  +        true ->
  +            Include = " -I \"" ++ IncludeDir ++ "\"";
  +        false ->
  +            Include = ""
       end,
   
  -    Cmd = lists:flatten(io_lib:format("erl " % should we expand ERL_PATH?
  -				      " -noshell -pa \"~s\" ~s"
  -				      " -s ct_run script_start -s erlang halt"
  -				      " -name test@~s"
  -				      " -logdir \"~s\""
  -				      " -env TEST_DIR \"~s\"",
  -				      [Ebin,
  -				       Include,
  -				       net_adm:localhost(),
  -				       LogDir,
  -				       filename:join(Cwd, TestDir)])) ++
  -	get_ct_config_file(TestDir) ++
  -	get_config_file(TestDir) ++
  -	get_suite(TestDir) ++
  -	get_case(),
  +    Cmd = ?FMT("erl " % should we expand ERL_PATH?
  +               " -noshell -pa \"~s\" ~s"
  +               " -s ct_run script_start -s erlang halt"
  +               " -name test@~s"
  +               " -logdir \"~s\""
  +               " -env TEST_DIR \"~s\"",
  +               [EbinDir,
  +                Include,
  +                net_adm:localhost(),
  +                LogDir,
  +                filename:join(Cwd, TestDir)]) ++
  +        get_ct_config_file(TestDir) ++
  +        get_config_file(TestDir) ++
  +        get_suite(TestDir) ++
  +        get_case(),
       RawLog = filename:join(LogDir, "raw.log"),
       {Cmd, RawLog}.
   
  
positive.code: run_test_if_present(TestDir, Config, File) ->
      case filelib:is_dir(TestDir) of
          false ->
  	    ?WARN("~s directory not present - skipping\n", [TestDir]),
              ok;
          true ->
  	    run_test(TestDir, Config, File)
      end.
  
  run_test(TestDir, Config, _File) ->
      {Cmd, RawLog} = make_cmd(TestDir, Config),
      clear_log(RawLog),
      case rebar_config:get_global(verbose, "0") of
  	"0" ->
  	    Output = " >> " ++ RawLog ++ " 2>&1";
  	_ ->
  	    Output = " 2>&1 | tee -a " ++ RawLog
      end,
  
      case rebar_utils:sh(Cmd ++ Output, [{"TESTDIR", TestDir}]) of
  	ok ->
  	    check_log(RawLog);
  	{error, _Rc} ->
  	    show_log(RawLog),
  	    ?ERROR("Executing tests failed.\n", []),
  	    ?FAIL
      end.
  
  
  
negative.code: %% Public API
  %% ===================================================================
  
  ct(Config, File) ->
      run_test_if_present("test", Config, File).
  
  
  %% ===================================================================
  %% Internal functions
  