mirror of
https://github.com/correl/rebar.git
synced 2024-12-18 03:00:17 +00:00
Modernize basicnif template code
This commit is contained in:
parent
4e0ab4065f
commit
734d30f96e
1 changed files with 16 additions and 10 deletions
|
@ -5,24 +5,30 @@
|
|||
|
||||
-on_load(init/0).
|
||||
|
||||
-define(nif_stub, nif_stub_error(?LINE)).
|
||||
nif_stub_error(Line) ->
|
||||
erlang:nif_error({nif_not_loaded,module,?MODULE,line,Line}).
|
||||
|
||||
-ifdef(TEST).
|
||||
-include_lib("eunit/include/eunit.hrl").
|
||||
-endif.
|
||||
|
||||
init() ->
|
||||
case code:priv_dir({{module}}) of
|
||||
{error, bad_name} ->
|
||||
SoName = filename:join("../priv", {{module}});
|
||||
Dir ->
|
||||
SoName = filename:join(Dir, {{module}})
|
||||
end,
|
||||
erlang:load_nif(SoName, 0).
|
||||
PrivDir = case code:priv_dir(?MODULE) of
|
||||
{error, bad_name} ->
|
||||
EbinDir = filename:dirname(code:which(?MODULE)),
|
||||
AppPath = filename:dirname(EbinDir),
|
||||
filename:join(AppPath, "priv");
|
||||
Path ->
|
||||
Path
|
||||
end,
|
||||
erlang:load_nif(filename:join(PrivDir, ?MODULE), 0).
|
||||
|
||||
new() ->
|
||||
"NIF library not loaded".
|
||||
?nif_stub.
|
||||
|
||||
myfunction(Ref) ->
|
||||
"NIF library not loaded".
|
||||
?nif_stub.
|
||||
|
||||
%% ===================================================================
|
||||
%% EUnit tests
|
||||
|
@ -31,6 +37,6 @@ myfunction(Ref) ->
|
|||
|
||||
basic_test() ->
|
||||
{ok, Ref} = new(),
|
||||
ok = myfunction(Ref).
|
||||
?assertEqual(ok, myfunction(Ref)).
|
||||
|
||||
-endif.
|
||||
|
|
Loading…
Reference in a new issue