1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
-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)]).
|