-module(rebar_profiles_SUITE). -export([init_per_suite/1, end_per_suite/1, init_per_testcase/2, end_per_testcase/2, all/0, profile_new_key/1, profile_merge_keys/1]). -include_lib("common_test/include/ct.hrl"). -include_lib("eunit/include/eunit.hrl"). -include_lib("kernel/include/file.hrl"). all() -> [profile_new_key, profile_merge_keys]. init_per_suite(Config) -> application:start(meck), Config. end_per_suite(_Config) -> application:stop(meck). init_per_testcase(_, Config) -> rebar_test_utils:init_rebar_state(Config). end_per_testcase(_, Config) -> meck:unload(), Config. profile_new_key(Config) -> AppDir = ?config(apps, Config), AllDeps = rebar_test_utils:expand_deps(git, [{"a", "1.0.0", []} ,{"b", "1.0.0", []}]), mock_git_resource:mock([{deps, rebar_test_utils:flat_deps(AllDeps)}]), Name = rebar_test_utils:create_random_name("profile_new_key_"), Vsn = rebar_test_utils:create_random_vsn(), rebar_test_utils:create_app(AppDir, Name, Vsn, [kernel, stdlib]), Deps = rebar_test_utils:top_level_deps( rebar_test_utils:expand_deps(git, [{"a", "1.0.0", []} ,{"b", "1.0.0", []}])), ct:pal("Deps ~p", [Deps]), RebarConfig = [{profiles, [{ct, [{deps, Deps}]}]}], rebar_test_utils:run_and_check(Config, RebarConfig, ["as", "ct", "compile"], {ok, [{app, Name} ,{dep, "a", "1.0.0"} ,{dep, "b", "1.0.0"}]}). profile_merge_keys(Config) -> AppDir = ?config(apps, Config), AllDeps = rebar_test_utils:expand_deps(git, [{"a", "1.0.0", []} ,{"b", "1.0.0", []} ,{"b", "2.0.0", []}]), mock_git_resource:mock([{deps, rebar_test_utils:flat_deps(AllDeps)}]), Name = rebar_test_utils:create_random_name("profile_new_key_"), Vsn = rebar_test_utils:create_random_vsn(), rebar_test_utils:create_app(AppDir, Name, Vsn, [kernel, stdlib]), Deps = rebar_test_utils:top_level_deps( rebar_test_utils:expand_deps(git, [{"a", "1.0.0", []} ,{"b", "1.0.0", []}])), ProfileDeps = rebar_test_utils:top_level_deps( rebar_test_utils:expand_deps(git, [{"b", "2.0.0", []}])), RebarConfig = [{deps, Deps}, {profiles, [{ct, [{deps, ProfileDeps}]}]}], rebar_test_utils:run_and_check(Config, RebarConfig, ["as", "ct", "compile"], {ok, [{app, Name} ,{dep, "a", "1.0.0"} ,{dep, "b", "2.0.0"}]}).