diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/rebar_compile_SUITE.erl | 15 | ||||
-rw-r--r-- | test/rebar_cover_SUITE.erl | 127 | ||||
-rw-r--r-- | test/rebar_profiles_SUITE.erl | 27 |
3 files changed, 165 insertions, 4 deletions
diff --git a/test/rebar_compile_SUITE.erl b/test/rebar_compile_SUITE.erl index 924ce5c..368ba98 100644 --- a/test/rebar_compile_SUITE.erl +++ b/test/rebar_compile_SUITE.erl @@ -11,7 +11,8 @@ build_checkout_deps/1, recompile_when_opts_change/1, dont_recompile_when_opts_dont_change/1, - dont_recompile_yrl_or_xrl/1]). + dont_recompile_yrl_or_xrl/1, + purge_before_load/1]). -include_lib("common_test/include/ct.hrl"). -include_lib("eunit/include/eunit.hrl"). @@ -33,7 +34,7 @@ all() -> [build_basic_app, build_release_apps, build_checkout_apps, build_checkout_deps, recompile_when_opts_change, dont_recompile_when_opts_dont_change, - dont_recompile_yrl_or_xrl]. + dont_recompile_yrl_or_xrl, purge_before_load]. build_basic_app(Config) -> AppDir = ?config(apps, Config), @@ -183,3 +184,13 @@ dont_recompile_yrl_or_xrl(Config) -> NewModTime = filelib:last_modified(XrlBeam), ?assert(ModTime == NewModTime). + +purge_before_load(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]), + + Tasks = ["do", "compile,compile,compile"], + rebar_test_utils:run_and_check(Config, [], Tasks, {ok, [{app, Name}]}). diff --git a/test/rebar_cover_SUITE.erl b/test/rebar_cover_SUITE.erl new file mode 100644 index 0000000..c719982 --- /dev/null +++ b/test/rebar_cover_SUITE.erl @@ -0,0 +1,127 @@ +-module(rebar_cover_SUITE). + +-export([suite/0, + init_per_suite/1, + end_per_suite/1, + init_per_testcase/2, + all/0, + flag_coverdata_written/1, + config_coverdata_written/1, + index_written/1, + config_alt_coverdir/1, + flag_verbose/1, + config_verbose/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, "cover_"). + +all() -> + [flag_coverdata_written, config_coverdata_written, + index_written, + config_alt_coverdir, + flag_verbose, config_verbose]. + +flag_coverdata_written(Config) -> + AppDir = ?config(apps, Config), + + Name = rebar_test_utils:create_random_name("cover_"), + Vsn = rebar_test_utils:create_random_vsn(), + rebar_test_utils:create_app(AppDir, Name, Vsn, [kernel, stdlib]), + + RebarConfig = [{erl_opts, [{d, some_define}]}], + rebar_test_utils:run_and_check(Config, + RebarConfig, + ["eunit", "--cover"], + {ok, [{app, Name}]}), + + true = filelib:is_file(filename:join(["_cover", "eunit.coverdata"])). + +config_coverdata_written(Config) -> + AppDir = ?config(apps, Config), + + Name = rebar_test_utils:create_random_name("cover_"), + Vsn = rebar_test_utils:create_random_vsn(), + rebar_test_utils:create_app(AppDir, Name, Vsn, [kernel, stdlib]), + + RebarConfig = [{erl_opts, [{d, some_define}]}, {cover_enabled, true}], + rebar_test_utils:run_and_check(Config, + RebarConfig, + ["eunit"], + {ok, [{app, Name}]}), + + true = filelib:is_file(filename:join(["_cover", "eunit.coverdata"])). + +index_written(Config) -> + AppDir = ?config(apps, Config), + + Name = rebar_test_utils:create_random_name("cover_"), + Vsn = rebar_test_utils:create_random_vsn(), + rebar_test_utils:create_app(AppDir, Name, Vsn, [kernel, stdlib]), + + RebarConfig = [{erl_opts, [{d, some_define}]}], + rebar_test_utils:run_and_check(Config, + RebarConfig, + ["do", "eunit", "--cover", ",", "cover"], + {ok, [{app, Name}]}), + + true = filelib:is_file(filename:join(["_cover", "index.html"])). + +config_alt_coverdir(Config) -> + AppDir = ?config(apps, Config), + + Name = rebar_test_utils:create_random_name("cover_"), + Vsn = rebar_test_utils:create_random_vsn(), + rebar_test_utils:create_app(AppDir, Name, Vsn, [kernel, stdlib]), + + CoverDir = filename:join(["coverage", "goes", "here"]), + + RebarConfig = [{erl_opts, [{d, some_define}]}, {cover_data_dir, CoverDir}], + rebar_test_utils:run_and_check(Config, + RebarConfig, + ["do", "eunit", "--cover", ",", "cover"], + {ok, [{app, Name}]}), + + true = filelib:is_file(filename:join([CoverDir, "index.html"])). + +flag_verbose(Config) -> + AppDir = ?config(apps, Config), + + Name = rebar_test_utils:create_random_name("cover_"), + Vsn = rebar_test_utils:create_random_vsn(), + rebar_test_utils:create_app(AppDir, Name, Vsn, [kernel, stdlib]), + + RebarConfig = [{erl_opts, [{d, some_define}]}], + rebar_test_utils:run_and_check(Config, + RebarConfig, + ["do", "eunit", "--cover", ",", "cover", "--verbose"], + {ok, [{app, Name}]}), + + true = filelib:is_file(filename:join(["_cover", "index.html"])). + +config_verbose(Config) -> + AppDir = ?config(apps, Config), + + Name = rebar_test_utils:create_random_name("cover_"), + Vsn = rebar_test_utils:create_random_vsn(), + rebar_test_utils:create_app(AppDir, Name, Vsn, [kernel, stdlib]), + + RebarConfig = [{erl_opts, [{d, some_define}]}, {cover_print_enabled, true}], + rebar_test_utils:run_and_check(Config, + RebarConfig, + ["do", "eunit", "--cover", ",", "cover"], + {ok, [{app, Name}]}), + + true = filelib:is_file(filename:join(["_cover", "index.html"])). diff --git a/test/rebar_profiles_SUITE.erl b/test/rebar_profiles_SUITE.erl index 03a8090..1411eb6 100644 --- a/test/rebar_profiles_SUITE.erl +++ b/test/rebar_profiles_SUITE.erl @@ -7,14 +7,17 @@ all/0, profile_new_key/1, profile_merge_keys/1, - profile_merges/1]). + profile_merges/1, + add_to_profile/1, + add_to_existing_profile/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]. + [profile_new_key, profile_merge_keys, profile_merges, + add_to_profile, add_to_existing_profile]. init_per_suite(Config) -> application:start(meck), @@ -106,3 +109,23 @@ profile_merges(_Config) -> %% Check that a newvalue of []/"" doesn't override non-string oldvalues [key3] = rebar_state:get(State1, test3), [] = rebar_state:get(State1, test4). + +add_to_profile(_Config) -> + RebarConfig = [{foo, true}, {bar, false}], + State = rebar_state:new(RebarConfig), + State1 = rebar_state:add_to_profile(State, test, [{foo, false}]), + State2 = rebar_state:apply_profiles(State1, test), + + Opts = rebar_state:opts(State2), + lists:map(fun(K) -> false = dict:fetch(K, Opts) end, [foo, bar]). + +add_to_existing_profile(_Config) -> + RebarConfig = [{foo, true}, {bar, false}, {profiles, [ + {test, [{foo, false}]} + ]}], + State = rebar_state:new(RebarConfig), + State1 = rebar_state:add_to_profile(State, test, [{baz, false}]), + State2 = rebar_state:apply_profiles(State1, test), + + Opts = rebar_state:opts(State2), + lists:map(fun(K) -> false = dict:fetch(K, Opts) end, [foo, bar, baz]). |