C.2.5 Defining the Packages to Test

The variable $PACKAGE_THREADS in file VTEST.pm holds the information which package is compiled and also the dependence of the packages from each other. The example in Fig. C.1 depicts a package configuration for several software packages of the Institute for Microelectronics.

Figure C.1: Configuration of software packages to test
{\footnotesize\begin{verbatim}$PACKAGE_THREADS =

The $PACKAGE_THREADS variable defines a set of nested packages. A new nesting level is started by an opening bracket ([) and closed by the corresponding closing bracket (]). Packages that are defined on the same nesting level are built independently from each other, a failure of one package does not influence the test run of all other packages of that level. In the example depicted in Fig. C.1 the packages spin, mmnt, siesta-stdalone, wafer-stdalone are run independent from the rest of the defined packages. The first entry in the above example defines a dependency tree. The packages basesystem and baselib must build flawlessly before the package base++ is tried to build. A clean build of package base++ on the other hand is a prerequisite to the package model-library but does not influence the build of framework or interconnect.

The packages listed in $PACKAGE_THREADS must be valid CVS modules. This multi-level dependence tree was particularly implemented to help in detecting not properly configured CVS module definitions. The dependence eases the generation of package based software releases as opposed to releasing the whole software in one big package.