anchor.diff:  fail_conflict(Config) ->
       {ok, RebarConfig} = file:consult(?config(rebarconfig, Config)),
       rebar_test_utils:run_and_check(
  -        Config, RebarConfig, ["install_deps"], ?config(expect, Config)
  +        Config, RebarConfig, ["lock"], ?config(expect, Config)
       ),
       check_warnings(error_calls(), ?config(warnings, Config), ?config(deps_type, Config)).
   
  
positive.code:     Config.
  
  format_expected_deps(Deps) ->
      [case Dep of
          {N,V} -> {dep, N, V};
          N -> {dep, N}
       end || Dep <- Deps].
  
  %% format:
  %% {Spec,
  
negative.code:      || {dep, App} <- Apps],
      %% A second run to another profile also links default to the right spot
      rebar_test_utils:run_and_check(
          Config, RebarConfig, ["as", "other", "lock"], Expect
      ),
      [?assertMatch({ok, #file_info{type=directory}}, % somehow symlinks return dirs
                    file:read_file_info(filename:join([BuildDir, "other", "lib", App])))
       || {dep, App} <- Apps].
  
  nondefault_profile(Config) ->
      %% The dependencies here are saved directly to the 
      {ok, RebarConfig} = file:consult(?config(rebarconfig, Config)),
      AppDir = ?config(apps, Config),
      {ok, AppLocks} = ?config(expect, Config),
      try
          rebar_test_utils:run_and_check(
              Config, RebarConfig, ["as", "nondef", "lock"], {ok, AppLocks}
          ),
          error(generated_locks)
      catch
          error:generated_locks -> error(generated_locks);
          _:{assertNotEqual, _} -> ok
      end,
      Apps = [App || App = {dep, _} <- AppLocks],
      Expect = {ok, Apps},
      rebar_test_utils:run_and_check(
          Config, RebarConfig, ["as", "nondef", "lock"], Expect
      ),
      check_warnings(error_calls(), ?config(warnings, Config), ?config(deps_type, Config)),
      BuildDir = filename:join([AppDir, "_build"]),
  