diff options
Diffstat (limited to 'inttest/tplugins/tplugins_rt.erl')
-rw-r--r-- | inttest/tplugins/tplugins_rt.erl | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/inttest/tplugins/tplugins_rt.erl b/inttest/tplugins/tplugins_rt.erl new file mode 100644 index 0000000..d2ef382 --- /dev/null +++ b/inttest/tplugins/tplugins_rt.erl @@ -0,0 +1,40 @@ +-module(tplugins_rt). +-compile(export_all). + +-include_lib("eunit/include/eunit.hrl"). + +-define(COMPILE_ERROR, + "ERROR: Plugin bad_plugin contains compilation errors:"). + +files() -> + [ + {copy, "../../rebar", "rebar"}, + {copy, "rebar.config", "rebar.config"}, + {copy, "bad.config", "bad.config"}, + {copy, "fish.erl", "src/fish.erl"}, + {copy, "test_plugin.erl", "plugins/test_plugin.erl"}, + {copy, "bad_plugin.erl", "bad_plugins/bad_plugin.erl"}, + {create, "fwibble.test", <<"fwibble">>}, + {create, "ebin/fish.app", app(fish, [fish])} + ]. + +run(Dir) -> + ?assertMatch({ok, _}, retest_sh:run("./rebar fwibble -v", [])), + ?assertEqual(false, filelib:is_regular("fwibble.test")), + Ref = retest:sh("./rebar -C bad.config -v clean", [{async, true}]), + {ok, _} = retest:sh_expect(Ref, "ERROR: Plugin .*bad_plugin.erl " + "contains compilation errors:.*", + [{newline, any}]), + ok. + +%% +%% Generate the contents of a simple .app file +%% +app(Name, Modules) -> + App = {application, Name, + [{description, atom_to_list(Name)}, + {vsn, "1"}, + {modules, Modules}, + {registered, []}, + {applications, [kernel, stdlib]}]}, + io_lib:format("~p.\n", [App]). |