|
-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).
|