|
|
- -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,
- profile_merges/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, profile_merges].
-
- 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"}]}).
-
- profile_merges(_Config) ->
- RebarConfig = [{test1, [{key1, 1, 2}, key2]},
- {test2, "hello"},
- {profiles,
- [{profile1,
- [{test1, [{key3, 5}, key1]}]},
- {profile2, [{test2, "goodbye"}]}]}],
- State = rebar_state:new(RebarConfig),
- State1 = rebar_state:apply_profiles(State, [profile1, profile2]),
-
- %% Combine lists
- ?assertEqual(lists:sort([key1, key2, {key1, 1, 2}, {key3, 5}]),
- lists:sort(rebar_state:get(State1, test1))),
-
- %% Use new value for strings
- "goodbye" = rebar_state:get(State1, test2).
|