42 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Erlang
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Erlang
		
	
	
		
			Executable File
		
	
	
| #!/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
 | |
| %% TrialsStr is the number of trials
 | |
| main([NodeStr, ModStr, NumTestsStr, MaxSizeStr]) ->
 | |
|     {ok, Hostname} = inet:gethostname(),
 | |
|     Node = list_to_atom(NodeStr ++ "@" ++ Hostname),
 | |
|     Mod  = list_to_atom(ModStr),
 | |
|     NumTests = erlang:list_to_integer(NumTestsStr),
 | |
|     MaxSize = erlang:list_to_integer(MaxSizeStr),
 | |
|     case rpc:call(Node, code, ensure_loaded, [proper]) of
 | |
|         {module, proper} ->
 | |
|             case rpc:call(Node, proper, module,
 | |
|                           [Mod] ++ [[{numtests,         NumTests},
 | |
|                                      {max_size,         MaxSize},
 | |
|                                      {constraint_tries, 200}]]) of
 | |
|                 [] -> ok;
 | |
|                 R  -> io:format("~p.~n", [R]),
 | |
|                       quit(1)
 | |
|             end;
 | |
|         {badrpc, Reason} ->
 | |
|             io:format("Could not contact node ~p: ~p.~n", [Node, Reason]),
 | |
|             quit(2);
 | |
|         {error,nofile} ->
 | |
|             io:format("Module PropEr was not found 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.
 | |
| 
 |