ACATS Test Modification List

Version 3.1D
December 30, 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").

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.

ACATS Modification List version 4.0C is the current list for ACATS 4.0. ACATS 4.0 should be used for testing the third edition of Ada, ISO/IEC 8652:2012 (usually known as "Ada 2012").

Changes from the last list:

B3A2017 is a new test that checks 3.10.2(32/3).

C3A2004 is a new test that checks that the type of the prefix of 'Access can be used to help resolve the context.

Test B43102A is replaced by new test B431006, which checks that the rewording of 4.3.1(17/3) is enforced properly. (This rule was a bug correction that first appeared in AI05-0220-1, a Binding Interpretation, and later in the Ada 2012 standard. It applies to Ada 2005 as well.)

New tests B640001 and C640002 check that abstract nondispatching operations do not participate in resolution.

New test BA12017 checks that a limited with clause cannot name an ancestor package. (This rule was a bug correction that first appeared in AI05-0040-1, a Binding Interpretation, and later in the Ada 2012 standard. It applies to Ada 2005 as well.)

New test BA15003 checks that library unit pragmas cannot be given in a nested unit. (This rule was a bug correction that first appeared in AI05-0132-1, a Binding Interpretation, and later in the Ada 2012 standard. It applies to Ada 2005 as well.)

BC60001 is a new test that checks rules associated with a generic formal subprogram default of null (new in Ada 2005).

New test CXA5016 tests the Machine_Rounding attribute.

Six new tests (CXAA021, CXAA022, CXAB002, CXAB003, CXAB004, CXAB005) check operation of Bounded_IO, Unbounded_IO, and all of the wide variations of them.

New test CXAC008 checks that Stream_IO files are not truncated by Reset or Close.

New tests inserted between October 1, 2014 and December 31, 2014 will become required for conformity assessments on July 1, 2015. 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 October 1, 2013 and March 31, 2014 are now required for conformity assessments. 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. 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 [Modified] VCS Label: A3_1B
        Declaration @114 is illegal because it inherits an abstract
        function that is not overridden, as described in AI05-0097-1.

B3A1001 [Modified] VCS Label: A3_1B
        Type UT1 @78 is supposed to be tagged incomplete, else it's the
        same as type U1.

B3A1002 [Modified] VCS Label: A3_1B
        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.

C3A2004 [Pending New] New VCS Label: A3_1D
                 Required after 2015-07-01
        Check that the type of the prefix of 'Access is used to resolve
        the expected type of the use of the attribute.

B3A2017 [Pending New] New VCS Label: A3_1D
                 Required after 2015-07-01
        Check P'Access is not allowed in a generic body if P is declared
        in the generic (including in the parent of a child or in a formal
        package) and the access type is a formal type or outside of
        the generic.

B431006 [Pending New] New VCS Label: A3_1D
                 Required after 2015-07-01
        Check that if a variant part is not nested in an unselected
        variant, the value of the governing discriminant of a variant in
        a record aggregate cannot be non-static.

B43102A [Withdrawn] VCS Label: A3_1D
        Replaced by B431006.

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.

B640001 [Pending New] New VCS Label: A3_1D
                 Required after 2015-07-01
        Check that abstract nondispatching operations do not participate
        in resolution.

C640002 [Pending New] New VCS Label: A3_1D
                 Required after 2015-07-01
        Check that an abstract nondispatching operator provides a way
        to eliminate an unwanted predefined operator.

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 [New] VCS Label: A3_1A
        Check that a tagged partial view and its completion must have the
        same set of interfaces.

B730009 [New] VCS Label: A3_1A
        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.

BA12017 [Pending New] New VCS Label: A3_1D
                 Required after 2015-07-01
        Check that a limited with clause is not allowed on a
        descendant of the named package.

BA15003 [Pending New] New VCS Label: A3_1D
                 Required after 2015-07-01
        Check that a library unit pragma must apply to a library unit.

CB30001 [Pending New] New VCS Label: A3_1C
                 Required after 2015-07-01
        Check that the optional message parameter is supported in a raise
        statement, and that the message can be retrieved with
        Exception_Message.

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.

BC60001 [Pending New] New VCS Label: A3_1D
                 Required after 2015-07-01
        Test rules associated with formal subprogram defaults of null.

BDD2004 [New] VCS Label: A3_0R
        Check that subprograms specified for stream attributes meet the
        requirements for such subprograms. This version corrects the
        location of 'Class @230, 235, 240.

BDD2004 [Allowed Modification] New VCS Label: A3_1C Org VCS Label: A3_1
                 Required after 2015-04-01
        Error @232 is legal by AI12-0121-1.

