diff options
Diffstat (limited to 'test/rebar_compile_SUITE.erl')
-rw-r--r-- | test/rebar_compile_SUITE.erl | 91 |
1 files changed, 6 insertions, 85 deletions
diff --git a/test/rebar_compile_SUITE.erl b/test/rebar_compile_SUITE.erl index 2acc64a..6c5cd1e 100644 --- a/test/rebar_compile_SUITE.erl +++ b/test/rebar_compile_SUITE.erl @@ -10,7 +10,6 @@ -include_lib("common_test/include/ct.hrl"). -include_lib("eunit/include/eunit.hrl"). -include_lib("kernel/include/file.hrl"). --include_lib("kernel/include/file.hrl"). suite() -> []. @@ -22,95 +21,17 @@ end_per_suite(_Config) -> ok. init_per_testcase(_, Config) -> - DataDir = proplists:get_value(data_dir, Config), - AppsDir = filename:join([DataDir, create_random_name("apps_dir1_")]), - ok = ec_file:mkdir_p(AppsDir), - Verbosity = rebar3:log_level(), - rebar_log:init(command_line, Verbosity), - State = rebar_state:new(), - [{apps, AppsDir}, {state, State} | Config]. + rebar_test_utils:init_rebar_state(Config). all() -> [build_basic_app]. build_basic_app(Config) -> - AppDir = proplists:get_value(apps, Config), - - Name = create_random_name("app1_"), - Vsn = create_random_vsn(), - create_app(AppDir, Name, Vsn, [kernel, stdlib]), - - run_and_check(Config, [], "compile", [{app, Name}]). - -%%%=================================================================== -%%% Helper Functions -%%%=================================================================== - -run_and_check(Config, RebarConfig, Command, Expect) -> - AppDir = proplists:get_value(apps, Config), - State = proplists:get_value(state, Config), - - rebar3:run(rebar_state:new(State, RebarConfig, AppDir), Command), - - lists:foreach(fun({app, Name}) -> - [App] = rebar_app_discover:find_apps([AppDir]), - ?assertEqual(Name, ec_cnv:to_list(rebar_app_info:name(App))) - end, Expect). - -create_app(AppDir, Name, Vsn, Deps) -> - write_src_file(AppDir, Name), - write_app_src_file(AppDir, Name, Vsn, Deps), - rebar_app_info:new(Name, Vsn, AppDir, Deps). - -create_empty_app(AppDir, Name, Vsn, Deps) -> - write_app_file(AppDir, Name, Vsn, Deps), - rebar_app_info:new(Name, Vsn, AppDir, Deps). - -write_beam_file(Dir, Name) -> - Beam = filename:join([Dir, "ebin", "not_a_real_beam" ++ Name ++ ".beam"]), - ok = filelib:ensure_dir(Beam), - ok = ec_file:write_term(Beam, testing_purposes_only). - -write_src_file(Dir, Name) -> - Erl = filename:join([Dir, "src", "not_a_real_src" ++ Name ++ ".erl"]), - ok = filelib:ensure_dir(Erl), - ok = ec_file:write(Erl, erl_src_file("not_a_real_src" ++ Name ++ ".erl")). - -write_app_file(Dir, Name, Version, Deps) -> - Filename = filename:join([Dir, "ebin", Name ++ ".app"]), - ok = filelib:ensure_dir(Filename), - ok = ec_file:write_term(Filename, get_app_metadata(ec_cnv:to_list(Name), Version, Deps)). - -write_app_src_file(Dir, Name, Version, Deps) -> - Filename = filename:join([Dir, "src", Name ++ ".app.src"]), - ok = filelib:ensure_dir(Filename), - ok = ec_file:write_term(Filename, get_app_metadata(ec_cnv:to_list(Name), Version, Deps)). - -get_app_metadata(Name, Vsn, Deps) -> - {application, erlang:list_to_atom(Name), - [{description, ""}, - {vsn, Vsn}, - {modules, []}, - {included_applications, []}, - {registered, []}, - {applications, Deps}]}. - -create_random_name(Name) -> - random:seed(erlang:now()), - Name ++ erlang:integer_to_list(random:uniform(1000000)). + AppDir = ?config(apps, Config), -create_random_vsn() -> - random:seed(erlang:now()), - lists:flatten([erlang:integer_to_list(random:uniform(100)), - ".", erlang:integer_to_list(random:uniform(100)), - ".", erlang:integer_to_list(random:uniform(100))]). + 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]), -write_config(Filename, Values) -> - ok = filelib:ensure_dir(Filename), - ok = ec_file:write(Filename, - [io_lib:format("~p.\n", [Val]) || Val <- Values]). + rebar_test_utils:run_and_check(Config, [], "compile", [{app, Name}]). -erl_src_file(Name) -> - io_lib:format("-module(~s).\n" - "-export([main/0]).\n" - "main() -> ok.\n", [filename:basename(Name, ".erl")]). |