This page describes several things we should do to improve the testing and quality assurance of Vesta.

Improve Unit Tests

Many of the packages that make up Vesta include programs under the "tests" sub-binding in their result. The exact nature of these programs varies:

If all the test programs are improved to require no user input, check their own results, and indicate success or failure with their exit status then we can automate running them. If we separate the debug utilities from the self-checking tests, this will make it easier to automate running them.

Automate Running Unit Tests

If we make the improvements suggested above, then every program in the "tests" sub-binding of a package build result should be a self-checking test program which can be run with no input. We can then write a very simple script to run these test programs. Perhaps something like:

testdir=/tmp/tests.$$

mkdir $testdir

vmake -shipfrom tests -shipto $testdir

for t in $testdir/*; do
  $t || exit 1
done

rm -rf $testdir

To ensure that these tests get run when making changes, this kind of automation should ideally become a pre-vcheckin trigger. Of course not all packages will have such tests, so we'll need some way to determine whether this should be done before checkin. One way we could do this would be to pick a specific file name for such a shell script to test a package and run it before checkin if it exists.

Improve Integration Testing

Our main method for testing the whole Vesta system is the test-vesta.pl script. While it does a reasonably good job of testing some aspects of the system (building, weeding, cache server fault tolerance), it has some significant limitations which should be addressed:

There have been at least two other Vesta testing systems which have been developed. Under Compaq during the initial evaluation of Vesta before the Alpha development group began using it, a multi-client stress test was developed. A different multi-client testing system is currently in use at Intel. Unfortunately, in their current form both of these may contain:

However, they should both be reviewed for portions which could be incorporated into test-vesta.pl.

Make Integration Testing Setup Easier

Though we probably can't make it entirely automated (especially for testing that uses multiple hosts), we should try to make the setup required to run test-vesta.pl easier. Ideally any developer who wishes to work on Vesta should be able to download the script and use it to test their changes on a host or set of hosts running any combination of OSes and CPU architectures that Vesta supports.