[svn-r12430] Purpose:

testing feature

Description:
HDF5 Test Express change; now accepts values 0 to 3.

Solution:
As explained in the RFC and documented in the code, there are now four
levels of "express-ness", 0 (no limit) to 3 (1 min limit).
It is now up to test writers to take advantage of the various levels
to tune their tests' run times.

Platforms tested:
mir (minor change)
This commit is contained in:
James Laird 2006-06-21 17:44:45 -05:00
parent 9884f21700
commit b4e2d8d79a

View File

@ -378,33 +378,52 @@ int SetTestVerbosity(int newval)
/*
* Retrieve the TestExpress mode for the testing framework
* Values: non-zero means TestExpress mode is on, 0 means off.
*
* Design:
Values:
0: Exhaustive run
Tests should take as long as necessary
1: Full run. Default if HDF5TestExpress is not defined
Tests should take no more than 30 minutes
2: Quick run
Tests should take no more than 10 minutes
3: Smoke test. Default if HDF5TestExpress is set to a value other than 0-3
Tests should take less than 1 minute
Design:
If the environment variable $HDF5TestExpress is defined,
then an intensive test should run the test in an express
mode such that it completes sooner.
then test programs should skip some tests so that they
complete sooner.
Terms:
Intensive means tests that take more than minutes, say 5 minutes,
to complete.
"sooner" means tests will finish under 5 minutes.
Express mode--probably use smaller test sizes, or skip some tests.
Test program should print a caution that it is running the express
mode.
A "test" is a single executable, even if it contains multiple
sub-tests.
The standard system for test times is a Linux machine running in
NFS space (to catch tests that involve a great deal of disk I/O).
Implementation:
I think this can be easily implemented in the test library (libh5test.a)
so that all tests can just call it to check the status of $HDF5TestExpress.
For now, it is just defined or not, the actual value does not matter.
It is possible to define levels of express but I could not think of a
good use case for it.
*/
int GetTestExpress(void)
{
char * env_val;
/* set it here for now. Should be done in something like h5test_init(). */
if (TestExpress==-1)
SetTestExpress(getenv("HDF5TestExpress")? 1 : 0);
if(TestExpress==-1)
{
env_val = getenv("HDF5TestExpress");
if(env_val == NULL)
SetTestExpress(1);
else if(strcmp(env_val, "0") == 0)
SetTestExpress(0);
else if(strcmp(env_val, "1") == 0)
SetTestExpress(1);
else if(strcmp(env_val, "2") == 0)
SetTestExpress(2);
else
SetTestExpress(3);
}
return(TestExpress);
}