|
emile@7491
|
1 |
#!/usr/bin/env escript
|
|
emile@7491
|
2 |
%% -*- erlang -*-
|
|
emile@7491
|
3 |
%%! -sname quickcheck
|
|
emile@7491
|
4 |
-mode(compile).
|
|
emile@7491
|
5 |
|
|
emile@7491
|
6 |
%% A helper to test quickcheck properties on a running broker
|
|
emile@7491
|
7 |
%% NodeStr is a local broker node name
|
|
emile@7491
|
8 |
%% ModStr is the module containing quickcheck properties
|
|
emile@8467
|
9 |
%% TrialsStr is the number of trials
|
|
emile@8467
|
10 |
main([NodeStr, ModStr, TrialsStr]) ->
|
|
emile@7515
|
11 |
{ok, Hostname} = inet:gethostname(),
|
|
emile@7515
|
12 |
Node = list_to_atom(NodeStr ++ "@" ++ Hostname),
|
|
emile@7515
|
13 |
Mod = list_to_atom(ModStr),
|
|
emile@8467
|
14 |
Trials = erlang:list_to_integer(TrialsStr),
|
|
emile@7491
|
15 |
case rpc:call(Node, code, ensure_loaded, [proper]) of
|
|
emile@7491
|
16 |
{module, proper} ->
|
|
emile@8467
|
17 |
case rpc:call(Node, proper, module,
|
|
emile@8467
|
18 |
[Mod] ++ [[{numtests, Trials}, {constraint_tries, 200}]]) of
|
|
emile@7491
|
19 |
[] -> ok;
|
|
emile@7491
|
20 |
_ -> quit(1)
|
|
emile@7491
|
21 |
end;
|
|
emile@7515
|
22 |
{badrpc, Reason} ->
|
|
emile@7515
|
23 |
io:format("Could not contact node ~p: ~p.~n", [Node, Reason]),
|
|
emile@7515
|
24 |
quit(2);
|
|
emile@7515
|
25 |
{error,nofile} ->
|
|
emile@7515
|
26 |
io:format("Module PropEr was not found on node ~p~n", [Node]),
|
|
emile@7491
|
27 |
quit(2)
|
|
emile@7491
|
28 |
end;
|
|
emile@7491
|
29 |
main([]) ->
|
|
emile@7491
|
30 |
io:format("This script requires a node name and a module.~n").
|
|
emile@7491
|
31 |
|
|
emile@7491
|
32 |
quit(Status) ->
|
|
emile@7491
|
33 |
case os:type() of
|
|
emile@7491
|
34 |
{unix, _} -> halt(Status);
|
|
emile@7491
|
35 |
{win32, _} -> init:stop(Status)
|
|
emile@7491
|
36 |
end.
|
|
emile@7491
|
37 |
|