From 12726111bc827274fb71141ddaf6911b8e02d99c Mon Sep 17 00:00:00 2001 From: alisdair sullivan Date: Sun, 1 Mar 2015 20:32:57 -0800 Subject: `add_to_profile/3` function added to `rebar_state` --- test/rebar_profiles_SUITE.erl | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'test') 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]). -- cgit v1.1 From ad8982b931b4adb5616014dff74d47fb69907060 Mon Sep 17 00:00:00 2001 From: alisdair sullivan Date: Sun, 1 Feb 2015 18:41:28 -0800 Subject: generate cover data (via the `{cover_enabled, true}` option in `rebar.config` or via the `-c\--cover` flag given to the appropriate task) from the `eunit` and `ct` tasks and add a `cover` task to write coverage analysis to disk --- test/rebar_cover_SUITE.erl | 127 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 test/rebar_cover_SUITE.erl (limited to 'test') 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"])). -- cgit v1.1 From 6c421e543373aaf41a6ed10719f5da19b0cafd93 Mon Sep 17 00:00:00 2001 From: alisdair sullivan Date: Tue, 3 Mar 2015 02:15:50 -0800 Subject: change from post-purging modules after checking their module info to pre-purging before checking to facilitate long do chains --- test/rebar_compile_SUITE.erl | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'test') 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}]}). -- cgit v1.1