quickcheck
author Simon MacMullen <simon@rabbitmq.com>
Fri Feb 03 15:59:12 2012 +0000 (3 months ago)
changeset 8922 4f87837a40be
parent 7515 8be9c1a4d172
permissions -rwxr-xr-x
Merge bug24702
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