ACATS Test Modification List

Version 3.1B
June 23, 2014

What is this?

This is the ACATS modification list for ACATS 3.1. This document includes test corrections, test removals, and new tests for ACATS 3.1. ACATS 3.1 is the current test suite for the version of Ada that became current with the approval and publication of Amendment 1 by ISO as ISO/IEC 8652:1995/AMD 1:2007 (often known as "Ada 2005"). Tests for the third edition of Ada, ISO/IEC 8652:2012 (usually known as "Ada 2012") will be added to a separate version of the test suite (to be created in the near future).

ACATS Modification List version 2.6D for ACATS 2.6 is the current list for that test suite. ACATS 2.6 should be used for testing Ada 95 implementations, and will continue to be maintained as necessary for the foreseeable future.

Changes from the last list:

Test B393005 was corrected as the declaration of Leaf_1 should be illegal as clarified by AI05-0097-1 (a binding interpretation). In this case, the test was revised to require the interpretation of the AI (and to add two additional test cases to ensure proper coverage of the issue). That's because the original wording for Ada 2005 requires type Branch_1 to have a concrete routine that returns an abstract object, a requirement that would violate the design principles of abstract types. (There is an argument that Branch_1 should be illegal in that case, but the test has never allowed that so we don't believe any implementations actually use that interpretation.) As such, we require that Branch_1 inherits an abstract function with a controlling result, and that makes type Leaf_1 illegal.

Test C660001 checks that "/=" is defined and inherited for explicitly declared "=" operators that return Boolean. This test was created mainly because it tests the remaining objectives for subclause 6.6 (the legacy test B65001A tests the other objective mistakenly shown as untested in the coverage documents). This means that we can say that at least one non-trivial subclause is completely tested for a reasonable definition of complete. It'll probably be a while before we can say that about all subclauses.

Tests B3A1007 and B3A1A05 were created to replace the parts of B38105A which are not changed by Ada 2012. B38105A is withdrawn.

Tests B3A1001 and B3A1002 are corrected so that types U1 and UT1 aren't identical (the latter clearly was supposed to be tagged incomplete).

Test C620001 was created out of ancient test C62003A to avoid Ada 2012 incompatibilities, to add an additional test, and to make the test a bit more realistic. C62003A is withdrawn.

Test CC30004 was created out of ancient test CC3017C to avoid Ada 2012 incompatibilities, to make a more sensible objective, to add some additional test cases, and to make the test a bit more realistic. CC3017C is withdrawn.

Test CXB3017 is a new test that checks that pragma Export can be used on an Ada procedure and object and the result can be used from C code. There is a related change to Impdef.A to allow the external names of the procedure and object to be set.

Test C920001 is a new test that checks that unactivated tasks in an extended return statement are properly terminated. This test checks Binding Interpretation AI05-0045-1.

Test CXG2001 is repaired to use the correct formula for the attribute Model_Mantissa. This only changes the result for machines with decimal floating point (quite possibly none), but it's obnoxious to have the test requiring the wrong value for such machines.

Test C540002 was created to test that the requirement that a case selecting_expression is any discrete type can be used to resolve an overloaded function call. This was an objective for Ada 83 (!), but no test was ever created. The omission was noticed when working on Ada 2012 case expression tests. We created a test as there is no other context which has a requirement of "any discrete type"; as this is a unique context, it should be tested by the ACATS.

Test B540002 was created (using various legacy tests as a basis) to check case coverage rules for modular types.

New tests inserted between April 1, 2014 and June 30, 2014 will become required for conformity assessments on January 1, 2015. New tests inserted between January 1, 2014 and March 31, 2014 will become required for conformity assessments on October 1, 2014. New tests inserted between October 1, 2013 and December 31, 2013 will become required for conformity assessments on July 1, 2014. All other tests previously inserted into ACATS 3.0 are part of ACATS 3.1 and are required for conformity assessment. The effective dates of tests are marked in the lists.

Questions about this document? Contact the ACAA Technical Agent at agent@ada-auth.org.

Ada 2012 compatibility:

This test suite is designed for Ada 2005. The soon-to-released ACATS 4.0 should be used to test Ada 2012 implementations. There are a significant number of tests in ACATS 3.1 that are incompatible with the requirements of Ada 2012.

Notice:

The ACAA has created and maintains the Ada Conformity Assessment Test Suite for the purpose of conformity assessments conducted in accordance with the International Standard ISO/IEC 18009 - Ada: Conformity assessment of a language processor. This test suite should not be used to make claims of conformance unless used in accordance with ISO/IEC 18009 and any applicable ACAA procedures.

List explanation:

Test numbers given are for the basic test. Categories are "Withdrawn" (the test should not be processed for Ada conformity assessments); "Allowed Modification" (either the original test or the modified one should be processed for Ada conformity assessments); "Modified" (the modified test must be processed for Ada conformity assessments); "Pending New" (the test does not need to be processed for Ada conformity assessments, but will be added in the future); "New" (the test is processed for Ada conformity assessments).

