- -module(rebar_compile_SUITE).
-
- -export([suite/0,
- init_per_suite/1,
- end_per_suite/1,
- init_per_testcase/2,
- all/0,
- build_basic_app/1,
- build_release_apps/1,
- build_checkout_apps/1,
- build_checkout_deps/1]).
-
- -include_lib("common_test/include/ct.hrl").
- -include_lib("eunit/include/eunit.hrl").
- -include_lib("kernel/include/file.hrl").
-
- suite() ->
- [].
-
- init_per_suite(Config) ->
- Config.
-
- end_per_suite(_Config) ->
- ok.
-
- init_per_testcase(_, Config) ->
- rebar_test_utils:init_rebar_state(Config).
-
- all() ->
- [build_basic_app, build_release_apps,
- build_checkout_apps, build_checkout_deps].
-
- build_basic_app(Config) ->
- AppDir = ?config(apps, Config),
-
- Name = rebar_test_utils:create_random_name("app1_"),
- Vsn = rebar_test_utils:create_random_vsn(),
- rebar_test_utils:create_app(AppDir, Name, Vsn, [kernel, stdlib]),
-
- rebar_test_utils:run_and_check(Config, [], ["compile"], {ok, [{app, Name}]}).
-
- build_release_apps(Config) ->
- AppDir = ?config(apps, Config),
-
- Name1 = rebar_test_utils:create_random_name("relapp1_"),
- Vsn1 = rebar_test_utils:create_random_vsn(),
- rebar_test_utils:create_app(filename:join([AppDir,Name1]), Name1, Vsn1, [kernel, stdlib]),
- Name2 = rebar_test_utils:create_random_name("relapp2_"),
- Vsn2 = rebar_test_utils:create_random_vsn(),
- rebar_test_utils:create_app(filename:join([AppDir,Name2]), Name2, Vsn2, [kernel, stdlib]),
-
- rebar_test_utils:run_and_check(
- Config, [], ["compile"],
- {ok, [{app, Name1}, {app, Name2}]}
- ).
-
- build_checkout_apps(Config) ->
- AppDir = ?config(apps, Config),
- CheckoutsDir = ?config(checkouts, Config),
- Name1 = rebar_test_utils:create_random_name("checkapp1_"),
- Vsn1 = rebar_test_utils:create_random_vsn(),
- rebar_test_utils:create_app(filename:join([AppDir,Name1]), Name1, Vsn1, [kernel, stdlib]),
- Name2 = rebar_test_utils:create_random_name("checkapp2_"),
- Vsn2 = rebar_test_utils:create_random_vsn(),
- rebar_test_utils:create_app(filename:join([CheckoutsDir,Name2]), Name2, Vsn2, [kernel, stdlib]),
-
- rebar_test_utils:run_and_check(
- Config, [], ["compile"],
- {ok, [{app, Name1}, {checkout, Name2}]}
- ).
-
- build_checkout_deps(Config) ->
- AppDir = ?config(apps, Config),
- CheckoutsDir = ?config(checkouts, Config),
- DepsDir = filename:join([AppDir, "_build", "lib"]),
- Name1 = rebar_test_utils:create_random_name("checkapp1_"),
- Vsn1 = rebar_test_utils:create_random_vsn(),
- rebar_test_utils:create_app(filename:join([AppDir,Name1]), Name1, Vsn1, [kernel, stdlib]),
- Name2 = rebar_test_utils:create_random_name("checkapp2_"),
- Vsn2 = rebar_test_utils:create_random_vsn(),
- rebar_test_utils:create_app(filename:join([CheckoutsDir,Name2]), Name2, Vsn2, [kernel, stdlib]),
- rebar_test_utils:create_app(filename:join([DepsDir,Name2]), Name2, Vsn1, [kernel, stdlib]),
-
- rebar_test_utils:run_and_check(
- Config, [], ["compile"],
- {ok, [{app, Name1}, {checkout, Name2}]}
- ),
- ok = application:load(list_to_atom(Name2)),
- Loaded = application:loaded_applications(),
- {_, _, Vsn2} = lists:keyfind(list_to_atom(Name2), 1, Loaded).
|