blob: f2522d2d0941dad5d0dbc604803fc29d16ec2165 [file] [log] [blame]
% Licensed under the Apache License, Version 2.0 (the "License"); you may not
% use this file except in compliance with the License. You may obtain a copy of
% the License at
%
% http://www.apache.org/licenses/LICENSE-2.0
%
% Unless required by applicable law or agreed to in writing, software
% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
% License for the specific language governing permissions and limitations under
% the License.
-module(runner).
-export([run/0]).
-include("couch_config_test.erl").
-include("couch_config_writer_test.erl").
%% Test Runner
run() ->
% mochiweb tests
% case mochiweb:test() of
% ok ->
% io:format("Mochiweb Tests PASSED~n");
% _ ->
% io:format("Mochiweb Tests FAILED~n")
% end,
% CouchDB tests
Tests = lists:flatten([
couch_config_test(),
couch_config_writer_test()
]),
run_tests(Tests),
% we're done, get out of here
halt().
run_test(TestFun) ->
io:format(" ~s ", [proplists:get_value(
name,
erlang:fun_info(TestFun))]),
try TestFun() of
_ ->
io:format("[PASSED]~n", []),
passed
catch
_:{skipped, Reason} ->
io:format("[SKIPPED]~n", []),
io:format(" reason: ~s~n", [Reason]),
skipped;
_:X ->
io:format("[FAILED]~n", []),
io:format("ERROR: ~n======~n~p ~n======~n~n",
[{X, erlang:get_stacktrace()}]),
failed
end.
run_tests(List) ->
io:format("Running ~p tests...~n", [lists:flatlength(List)]),
Results = lists:map(fun run_test/1, List),
Passed = lists:filter(
fun (Result) -> Result =:= passed end,
Results),
Failed = lists:filter(
fun (Result) -> Result =:= failed end,
Results),
Skipped = lists:filter(
fun(Result) -> Result =:= skipped end,
Results),
io:format("PASSED: ~p, FAILED: ~p, SKIPPED: ~p ~n",
[lists:flatlength(Passed),
lists:flatlength(Failed),
lists:flatlength(Skipped)]).