summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/rebar_erlydtl_SUITE.erl72
-rw-r--r--test/rebar_test_utils.erl3
2 files changed, 75 insertions, 0 deletions
diff --git a/test/rebar_erlydtl_SUITE.erl b/test/rebar_erlydtl_SUITE.erl
new file mode 100644
index 0000000..c9054fd
--- /dev/null
+++ b/test/rebar_erlydtl_SUITE.erl
@@ -0,0 +1,72 @@
+%% -*- erlang-indent-level: 4;indent-tabs-mode: nil -*-
+%% ex: ts=4 sw=4 et
+-module(rebar_erlydtl_SUITE).
+
+-export([suite/0,
+ init_per_suite/1,
+ end_per_suite/1,
+ init_per_testcase/2,
+ end_per_testcase/2,
+ all/0,
+ compile/1]).
+
+-include_lib("common_test/include/ct.hrl").
+-include_lib("eunit/include/eunit.hrl").
+-include_lib("kernel/include/file.hrl").
+
+%% ===================================================================
+%% common_test callbacks
+%% ===================================================================
+
+suite() ->
+ [].
+
+init_per_suite(Config) ->
+ Config.
+
+end_per_suite(_Config) ->
+ ok.
+
+
+init_per_testcase(_, Config) ->
+ UpdConfig = rebar_test_utils:init_rebar_state(Config),
+ AppDir = ?config(apps, UpdConfig),
+
+ Name = rebar_test_utils:create_random_name("erlydtlapp_"),
+ Vsn = rebar_test_utils:create_random_vsn(),
+ rebar_test_utils:create_app(AppDir, Name, Vsn, [kernel, stdlib]),
+
+ write_dtl_file(AppDir, Name),
+
+ RebarConfig = [{erl_opts, [debug_info]},
+ {erlydtl_opts, []}],
+ [{app_name, Name},
+ {rebar_config, RebarConfig} | UpdConfig].
+
+end_per_testcase(_, _Config) ->
+ ok.
+
+all() ->
+ [compile].
+
+compile(Config) ->
+ AppDir = ?config(apps, Config),
+ AppName = ?config(app_name, Config),
+ RebarConfig = ?config(rebar_config, Config),
+ Beam = beam_file(AppDir, AppName),
+ rebar_test_utils:run_and_check(
+ Config, RebarConfig, ["erlydtl", "compile"],
+ {ok, [{file, Beam}]}
+ ).
+
+beam_file(AppDir, AppName) ->
+ filename:join([AppDir, "_build", "default", "lib",
+ AppName, "ebin", AppName++"_template_dtl.beam"]).
+
+write_dtl_file(Dir, AppName) ->
+ Erl = filename:join([Dir, "priv", "templates", AppName++"_template.dtl"]),
+ ok = filelib:ensure_dir(Erl),
+ ok = ec_file:write(Erl, get_body()).
+
+get_body() ->
+ ["[]"].
diff --git a/test/rebar_test_utils.erl b/test/rebar_test_utils.erl
index 157c2df..8d999b4 100644
--- a/test/rebar_test_utils.erl
+++ b/test/rebar_test_utils.erl
@@ -236,6 +236,9 @@ check_results(AppDir, Expected) ->
ct:pal("Tarball: ~s-~s", [Name, Vsn]),
Tarball = filename:join([AppDir, "_build", "rel", Name, Name++"-"++Vsn++".tar.gz"]),
?assertNotEqual([], filelib:is_file(Tarball))
+ ; ({file, Filename}) ->
+ ct:pal("Filename: ~s", [Filename]),
+ ?assert(filelib:is_file(Filename))
end, Expected).
write_src_file(Dir, Name) ->