| %% -*- erlang-indent-level: 4;indent-tabs-mode: nil -*- |
| %% ex: ts=4 sw=4 et |
| -module(eunit_rt). |
| -export([files/0, run/1]). |
| |
| -include_lib("eunit/include/eunit.hrl"). |
| |
| files() -> |
| [{create, "ebin/foo.app", app(foo)}, |
| {copy, "../../rebar", "rebar"}, |
| {copy, "src", "src"}, |
| {copy, "eunit_src", "eunit_src"}, |
| {copy, |
| "rebar-eunit_compile_opts.config", |
| "rebar-eunit_compile_opts.config"}]. |
| |
| run(_Dir) -> |
| ifdef_test(), |
| eunit_compile_opts_test(), |
| ok. |
| |
| ifdef_test() -> |
| {ok, Output} = retest:sh("./rebar -v eunit"), |
| ?assert(check_output(Output, "foo_test")), |
| ?assertMatch({ok, _}, retest:sh("./rebar clean")). |
| |
| eunit_compile_opts_test() -> |
| {ok, Output} = |
| retest:sh("./rebar -v -C rebar-eunit_compile_opts.config eunit"), |
| ?assert(check_output(Output, "bar_test")), |
| ?assertMatch( |
| {ok, _}, |
| retest:sh("./rebar -C rebar-eunit_compile_opts.config clean")). |
| |
| check_output(Output, Target) -> |
| lists:any(fun(Line) -> |
| string:str(Line, Target) > 0 |
| end, Output). |
| |
| %% |
| %% Generate the contents of a simple .app file |
| %% |
| app(Name) -> |
| App = {application, Name, |
| [{description, atom_to_list(Name)}, |
| {vsn, "1"}, |
| {modules, []}, |
| {registered, []}, |
| {applications, [kernel, stdlib]}]}, |
| io_lib:format("~p.\n", [App]). |