ACATS version labels are provided with all new and modified tests. Use this label to retrieve the test from the ACATS VCS. See "How to get new and modified tests".

In citations, line numbers are given relative to the start of a test file in the format of '@<line#,line#,...>'; if a test program comprises more than one file, then the particular file will be indicated by "fn", where "n" is the test-program name's file-designator numeral. E.g., "B38103E : @f1-31, ... " denotes test file b38103e1.ada. In cases where there are two or more rationales for different errors in a test program, these different rationales with their respective line citations are listed on separate lines. References to the Ada standards are given in the format:
   <section|chapter>.<clause>[.<subclause>]:<paragraph>
These references are to the consolidated Ada standard as available at http://www.adaic.org/resources/add_content/standards/05rm/html/RM-TOC.html.

 

Main list:

===== Core Language =====

Name     Category  Version label  (effective date; old version label)
         Short description.

B38105A [Withdrawn] Org VCS Label: A3_1B
        Replaced by tests B3A1007 and B3A1A05 (and existing tests B3A1A01
        and B3A1A02).

B393005 [Allowed Modification] New VCS Label: A3_1B Org VCS Label: A3_1
                 Required after 2014-10-01
        Declaration @114 is illegal because it inherits an abstract
        function that is not overridden, as described in AI05-0097-1.

B3A1001 [Allowed Modification] New VCS Label: A3_1B Org VCS Label: A3_1
                 Required after 2014-10-01
        Type UT1 @78 is supposed to be tagged incomplete, else it's the
        same as type U1.

B3A1002 [Allowed Modification] New VCS Label: A3_1B Org VCS Label: A3_1
                 Required after 2014-10-01
        Type UT1 @77 is supposed to be tagged incomplete, else it's the
        same as type U1.

B3A1007 [Pending New] New VCS Label: A3_1B
                 Required after 2015-01-01
        Check that constraints and exclusions aren't allowed on an
        incomplete type in access type and subtype declarations.

B3A1A05 [Pending New] New VCS Label: A3_1B
                 Required after 2015-01-01
        Check that generic formal objects cannot be declared with an
        incomplete view.

B540002 [Pending New] New VCS Label: A3_1B
                 Required after 2015-01-01
        Check that case statement coverage rules are enforced for
        modular types.

C540002 [Pending New] New VCS Label: A3_1B
                 Required after 2015-01-01
        Check that the selecting_expression of a case statement can be
        resolved using the requirement that it be any discrete type.

C620001 [Pending New] New VCS Label: A3_1B
                 Required after 2015-01-01
        Check that elementary types are passed by-copy.

C62003A [Withdrawn] Org VCS Label: A3_1B
        Replaced by test C620001.

C660001 [Pending New] New VCS Label: A3_1B
                 Required after 2015-01-01
        Check that a matching "/=" is defined for an explicitly declared
        "=" operator with a result of Boolean.

B730008 [Pending New] New VCS Label: A3_0Q
                 Required after 2014-07-01
        Check that a tagged partial view and its completion must have the
        same set of interfaces.

B730009 [Pending New] New VCS Label: A3_0Q
                 Required after 2014-07-01
        Check that a tagged partial view can be synchronized if and only
        if the completion is a synchronized type.

C920001 [Pending New] New VCS Label: A3_1B
                 Required after 2015-01-01
        Check activation (and non-activation) of tasks declared as (part
        of) return objects in extended return statements.

CC30004 [Pending New] New VCS Label: A3_1B
                 Required after 2015-01-01
        Check that if a generic actual type is elementary, it is passed by
        copy within an instance.

CC3017C [Withdrawn] Org VCS Label: A3_1B
        Replaced by test CC30004.

BDD2004 [Pending New] New VCS Label: A3_0R
                 Required after 2014-10-01
        Check that subprograms specified for stream attributes meet the
        requirements for such subprograms. This version corrects the
        location of 'Class @230, 235, 240.
        
CXAI001 [Pending New] New VCS Label: A3_0Q
                 Required after 2014-07-01
        Check the functionality defined in package Ada.Containers.Vectors.

CXAI002 [Pending New] New VCS Label: A3_0Q
                 Required after 2014-07-01
        Check the functionality defined in package
        Ada.Containers.Doubly_Linked_Lists.

CXAI003 [Pending New] New VCS Label: A3_0Q
                 Required after 2014-07-01
        Check the functionality defined in package
        Ada.Containers.Hashed_Maps.

CXAI004 [Pending New] New VCS Label: A3_0Q
                 Required after 2014-07-01
        Check the functionality defined in package
        Ada.Containers.Ordered_Maps.

