# 96/12/11 @(#)README	1.2 Benjamin Renaud

#
# Lightweight test class for security classes
#

What you need to know:

1. Your tests should subclass the Test class. All they have to do is
define the run() method.

2. You specify test runs in makefile-like java properties files ("test
runs") . They contain which test to run and what arguments to run the
tests with. They support hierarchy (one test run running another,
etc).

3. You then type:

% test {-q} <test_run1> <test_run2> etc...

The -q option is for quiet, and will suppress printing of stack
traces (but not of one-line error notification).

In Test (and its subclasses should do the same thing), all good output
(information) gets written to stdout. All bad output (failures) gets
written to stderr.

Details:

Test runs are specified like this:

#
# Crypto test run
#

crypto.DESTest=providers=SUN JSAFE,data=data/sample.txt
crypto.MD5Test=provider=SUN,iterations=100,minsize=10,maxsize=50

The syntax is as follows:

The key is the fully qualified classname of the test, and values are
arguments for the test. Arguments are comma-delineated token, and each
token is a key/value pair:

The argument's key must be field in the target test class. The value
is a value which may be passed to a parser for this type of value: in
the example above, "iterations" is passed to
Integer.parseInt(String). All fields will should be initialized
automatically. The Test class currently recognizes the following
types:
	
	int
	String
	File

This will probably be extended over time. Note that subclasses can
override setArg (and call super.setArg(String,String) for known
types).

Test run files may also contain other test runs:

#
# Security test run
#

sqe.SecurityTest=provider=SUN
test.run=crypto

The second directive will run the crypto test run.

