ACATS 3.0 User's Guide
4.1.2 Logical Organization
The table summarizes the number of tests that check
the conformance of an Ada implementation to the core language and conformance
to the Specialized Needs Annexes of Ada.
Core tests apply to all implementations. Specialized
Needs Annex tests are not required for any implementation. Tests for
a given Specialized Needs Annex may be processed by implementations that
claim implementation of that annex.
In general, no test result depends on the processing
or the result of any other test. Exceptions are noted in Section
5.4.2.
No annex test depends on the implementation of any other annex, except
possibly in cases where one annex specifically depends on another in
Ada (e.g., no test for the Information Processing Annex uses features
from any other annex, however Real Time Annex and Distributed Processing
tests may depend on Systems Programming Annex features). (There is a
single exception to this rule: see Section
5.5.5.3.)
Annex tests may use any core feature.
Tests may be created from one or more compilation
units. If a test consists of a single compilation unit (a main subprogram
only), the test code will be contained in a single file. Tests built
from more than one compilation unit may require multiple files. Moreover,
some compilation units, called foundation code, may be used by more than
one test. Even in these cases, the resulting tests are strictly independent:
if test A and test B use the same foundation code, the results of processing
(and running, if appropriate) A have no effect on the results of processing
(and running, if appropriate) B. Foundation code is more fully explained
in Section
4.1.4.
Tests are named using conventions that provide (limited)
information about the test. The test naming conventions are explained
in Section
4.3. Each test belongs to a single
test class that indicates whether it is or is not an executable test.
Test classes are explained in Section
4.2.
In addition to test code and foundation code, there
is code on which many or all of the executable tests in the suite depend
(e.g., package Report, package ImpDef, package TCTouch). Some of this
code must be customized to each implementation. There is also code that
must be used to build support tools used to customize the suite of tests
to an implementation. The customization process is described in Section
5.2.