summaryrefslogtreecommitdiff
path: root/test/rebar_edoc_SUITE.erl
diff options
context:
space:
mode:
Diffstat (limited to 'test/rebar_edoc_SUITE.erl')
-rw-r--r--test/rebar_edoc_SUITE.erl57
1 files changed, 56 insertions, 1 deletions
diff --git a/test/rebar_edoc_SUITE.erl b/test/rebar_edoc_SUITE.erl
index 2f0fad0..5f8cad6 100644
--- a/test/rebar_edoc_SUITE.erl
+++ b/test/rebar_edoc_SUITE.erl
@@ -3,7 +3,7 @@
-include_lib("eunit/include/eunit.hrl").
-compile(export_all).
-all() -> [multiapp, error_survival].
+all() -> [multiapp, multiapp_macros, error_survival].
init_per_testcase(multiapp, Config) ->
application:load(rebar),
@@ -17,6 +17,19 @@ init_per_testcase(multiapp, Config) ->
State = rebar_state:new([{base_dir, filename:join([AppsDir, "_build"])}
,{root_dir, AppsDir}]),
[{apps, AppsDir}, {state, State}, {name, Name} | Config];
+init_per_testcase(multiapp_macros, Config) ->
+ application:load(rebar),
+ DataDir = ?config(data_dir, Config),
+ PrivDir = ?config(priv_dir, Config),
+ Name = rebar_test_utils:create_random_name("multiapp_macros"),
+ AppsDir = filename:join([PrivDir, rebar_test_utils:create_random_name(Name)]),
+ ec_file:copy(filename:join([DataDir, "foo"]), AppsDir, [recursive]),
+ ok = ec_file:remove(filename:join([AppsDir, "apps", "foo"]), [recursive]),
+ Verbosity = rebar3:log_level(),
+ rebar_log:init(command_line, Verbosity),
+ State = rebar_state:new([{base_dir, filename:join([AppsDir, "_build"])}
+ ,{root_dir, AppsDir}]),
+ [{apps, AppsDir}, {state, State}, {name, Name} | Config];
init_per_testcase(error_survival, Config) ->
application:load(rebar),
DataDir = ?config(data_dir, Config),
@@ -61,6 +74,48 @@ multiapp(Config) ->
)),
ok.
+multiapp_macros(Config) ->
+ RebarConfig = [{edoc_opts, [
+ preprocess,
+ {macros, [{m1, x1}, {m2, x2}]},
+ {def, [{d1, "1"}, {d2, "1"}]}
+ ]}],
+ AppConfig = {edoc_opts, [
+ {preprocess, true},
+ {macros, [{m2, f2}, {m3, f3}]},
+ {def, [{d2, "2"}, {d3, "2"}]}
+ ]},
+ DebugModule = "
+ -module(debug).
+ -ifndef(m1). -define(m1,z1). -endif.
+ -ifndef(m2). -define(m2,z2). -endif.
+ -ifndef(m3). -define(m3,z3). -endif.
+ -export([?m1 /0, ?m2 /0, ?m3 /0]).
+
+ %% @doc
+ %% d1:{@d1}
+ %% d2:{@d2}
+ %% d3:{@d3}
+ %% @end
+ ?m1 () -> ok.
+ ?m2 () -> ok.
+ ?m3 () -> ok.
+ ",
+ AppsDir = ?config(apps, Config),
+ ct:pal("AppsDir: ~s", [AppsDir]),
+ ok = file:write_file(filename:join([AppsDir, "apps", "bar1", "rebar.config"]),
+ io_lib:format("~p.~n", [AppConfig])),
+ ok = file:write_file(filename:join([AppsDir, "apps", "bar1", "src", "debug.erl"]),
+ DebugModule),
+ rebar_test_utils:run_and_check(Config, RebarConfig, ["edoc"], {ok, []}),
+ DocFile = filename:join([AppsDir, "apps", "bar1", "doc", "debug.html"]),
+ ?assert(file_content_matches(DocFile, "d1:1")), % config layered
+ ?assert(file_content_matches(DocFile, "d2:2")),
+ ?assert(file_content_matches(DocFile, "d3:2")),
+ ?assert(file_content_matches(DocFile, "x1/0")), % elided in config drop
+ ?assert(file_content_matches(DocFile, "f2/0")),
+ ?assert(file_content_matches(DocFile, "f3/0")),
+ ok.
error_survival(Config) ->
RebarConfig = [],