* Regression Test Suite Documentation
* (2000 - Jakob Ostergaard)
---------------------------------------------------------------------
This document describes briefly how to add another test to the
NetSolve test-suite.

* Why add a test ?
------------------
If you wrote a PDF (problem description file) for a new routine, you
should ALWAYS write a test program to test that routine. This will
allow you and others to quickly find errors in the routine and in
related (or seemingly unrelated) code, now and in the future. If there
is no test for your routine, noone will notice if they break it.

If you identify a problem in NetSolve, such as a specific kind of
problem that leads to a situation where NetSolve will become unstable
or otherwise malfunction, and if this situation can be reproduced,
then it would be very clever to actually add a program reproducing
that situation to the test-suite as well.

* How to add the test
---------------------
Take a copy of the file named "test_skeleton.c" in this directory,
name the copy as "test_" + routine-name + ".c"  if you're adding a
test for a simple routine. For example, the test program for the BLAS
dgemm routine is named "test_dgemm.c".  ALWAYS NAME TEST PROGRAMS
CONSISTENTLY WITH THE EXISTING SOFTWARE - DON'T INVENT NEW
STANDARDS. If your test program is a test for some special case or a
long combination of routine calls etc. you will have to make up a
clever name by yourself, it must however still begin with "test_".

- Writing the code
------------------
Once you have your "test_SOMETHING.c" file, you can fill in the
blanks in it. It should be fairly straight forward, read thru the
comments and do as they say.   Remember to put your own name in the
top of the file, so everyone can see who added what and when.

A very simple test program, which still shows some of the more
"advanced" concepts in the regression tests, is the "test_dgemm.c"
program. Read thru that one and see what it does.

You also definitely want to read the "regression.h" header file. This
one includes definitions of the test_...() routines, and it declares a
number of utility routines you can use conveniently when working with
matrices etc.

- Including the test in the test suite
--------------------------------------
You should add the name of the test to the TESTS variable in the
Makefile in this directory.  Just look inside the Makefile, it should
be obvious where to add the test - if it's not, send a mail to the
NetSolve mailing list and complain loudly.

Depending on whether you have CVS write access to the NetSolve
repository or not, your means for actually getting the test included
in the NetSolve tree may vary.  One thing remains indifferent though;
we need all the tests we can get our dirty hands on, please make sure
that a test you wrote doesn't go to waste.

* The inner workings
--------------------

