diff options
author | Loïc Hoguin <[email protected]> | 2014-04-20 22:20:54 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2014-04-20 22:20:54 +0200 |
commit | 74512fc84c1e20050f69b3a53d2fc5ef4edbe9dd (patch) | |
tree | 4b153ebe6a7cc25872def6e6f06917a3057b3ff5 /test/autobahn_SUITE.erl | |
parent | 806cde9ace3bd67988e07885c9899ead0a9425d5 (diff) | |
download | cowboy-74512fc84c1e20050f69b3a53d2fc5ef4edbe9dd.tar.gz cowboy-74512fc84c1e20050f69b3a53d2fc5ef4edbe9dd.tar.bz2 cowboy-74512fc84c1e20050f69b3a53d2fc5ef4edbe9dd.zip |
Enable Autobahn Test Suite by default
Includes a variety of small changes that are a first step to
improving the test system heavily.
Diffstat (limited to 'test/autobahn_SUITE.erl')
-rw-r--r-- | test/autobahn_SUITE.erl | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/test/autobahn_SUITE.erl b/test/autobahn_SUITE.erl deleted file mode 100644 index da56667..0000000 --- a/test/autobahn_SUITE.erl +++ /dev/null @@ -1,100 +0,0 @@ -%% Copyright (c) 2011, Magnus Klaar <[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(autobahn_SUITE). - -%% This CT suite reuses the websocket server test suite from the Autobahn -%% project. The Autobahn project is a websocket implementation for Python. -%% Given that we don't expect to find the packages and tools to properly -%% set up and run such a test on a system used primarily for Erlang devlopment -%% this test suite is not included in the default 'ct' target in the makefile. - --include_lib("common_test/include/ct.hrl"). - --export([all/0, groups/0, init_per_suite/1, end_per_suite/1, - init_per_group/2, end_per_group/2]). %% ct. --export([run_tests/1]). %% autobahn. - -%% ct. - -all() -> - [{group, autobahn}]. - -groups() -> - BaseTests = [run_tests], - [{autobahn, [], BaseTests}]. - -init_per_suite(Config) -> - application:start(crypto), - application:start(cowlib), - application:start(ranch), - application:start(cowboy), - %% /tmp must be used as the parent directory for the virtualenv because - %% the directory names used in CT are so long that the interpreter path - %% in the scripts generated by virtualenv get so long that the system - %% refuses to execute them. - EnvPath = "/tmp/cowboy_autobahn_env", - os:putenv("AB_TESTS_ENV", EnvPath), - os:putenv("AB_TESTS_PRIV", ?config(priv_dir, Config)), - BinPath = filename:join(?config(data_dir, Config), "test.py"), - Stdout = os:cmd(BinPath ++ " setup"), - ct:log("~s~n", [Stdout]), - case string:str(Stdout, "AB-TESTS-SETUP-OK") of - 0 -> erlang:error(failed); - _ -> [{env_path, EnvPath},{bin_path,BinPath}|Config] - end. - -end_per_suite(_Config) -> - os:cmd("deactivate"), - application:stop(cowboy), - application:stop(ranch), - application:stop(cowlib), - application:stop(crypto), - ok. - -init_per_group(autobahn, Config) -> - Port = 33080, - cowboy:start_http(autobahn, 100, [{port, Port}], [ - {env, [{dispatch, init_dispatch()}]} - ]), - [{port, Port}|Config]. - -end_per_group(Listener, _Config) -> - cowboy:stop_listener(Listener), - ok. - -%% Dispatch configuration. - -init_dispatch() -> - cowboy_router:compile([{"localhost", [ - {"/echo", autobahn_echo, []}]}]). - -%% autobahn cases - -run_tests(Config) -> - PrivDir = ?config(priv_dir, Config), - IndexFile = filename:join([PrivDir, "reports", "servers", "index.html"]), - ct:log("<h2><a href=\"~s\">Full Test Results Report</a></h2>~n", [IndexFile]), - BinPath = ?config(bin_path, Config), - Stdout = os:cmd(BinPath ++ " test"), - ct:log("~s~n", [Stdout]), - case string:str(Stdout, "AB-TESTS-TEST-OK") of - 0 -> erlang:error(failed); - _ -> ok - end, - {ok, IndexHTML} = file:read_file(IndexFile), - case length(binary:matches(IndexHTML, <<"case_failed">>)) > 2 of - true -> erlang:error(failed); - false -> ok - end. |