%% -*- 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() -> ["[]"].