summaryrefslogtreecommitdiff
path: root/test/rebar_cover_SUITE.erl
blob: f3c32483303a4e46f908b5464f42b55de5589369 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
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(["_build", "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(["_build", "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(["_build", "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(["_build", "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(["_build", "cover", "index.html"])).