diff options
-rw-r--r-- | Makefile | 52 | ||||
-rw-r--r-- | ebin/.gitignore | 0 | ||||
-rw-r--r-- | rebar.config | 6 | ||||
-rw-r--r-- | rebar.tests.config | 8 | ||||
-rw-r--r-- | test/eunit_SUITE.erl | 31 |
5 files changed, 61 insertions, 36 deletions
@@ -1,24 +1,42 @@ # See LICENSE for licensing information. PROJECT = cowboy +RANCH_VSN = 0.6.0 +ERLC_OPTS = -Werror +debug_info +warn_export_all # +bin_opt_info +warn_missing_spec -REBAR = rebar +.PHONY: all clean-all app clean docs clean-docs tests autobahn build-plt dialyze + +# Application. all: app -# Application. +clean-all: clean clean-docs + rm -f .$(PROJECT).plt + rm -rf deps logs deps/ranch: - @$(REBAR) get-deps + @mkdir -p deps/ + git clone -n -- https://github.com/extend/ranch.git deps/ranch + cd deps/ranch ; git checkout -q $(RANCH_VSN) + +MODULES = $(shell ls src/*.erl | sed 's/src\///;s/\.erl/,/' | sed '$$s/.$$//') app: deps/ranch - @$(REBAR) compile + @cd deps/ranch ; make + @mkdir -p ebin/ + @cat src/cowboy.app.src \ + | sed 's/{modules, \[\]}/{modules, \[$(MODULES)\]}/' \ + > ebin/cowboy.app + erlc -v $(ERLC_OPTS) -o ebin/ -pa ebin/ src/cowboy_middleware.erl src/*.erl clean: - @$(REBAR) clean + -@cd deps/ranch && make clean + rm -rf ebin/ rm -f test/*.beam rm -f erl_crash.dump +# Documentation. + docs: clean-docs erl -noshell -eval 'edoc:application(cowboy, ".", []), init:stop().' @@ -30,24 +48,16 @@ clean-docs: # Tests. -deps/proper: - @$(REBAR) -C rebar.tests.config get-deps - cd deps/proper && $(REBAR) compile - -tests: clean deps/proper app eunit ct - -eunit: - @$(REBAR) -C rebar.tests.config eunit skip_deps=true - CT_RUN = ct_run \ -pa ebin deps/*/ebin \ -dir test \ -logdir logs \ -cover test/cover.spec -ct: +tests: ERLC_OPTS += -DTEST=1 +tests: clean app @mkdir -p logs/ - @$(CT_RUN) -suite http_SUITE ws_SUITE + @$(CT_RUN) -suite eunit_SUITE http_SUITE ws_SUITE autobahn: @mkdir -p logs/ @@ -55,12 +65,10 @@ autobahn: # Dialyzer. -DIALYZER = dialyzer - -build-plt: - @$(DIALYZER) --build_plt --output_plt .$(PROJECT).plt \ - --apps kernel stdlib sasl inets crypto public_key ssl deps/* +build-plt: app + @dialyzer --build_plt --output_plt .$(PROJECT).plt \ + --apps kernel stdlib sasl inets crypto public_key ssl deps/ranch dialyze: - @$(DIALYZER) --src src --plt .$(PROJECT).plt --no_native \ + @dialyzer --src src --plt .$(PROJECT).plt --no_native \ -Werror_handling -Wrace_conditions -Wunmatched_returns # -Wunderspecs diff --git a/ebin/.gitignore b/ebin/.gitignore deleted file mode 100644 index e69de29..0000000 --- a/ebin/.gitignore +++ /dev/null diff --git a/rebar.config b/rebar.config index ef634de..c3bfeb6 100644 --- a/rebar.config +++ b/rebar.config @@ -1,9 +1,3 @@ {deps, [ {ranch, "0\\.6\\.0.*", {git, "git://github.com/extend/ranch.git", "0.6.0"}} ]}. -{erl_opts, [ -%% bin_opt_info, -%% warn_missing_spec, - warnings_as_errors, - warn_export_all -]}. diff --git a/rebar.tests.config b/rebar.tests.config deleted file mode 100644 index 128f069..0000000 --- a/rebar.tests.config +++ /dev/null @@ -1,8 +0,0 @@ -{cover_enabled, true}. -{deps, [ - {proper, ".*", - {git, "git://github.com/manopapad/proper.git", "master"}}, - {ranch, "0\\.6\\.0.*", {git, "git://github.com/extend/ranch.git", "0.6.0"}} -]}. -{eunit_opts, [verbose, {report, {eunit_surefire, [{dir, "."}]}}]}. -{erl_opts, []}. diff --git a/test/eunit_SUITE.erl b/test/eunit_SUITE.erl new file mode 100644 index 0000000..d9272f9 --- /dev/null +++ b/test/eunit_SUITE.erl @@ -0,0 +1,31 @@ +%% Copyright (c) 2013, Loïc Hoguin <[email protected]> +%% +%% Permission to use, copy, modify, and/or distribute this software for any +%% purpose with or without fee is hereby granted, provided that the above +%% copyright notice and this permission notice appear in all copies. +%% +%% THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +%% WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +%% MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +%% ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +%% WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +%% ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +%% OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +-module(eunit_SUITE). + +-include_lib("common_test/include/ct.hrl"). + +%% ct. +-export([all/0]). + +%% Tests. +-export([eunit/1]). + +%% ct. + +all() -> + [eunit]. + +eunit(Config) -> + ok = eunit:test({application, cowboy}). |