From 04f93d22fe06b150430eda64d354c9e8a4fda99e Mon Sep 17 00:00:00 2001 From: Michael Santos Date: Sun, 2 Mar 2014 12:56:15 -0500 Subject: [PATCH] Begin adding typespecs --- Makefile | 4 ++-- bin/alcove.escript | 23 +++++++++++++++++++++-- test/alcove_tests.erl | 2 +- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 6e783f2..4c18f3c 100644 --- a/Makefile +++ b/Makefile @@ -32,10 +32,10 @@ $(DEPSOLVER_PLT): --apps erts kernel stdlib crypto dialyzer: $(DEPSOLVER_PLT) - @dialyzer --plt $(DEPSOLVER_PLT) -Wrace_conditions --src src test examples + @dialyzer -I include --plt $(DEPSOLVER_PLT) -Wrace_conditions --src src test typer: $(DEPSOLVER_PLT) - @typer --plt $(DEPSOLVER_PLT) -r ./src + @typer -I include --plt $(DEPSOLVER_PLT) -r ./src distclean: clean @rm $(DEPSOLVER_PLT) diff --git a/bin/alcove.escript b/bin/alcove.escript index f576465..b9c2760 100755 --- a/bin/alcove.escript +++ b/bin/alcove.escript @@ -234,7 +234,8 @@ call(Port, Command) -> static({call,3}) -> " call(Port, execvp, Arg) when is_port(Port), is_list(Arg) -> - alcove_drv:cast(Port, alcove_drv:encode(command(execvp), Arg)); + alcove_drv:cast(Port, alcove_drv:encode(command(execvp), Arg)), + ok; call(Port, Command, Arg) when is_port(Port), is_list(Arg) -> case alcove_drv:call(Port, alcove_drv:encode(command(Command), Arg)) of badarg -> @@ -249,4 +250,22 @@ includes(Header) -> % FIXME hack for hard coding typespecs specs() -> -"". +" +-spec stdin(port(),binary()) -> 'true'. +-spec stdout(port()) -> any(). +-spec stdout(port(),'infinity' | non_neg_integer()) -> any(). +-spec stderr(port()) -> any(). +-spec stderr(port(),'infinity' | non_neg_integer()) -> any(). +-spec recv(port()) -> any(). +-spec recv(port(),'infinity' | non_neg_integer()) -> any(). +-spec setrlimit(port(),non_neg_integer(),#rlimit{}) -> 'ok' | {'error', file:posix()}. +-spec chdir(port(),iodata()) -> 'ok' | {'error', file:posix()}. +-spec chroot(port(),iodata()) -> 'ok' | {'error', file:posix()}. +-spec execvp(port(),iodata(),iodata()) -> 'ok'. +-spec getrlimit(port(),non_neg_integer()) -> {'ok', #rlimit{}} | {'error', file:posix()}. +-spec setgid(port(),non_neg_integer()) -> 'ok' | {'error', file:posix()}. +-spec setns(port(),iodata()) -> 'ok' | {'error', file:posix()}. +-spec setrlimit(port(),non_neg_integer(),non_neg_integer(),non_neg_integer()) -> 'ok' | {'error', file:posix()}. +-spec setuid(port(),non_neg_integer()) -> 'ok' | {'error', file:posix()}. +-spec version(port()) -> binary(). +". diff --git a/test/alcove_tests.erl b/test/alcove_tests.erl index 370f07d..9e5ed66 100644 --- a/test/alcove_tests.erl +++ b/test/alcove_tests.erl @@ -38,4 +38,4 @@ stop(Port) -> version(Port) -> Version = alcove:version(Port), - ?_assertMatch(true, is_binary(Version)). + ?_assertEqual(true, is_binary(Version)).