Documentation of request client testing program rtest

Randal E. Bryant
Sept. 30, 2011

The rtest program is designed to automatically test the LSP-based
password cracking request client.  For each of a series of tests, it
executes the client program using an LSP-based server that simulates
the program's interface to the regular server, and checks that the
client generates the correct output.

INVOKING

The program is typically located in the "official" subdirectory and is
designed to be executed from the same directory as the request code.
It is therefore invoked as follows:

   ../official/rtest <commandline options>

OPERATION

The tests performed by the program are controlled by a script,
consisting of a sequence of letters and digits.  Each letter
designates an operation, and the following digits, when present,
control that operation.  Here are the allowed operations.  In the
following, <len> is a number:

    f <len>	Request cracking of valid password of length <len>

    x <len>	Request cracking of invalid password of length <len>

    s 		Stop the server and see that the client detects the
    		disconnection.  This test can only be at the end of
		a test squence
	    
When the test sequence is not specified on the command line, rtest
uses the sequence f3x3f4x4f5x5s.

When all tests have been completed, rtest prints "PASS" if all runs
were successful, and "FAIL" otherwise

COMMAND LINE OPTIONS

	-h         Print help message
	-v N       Set verbosity level (0-2).  The default is 1
	-V N       Set verbosity level (0-6) of the LSP clients
	-l logfile Redirect stderr for the client to the designated file.
	   	   This will capture all output generated by a logger, including
		   the provided lsp.Vlogf function.
        -s SEQ     Use test sequence SEQ, rather than the predefined one