CXAI005 [Pending New] New VCS Label: A3_0Q
                 Required after 2014-07-01
        Check the functionality defined in package
        Ada.Containers.Hashed_Sets.

CXAI006 [Pending New] New VCS Label: A3_0Q
                 Required after 2014-07-01
        Check the functionality defined in package
        Ada.Containers.Ordered_Sets.

FXAIA00 [Pending New] New VCS Label: A3_0Q
                 Required after 2014-07-01
        Foundation containing types and values to be used to check the
        functionality of the indefinite containers.

CXAIA01 [Pending New] New VCS Label: A3_0Q
                 Required after 2014-07-01
        Check the functionality defined in package
        Ada.Containers.Indefinite_Vectors.

CXAIA02 [Pending New] New VCS Label: A3_0Q
                 Required after 2014-07-01
        Check the functionality defined in package
        Ada.Containers.Indefinite_Doubly_Linked_Lists.

CXAIA03 [Pending New] New VCS Label: A3_0Q
                 Required after 2014-07-01
        Check the functionality defined in package
        Ada.Containers.Indefinite_Hashed_Maps.

CXAIA04 [Pending New] New VCS Label: A3_0Q
                 Required after 2014-07-01
        Check the functionality defined in package
        Ada.Containers.Indefinite_Ordered_Maps.

CXAIA05 [Pending New] New VCS Label: A3_0Q
                 Required after 2014-07-01
        Check the functionality defined in package
        Ada.Containers.Indefinite_Hashed_Sets.

CXAIA06 [Pending New] New VCS Label: A3_0Q
                 Required after 2014-07-01
        Check the functionality defined in package
        Ada.Containers.Indefinite_Ordered_Sets.

CXB3017 [Pending New] New VCS Label: A3_1B
                 Required after 2015-01-01
        Check that pragma Export can be used on subprograms and objects.

===== Annex C =====

[None.]

===== Annex D =====

[None.]


===== Annex E =====

[None.]

===== Annex F =====

[None.]

===== Annex G =====

CXG2001 [Allowed Modification] New VCS Label: A3_1B Org VCS Label: A3_1
                 Required after 2014-10-01
        Formula for Model_Mantissa was replaced in Ada 2005 (and really in
        the Corrigendum), but was never updated in this test. This only
        affects machines with decimal floating point.

===== Annex H =====

[None.]

===== Support =====

IMPDEF [Allowed Modification] New VCS Label: A3_1B Org VCS Label: A3_1
                Required after 2015-01-01
       Added constants for the external names for the imported and
       exported routines in test CXB3017. The change is only needed
       for that test, it has no effect on any other test.


 

How to get new and modified tests:

The official home of the ACATS test suite is the ACAA web site. The site can be accessed from the Compilers and Conformance section of the Ada IC web site (www.adaic.org). It also can be accessed directly at www.ada-auth.org.

The complete set of official new and modified tests are available in the Mod_3_1B.Zip and Tar files on the ACAA web site.

Individual new and modified tests can be retrieved from the ACATS VCS. Simply navigate to the appropriate directory (folder), and select the test you want. Select the revision you want (usually the most recent) and it will be retrieved for you. Tests are stored in directories that correspond to the test's prefix. For instance, the test CD92001.A will be found in the CD directory. You can also browse the differences between versions of a test. [In case of a conflict, the files in the ACATS VCS should be considered the 'official' versions.]

If you cannot get the files from the official site or you cannot get the files in a format appropriate for your processor, please contact your ACAL.

The baseline ACATS 3.1 is available in various formats on the ACAA web site.

 

Summary lists:

Withdrawn Tests

(Refer to the main list for details)

B38105A
C62003A
CC3017C

Allowed Modification Tests

(Refer to the main list for details)

B393005  2014-10-01
B3A1001  2014-10-01
CXG2001  2014-10-01
IMPDEF   2015-01-01  (Change only needed for new test CXB3017)

Modified Tests

(Refer to the main list for details)

None.

New Tests

(Refer to the main list for details)

None.

Pending New Tests

(Refer to the main list for details)

B3A1007  2015-01-01
B3A1A05  2015-01-01
B540002  2015-01-01
B730008  2014-07-01
B730009  2014-07-01
BDD2004  2014-10-01
C540001  2015-01-01
C620001  2015-01-01
C660001  2015-01-01
C920001  2015-01-01
CC30004  2015-01-01
CXAI001  2014-07-01
CXAI002  2014-07-01
CXAI003  2014-07-01
CXAI004  2014-07-01
CXAI005  2014-07-01
CXAI006  2014-07-01
CXAIA01  2014-07-01
CXAIA02  2014-07-01
CXAIA03  2014-07-01
CXAIA04  2014-07-01
CXAIA05  2014-07-01
CXAIA06  2014-07-01
CXB3017  2015-01-01
FXAIA00  2014-07-01