diff options
author | Fred Hebert <mononcqc@ferd.ca> | 2015-08-21 08:10:59 -0400 |
---|---|---|
committer | Fred Hebert <mononcqc@ferd.ca> | 2015-08-21 08:10:59 -0400 |
commit | a197b298e699539366582faba2363b8dd2051b36 (patch) | |
tree | 16ef42ee5f057457353393a3e291cd288dafe3c4 /inttest | |
parent | af12b0e065164165ddf8f54d09214894a3f30aa9 (diff) | |
parent | 69802f63120c7bc87ad94eddeb43e1285ca770f9 (diff) | |
download | rebar-a197b298e699539366582faba2363b8dd2051b36.tar.gz |
Merge pull request #530 from paulo-ferraz-oliveira/fix/code_path_for_behaviors
Allow behaviors defined inside xref_extra_path
Diffstat (limited to 'inttest')
-rw-r--r-- | inttest/xref_behavior/gen_xref_behavior.erl | 9 | ||||
-rw-r--r-- | inttest/xref_behavior/rebar.config | 6 | ||||
-rw-r--r-- | inttest/xref_behavior/xref_behavior.erl | 10 | ||||
-rw-r--r-- | inttest/xref_behavior/xref_behavior_rt.erl | 32 |
4 files changed, 57 insertions, 0 deletions
diff --git a/inttest/xref_behavior/gen_xref_behavior.erl b/inttest/xref_behavior/gen_xref_behavior.erl new file mode 100644 index 0000000..9ac66d2 --- /dev/null +++ b/inttest/xref_behavior/gen_xref_behavior.erl @@ -0,0 +1,9 @@ +-module(gen_xref_behavior). + +-export([behaviour_info/1]). -ignore_xref([{behaviour_info, 1}]). + +behaviour_info(callbacks) -> + [{init,1}, {handle, 1}]; +behaviour_info(_Other) -> + undefined. + diff --git a/inttest/xref_behavior/rebar.config b/inttest/xref_behavior/rebar.config new file mode 100644 index 0000000..c2e5af6 --- /dev/null +++ b/inttest/xref_behavior/rebar.config @@ -0,0 +1,6 @@ +{xref_warnings, true}. + +{xref_checks, [undefined_function_calls, undefined_functions, + locals_not_used, exports_not_used, + deprecated_function_calls, deprecated_functions]}. + diff --git a/inttest/xref_behavior/xref_behavior.erl b/inttest/xref_behavior/xref_behavior.erl new file mode 100644 index 0000000..30b6959 --- /dev/null +++ b/inttest/xref_behavior/xref_behavior.erl @@ -0,0 +1,10 @@ +-module(xref_behavior). +-behavior(gen_xref_behavior). + +% behavior-defined callbacks don't require xref_ignore +-export([init/1, handle/1]). + +init(_Args) -> ok. + +handle(_Atom) -> next_event. + diff --git a/inttest/xref_behavior/xref_behavior_rt.erl b/inttest/xref_behavior/xref_behavior_rt.erl new file mode 100644 index 0000000..8536710 --- /dev/null +++ b/inttest/xref_behavior/xref_behavior_rt.erl @@ -0,0 +1,32 @@ +-module(xref_behavior_rt). + +-export([files/0, run/1]). + +files() -> + [ + {copy, "../../rebar", "rebar"}, + {copy, "rebar.config", "rebar.config"}, + {copy, "xref_behavior.erl", "src/xref_behavior.erl"}, + {copy, "gen_xref_behavior.erl", "src/gen_xref_behavior.erl"}, + {create, "ebin/xref_behavior.app", app(xref_behavior, + [xref_behavior, + gen_xref_behavior])} + ]. + +run(_Dir) -> + {ok, _} = retest_sh:run("./rebar compile", []), + {ok, _} = retest_sh:run("./rebar xref", []), + 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]). + |