summaryrefslogtreecommitdiff
path: root/quickcheck
diff options
context:
space:
mode:
Diffstat (limited to 'quickcheck')
-rwxr-xr-xquickcheck32
1 files changed, 32 insertions, 0 deletions
diff --git a/quickcheck b/quickcheck
new file mode 100755
index 0000000000..24edae7031
--- /dev/null
+++ b/quickcheck
@@ -0,0 +1,32 @@
+#!/usr/bin/env escript
+%% -*- erlang -*-
+%%! -sname quickcheck
+-mode(compile).
+
+%% A helper to test quickcheck properties on a running broker
+%% NodeStr is a local broker node name
+%% ModStr is the module containing quickcheck properties
+%% The number of trials is optional
+main([NodeStr, ModStr | TrialsStr]) ->
+ Node = list_to_atom(NodeStr ++ "@" ++ net_adm:localhost()),
+ Mod = list_to_atom(ModStr),
+ Trials = lists:map(fun erlang:list_to_integer/1, TrialsStr),
+ case rpc:call(Node, code, ensure_loaded, [proper]) of
+ {module, proper} ->
+ case rpc:call(Node, proper, module, [Mod] ++ Trials) of
+ [] -> ok;
+ _ -> quit(1)
+ end;
+ _ ->
+ io:format("PropEr module not present on node ~p.~n", [Node]),
+ quit(2)
+ end;
+main([]) ->
+ io:format("This script requires a node name and a module.~n").
+
+quit(Status) ->
+ case os:type() of
+ {unix, _} -> halt(Status);
+ {win32, _} -> init:stop(Status)
+ end.
+