anchor.diff:  set_paths(Config) ->
       State = ?config(state, Config),
       RootDir = filename:split(?config(root_dir, Config)),
  +    %% Take a snapshot of runtime deps being set; to see if your test is valid, this should fail
  +    %% when you set the [deps] paths here
  +    rebar_paths:set_paths([runtime], State),
  +    RuntimePaths = code:get_path(),
  +    %% Revert back to regular dep paths
       rebar_paths:set_paths([plugins, deps], State),
       PluginPaths = code:get_path(),
       rebar_paths:set_paths([deps, plugins], State),
       DepPaths = code:get_path(),
   
  +    %% Plugin related paths checks
       ?assertEqual(
          RootDir ++ ["_build", "default", "plugins", "lib", "rp_a", "ebin"],
  -       find_first_instance("rp_a", PluginPaths)
  +       find_first_instance(RootDir, "rp_a", PluginPaths)
       ),
       ?assertEqual(
          RootDir ++ ["_build", "default", "lib", "rp_b", "ebin"],
  -       find_first_instance("rp_b", PluginPaths)
  +       find_first_instance(RootDir, "rp_b", PluginPaths)
       ),
       ?assertEqual(
          RootDir ++ ["_build", "default", "lib", "rp_c", "ebin"],
  -       find_first_instance("rp_c", PluginPaths)
  +       find_first_instance(RootDir, "rp_c", PluginPaths)
       ),
       ?assertEqual(
          RootDir ++ ["_build", "default", "lib", "rp_d", "ebin"],
  -       find_first_instance("rp_d", PluginPaths)
  +       find_first_instance(RootDir, "rp_d", PluginPaths)
       ),
       ?assertEqual(
          RootDir ++ ["_build", "default", "plugins", "lib",  "rp_e", "ebin"],
  -       find_first_instance("rp_e", PluginPaths)
  +       find_first_instance(RootDir, "rp_e", PluginPaths)
       ),
       ?assertEqual(
          RootDir ++ ["_build", "default", "plugins", "lib", "relx", "ebin"],
  -       find_first_instance("relx", PluginPaths)
  -    ),
  -
  -
  +       find_first_instance(RootDir, "relx", PluginPaths)
  +    ),
  +
  +
  +    %% Dependency related paths checks
       ?assertEqual(
          RootDir ++ ["_build", "default", "lib", "rp_a", "ebin"],
  -       find_first_instance("rp_a", DepPaths)
  +       find_first_instance(RootDir, "rp_a", DepPaths)
       ),
       ?assertEqual(
          RootDir ++ ["_build", "default", "lib", "rp_b", "ebin"],
  -       find_first_instance("rp_b", DepPaths)
  +       find_first_instance(RootDir, "rp_b", DepPaths)
       ),
       ?assertEqual(
          RootDir ++ ["_build", "default", "lib", "rp_c", "ebin"],
  -       find_first_instance("rp_c", DepPaths)
  +       find_first_instance(RootDir, "rp_c", DepPaths)
       ),
       ?assertEqual(
          RootDir ++ ["_build", "default", "lib", "rp_d", "ebin"],
  -       find_first_instance("rp_d", DepPaths)
  +       find_first_instance(RootDir, "rp_d", DepPaths)
       ),
       ?assertEqual(
          RootDir ++ ["_build", "default", "plugins", "lib", "rp_e", "ebin"],
  -       find_first_instance("rp_e", DepPaths)
  +       find_first_instance(RootDir, "rp_e", DepPaths)
       ),
       ?assertEqual(
          RootDir ++ ["_build", "default", "lib", "relx", "ebin"],
  -       find_first_instance("relx", DepPaths)
  +       find_first_instance(RootDir, "relx", DepPaths)
  +    ),
  +
  +
  +    %% Runtime related paths checks
  +    ?assertEqual(
  +       RootDir ++ ["_build", "default", "lib", "rp_a", "ebin"],
  +       find_first_instance(RootDir, "rp_a", RuntimePaths)
  +    ),
  +    ?assertEqual(
  +       RootDir ++ ["_build", "default", "lib", "rp_b", "ebin"],
  +       find_first_instance(RootDir, "rp_b", RuntimePaths)
  +    ),
  +    ?assertMatch(
  +       {not_found, _},
  +       find_first_instance(RootDir, "rp_c", RuntimePaths)
  +    ),
  +    ?assertMatch(
  +       {not_found, _},
  +       find_first_instance(RootDir, "rp_d", RuntimePaths)
  +    ),
  +    ?assertMatch(
  +       {not_found, _},
  +       find_first_instance(RootDir, "rp_e", RuntimePaths)
  +    ),
  +    ?assertMatch(
  +       {not_found, _},
  +       find_first_instance(RootDir, "relx", RuntimePaths)
       ),
       ok.
   
  
positive.code:       "  {vsn, \"", Vsn, "\"}, "
        "  {modules, [",Name,"]}, "
        "  {registered, []}, "
        "  {applications, [stdlib, kernel]} "
        " ]}. "],
  
      ok = file:write_file(filename:join([OutDir, <<Name/binary, ".app">>]), AppFile),
  
negative.code:     EPlug = fake_app(<<"rp_e">>, <<"1.0.0">>,
                       InDir("_build/default/plugins/lib/rp_e/")),
  
      TopApp0 = fake_app(<<"top_app">>, <<"1.0.0">>, InDir("_build/default/lib/top_app/"), [<<"rp_a">>, <<"rp_b">>]),
      TopApp1 = rebar_app_info:applications(TopApp0, ['rp_a', 'rp_b']),
  
      S0 = rebar_state:new(),
      S1 = rebar_state:all_deps(S0, [ADep, BDep, CDep, DDep, RelxDep]),
      S2 = rebar_state:all_plugin_deps(S1, [APlug, RelxPlug]),
      S3 = rebar_state:project_apps(S2, [TopApp1]),
      S4 = rebar_state:code_paths(S3, default, code:get_path()),
      S5 = rebar_state:code_paths(
          S4,
          all_deps,
          [rebar_app_info:ebin_dir(A) || A <- [ADep, BDep, CDep, DDep, RelxDep]]
      ),
      S6 = rebar_state:code_paths(
          S5,
          all_plugin_deps,
          [rebar_app_info:ebin_dir(A) || A <- [APlug, RelxPlug, EPlug]]
      ),
      [{base_paths, BasePaths}, {root_dir, Dir}, {state, S6} | Config].
  
  end_per_testcase(_, Config) ->
      %% this is deeply annoying because we interfere with rebar3's own
  