CXA5016 [Pending New] New VCS Label: A3_1D
                 Required after 2015-07-01
        Check operation of attribute Machine_Rounding.

CXAA021 [Pending New] New VCS Label: A3_1D
                 Required after 2015-07-01
        Check file operations of Text_IO.Bounded_IO.

CXAA022 [Pending New] New VCS Label: A3_1D
                 Required after 2015-07-01
        Check file operations of Text_IO.Unbounded_IO.

CXAB002 [Pending New] New VCS Label: A3_1D
                 Required after 2015-07-01
        Check file operations of Wide_Text_IO.Wide_Bounded_IO.

CXAB003 [Pending New] New VCS Label: A3_1D
                 Required after 2015-07-01
        Check file operations of Wide_Wide_Text_IO.Wide_Wide_Bounded_IO.

CXAB004 [Pending New] New VCS Label: A3_1D
                 Required after 2015-07-01
        Check file operations of Wide_Text_IO.Wide_Unbounded_IO.

CXAB005 [Pending New] New VCS Label: A3_1D
                 Required after 2015-07-01
        Check file operations of Wide_Wide_Text_IO.Wide_Wide_Unbounded_IO.

CXAC008 [Pending New] New VCS Label: A3_1D
                 Required after 2015-07-01
        Check that Stream_IO files opened with mode Out_File are not
        truncated by Close or Reset.

CXAI001 [New] VCS Label: A3_1A
        Check the functionality defined in package Ada.Containers.Vectors.

CXAI002 [New] VCS Label: A3_1A
        Check the functionality defined in package
        Ada.Containers.Doubly_Linked_Lists.

CXAI003 [New] New VCS Label: A3_1A
        Check the functionality defined in package
        Ada.Containers.Hashed_Maps.

CXAI004 [New] VCS Label: A3_1A
        Check the functionality defined in package
        Ada.Containers.Ordered_Maps.

CXAI005 [New] VCS Label: A3_1A
        Check the functionality defined in package
        Ada.Containers.Hashed_Sets.

CXAI006 [New] VCS Label: A3_1A
        Check the functionality defined in package
        Ada.Containers.Ordered_Sets.

FXAIA00 [New] New VCS Label: A3_1A
        Foundation containing types and values to be used to check the
        functionality of the indefinite containers.

CXAIA01 [New] VCS Label: A3_1A
        Check the functionality defined in package
        Ada.Containers.Indefinite_Vectors.

CXAIA02 [New] VCS Label: A3_1A
        Check the functionality defined in package
        Ada.Containers.Indefinite_Doubly_Linked_Lists.

CXAIA03 [New] VCS Label: A3_1A
        Check the functionality defined in package
        Ada.Containers.Indefinite_Hashed_Maps.

CXAIA04 [New] VCS Label: A3_1A
        Check the functionality defined in package
        Ada.Containers.Indefinite_Ordered_Maps.

CXAIA05 [New] VCS Label: A3_1A
        Check the functionality defined in package
        Ada.Containers.Indefinite_Hashed_Sets.

CXAIA06 [New] VCS Label: A3_1A
        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 [Modified] VCS Label: A3_1B
        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 at www.ada-auth.org.

The complete set of official new and modified tests are available in the Mod_3_1D.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
B43102A
C62003A
CC3017C

Allowed Modification Tests

(Refer to the main list for details)

BDD2004   2015-04-01
IMPDEF    2015-01-01  (Change only needed for new test CXB3017)

Modified Tests

(Refer to the main list for details)

B393005
B3A1001
B3A1002
CXG2001

New Tests

(Refer to the main list for details)

B730008
B730009
BDD2004
CXAI001
CXAI002
CXAI003
CXAI004
CXAI005
CXAI006
CXAIA01
CXAIA02
CXAIA03
CXAIA04
CXAIA05
CXAIA06
FXAIA00

Pending New Tests

(Refer to the main list for details)

B3A1007	2015-01-01
B3A1A05	2015-01-01
B3A2017	2015-07-01
B431006	2014-07-01
B540002	2015-01-01
B640001	2015-07-01
BA12017	2015-07-01
BA15003	2015-07-01
BC60001	2015-07-01
C3A2004	2015-07-01
C540001	2015-01-01
C620001	2015-01-01
C640002	2015-07-01
C660001	2015-01-01
C920001	2015-01-01
CB30001	2015-07-01
CC30004	2015-01-01
CXA5016	2015-07-01
CXAA021	2015-07-01
CXAA022	2015-07-01
CXAB002	2015-07-01
CXAB003	2015-07-01
CXAB004	2015-07-01
CXAB005	2015-07-01
CXAC008	2015-07-01
CXB3017	2015-01-01