mirror of
https://github.com/correl/rebar.git
synced 2024-11-23 19:19:54 +00:00
Merging with OJ's branch
This commit is contained in:
commit
d486dff6e8
9 changed files with 161 additions and 3 deletions
|
@ -2,3 +2,4 @@
|
||||||
^rebar$
|
^rebar$
|
||||||
.~
|
.~
|
||||||
\.orig
|
\.orig
|
||||||
|
\.swp
|
||||||
|
|
55
priv/templates/simplefsm.erl
Normal file
55
priv/templates/simplefsm.erl
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
-module({{fsmid}}).
|
||||||
|
-behaviour(gen_fsm).
|
||||||
|
-define(SERVER, ?MODULE).
|
||||||
|
|
||||||
|
%% ------------------------------------------------------------------
|
||||||
|
%% API Function Exports
|
||||||
|
%% ------------------------------------------------------------------
|
||||||
|
|
||||||
|
-export([start_link/0]).
|
||||||
|
|
||||||
|
%% ------------------------------------------------------------------
|
||||||
|
%% gen_fsm Function Exports
|
||||||
|
%% ------------------------------------------------------------------
|
||||||
|
|
||||||
|
-export([init/1, state_name/2, state_name/3, handle_event/3, handle_sync_event/4, handle_info/3, terminate/3, code_change/4]).
|
||||||
|
|
||||||
|
%% ------------------------------------------------------------------
|
||||||
|
%% API Function Definitions
|
||||||
|
%% ------------------------------------------------------------------
|
||||||
|
|
||||||
|
start_link() ->
|
||||||
|
gen_fsm:start_link({local, ?SERVER}, ?MODULE, [], []).
|
||||||
|
|
||||||
|
%% ------------------------------------------------------------------
|
||||||
|
%% gen_fsm Function Definitions
|
||||||
|
%% ------------------------------------------------------------------
|
||||||
|
|
||||||
|
init(_Args) ->
|
||||||
|
{ok, initial_state_name, initial_state}.
|
||||||
|
|
||||||
|
state_name(_Event, State) ->
|
||||||
|
{next_state, state_name, State}.
|
||||||
|
|
||||||
|
state_name(_Event, _From, State) ->
|
||||||
|
{reply, ok, state_name, State}.
|
||||||
|
|
||||||
|
handle_event(_Event, StateName, State) ->
|
||||||
|
{next_state, StateName, State}.
|
||||||
|
|
||||||
|
handle_sync_event(_Event, _From, StateName, State) ->
|
||||||
|
{reply, ok, StateName, State}.
|
||||||
|
|
||||||
|
handle_info(_Info, StateName, State) ->
|
||||||
|
{next_state, StateName, State}.
|
||||||
|
|
||||||
|
terminate(_Reason, _StateName, _State) ->
|
||||||
|
ok.
|
||||||
|
|
||||||
|
code_change(_OldVsn, StateName, State, _Extra) ->
|
||||||
|
{ok, StateName, State}.
|
||||||
|
|
||||||
|
%% ------------------------------------------------------------------
|
||||||
|
%% Internal Function Definitions
|
||||||
|
%% ------------------------------------------------------------------
|
||||||
|
|
2
priv/templates/simplefsm.template
Normal file
2
priv/templates/simplefsm.template
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
{variables, [{fsmid, "myfsm"}]}.
|
||||||
|
{file, "simplefsm.erl", "src/{{fsmid}}.erl"}.
|
10
priv/templates/simplemod.erl
Normal file
10
priv/templates/simplemod.erl
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
-module({{modid}}).
|
||||||
|
|
||||||
|
-export([my_func/0]).
|
||||||
|
|
||||||
|
-ifdef(TEST).
|
||||||
|
-compile(export_all).
|
||||||
|
-endif.
|
||||||
|
|
||||||
|
my_func() ->
|
||||||
|
ok.
|
3
priv/templates/simplemod.template
Normal file
3
priv/templates/simplemod.template
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{variables, [{modid, "mymod"}]}.
|
||||||
|
{file, "simplemod.erl", "src/{{modid}}.erl"}.
|
||||||
|
{file, "simplemod_tests.erl", "test/{{modid}}_tests.erl"}.
|
3
priv/templates/simplemod_tests.erl
Normal file
3
priv/templates/simplemod_tests.erl
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
-module({{modid}}_tests).
|
||||||
|
-include_lib("eunit/include/eunit.hrl").
|
||||||
|
|
49
priv/templates/simplesrv.erl
Normal file
49
priv/templates/simplesrv.erl
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
-module({{srvid}}).
|
||||||
|
-behaviour(gen_server).
|
||||||
|
-define(SERVER, ?MODULE).
|
||||||
|
|
||||||
|
%% ------------------------------------------------------------------
|
||||||
|
%% API Function Exports
|
||||||
|
%% ------------------------------------------------------------------
|
||||||
|
|
||||||
|
-export([start_link/0]).
|
||||||
|
|
||||||
|
%% ------------------------------------------------------------------
|
||||||
|
%% gen_server Function Exports
|
||||||
|
%% ------------------------------------------------------------------
|
||||||
|
|
||||||
|
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
|
||||||
|
|
||||||
|
%% ------------------------------------------------------------------
|
||||||
|
%% API Function Definitions
|
||||||
|
%% ------------------------------------------------------------------
|
||||||
|
|
||||||
|
start_link() ->
|
||||||
|
gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).
|
||||||
|
|
||||||
|
%% ------------------------------------------------------------------
|
||||||
|
%% gen_server Function Definitions
|
||||||
|
%% ------------------------------------------------------------------
|
||||||
|
|
||||||
|
init(Args) ->
|
||||||
|
{ok, Args}.
|
||||||
|
|
||||||
|
handle_call(_Request, _From, State) ->
|
||||||
|
{noreply, ok, State}.
|
||||||
|
|
||||||
|
handle_cast(_Msg, State) ->
|
||||||
|
{noreply, State}.
|
||||||
|
|
||||||
|
handle_info(_Info, State) ->
|
||||||
|
{noreply, State}.
|
||||||
|
|
||||||
|
terminate(_Reason, _State) ->
|
||||||
|
ok.
|
||||||
|
|
||||||
|
code_change(_OldVsn, State, _Extra) ->
|
||||||
|
{ok, State}.
|
||||||
|
|
||||||
|
%% ------------------------------------------------------------------
|
||||||
|
%% Internal Function Definitions
|
||||||
|
%% ------------------------------------------------------------------
|
||||||
|
|
2
priv/templates/simplesrv.template
Normal file
2
priv/templates/simplesrv.template
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
{variables, [{srvid, "myserver"}]}.
|
||||||
|
{file, "simplesrv.erl", "src/{{srvid}}.erl"}.
|
|
@ -58,9 +58,13 @@ eunit(Config, _File) ->
|
||||||
%% Make sure ?EUNIT_DIR/ directory exists (tack on dummy module)
|
%% Make sure ?EUNIT_DIR/ directory exists (tack on dummy module)
|
||||||
ok = filelib:ensure_dir(?EUNIT_DIR ++ "/foo"),
|
ok = filelib:ensure_dir(?EUNIT_DIR ++ "/foo"),
|
||||||
|
|
||||||
|
%% grab all the test modules for inclusion in the compile stage
|
||||||
|
TestErls = rebar_utils:find_files("test", ".*\\.erl\$"),
|
||||||
|
|
||||||
%% Compile erlang code to ?EUNIT_DIR, using a tweaked config
|
%% Compile erlang code to ?EUNIT_DIR, using a tweaked config
|
||||||
%% with appropriate defines for eunit
|
%% with appropriate defines for eunit, and include all the test modules
|
||||||
rebar_erlc_compiler:doterl_compile(eunit_config(Config), ?EUNIT_DIR),
|
%% as well.
|
||||||
|
rebar_erlc_compiler:doterl_compile(eunit_config(Config), ?EUNIT_DIR, TestErls),
|
||||||
|
|
||||||
%% Build a list of all the .beams in ?EUNIT_DIR -- use this for cover
|
%% Build a list of all the .beams in ?EUNIT_DIR -- use this for cover
|
||||||
%% and eunit testing. Normally you can just tell cover and/or eunit to
|
%% and eunit testing. Normally you can just tell cover and/or eunit to
|
||||||
|
@ -68,7 +72,36 @@ eunit(Config, _File) ->
|
||||||
%% with that scan and causes any cover compilation info to be lost. So,
|
%% with that scan and causes any cover compilation info to be lost. So,
|
||||||
%% we do it by hand. :(
|
%% we do it by hand. :(
|
||||||
%%
|
%%
|
||||||
Modules = [rebar_utils:beam_to_mod(?EUNIT_DIR, N) || N <- rebar_utils:beams(?EUNIT_DIR)],
|
%% TODO: Not currently compatible with package modules
|
||||||
|
Beams = [filename:basename(N, ".beam") || N <- rebar_utils:beams(?EUNIT_DIR)],
|
||||||
|
|
||||||
|
%% Grab two lists of test and non-test beam files
|
||||||
|
{TestBeams, ModuleBeams} = lists:partition(fun(B) ->
|
||||||
|
lists:suffix("_tests", B) end, Beams),
|
||||||
|
|
||||||
|
case rebar_config:get_global(suite, undefined) of
|
||||||
|
undefined ->
|
||||||
|
%% no suite defined, so include all modules
|
||||||
|
RealModules = ModuleBeams,
|
||||||
|
|
||||||
|
%% exclude any test modules that have a matching module
|
||||||
|
TestModules = [T || T <- TestBeams,
|
||||||
|
lists:member(string:left(T, length(T) - 6), RealModules) == false];
|
||||||
|
SuiteName ->
|
||||||
|
%% suite defined, so only specify the module that relates to the
|
||||||
|
%% suite (if any)
|
||||||
|
RealModules = [M || M <- ModuleBeams, SuiteName =:= M],
|
||||||
|
|
||||||
|
%% only include the test suite if the main module doesn't exist
|
||||||
|
TestModules = case length(RealModules) of
|
||||||
|
0 -> [T || T <- TestBeams, T =:= SuiteName ++ "_tests"];
|
||||||
|
_ -> []
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
|
||||||
|
%% combine the modules and associated test modules into the resulting list
|
||||||
|
%% of modules to run tests on.
|
||||||
|
Modules = [list_to_atom(M) || M <- RealModules ++ TestModules],
|
||||||
|
|
||||||
%% TODO: If there are other wildcards specified in eunit_sources, compile them
|
%% TODO: If there are other wildcards specified in eunit_sources, compile them
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue