ACATS Test Modification List

Version 3.1K
December 10, 2015

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.0J 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:

Note that there is no modification list 3.1I, as I can be confused with 1.

A number of tests changed status on October 1st, this list reflects those changes.

Tests CD33001 and CD33002 were effectively renamed to CD30008 and CD30009 as the original names violate the ACATS naming conventions by referring to a non-existent subclause.

Test CXB3023 checks that a value of an unchecked union type can be passed to code and used as expected.

New tests posted between October 1, 2015 and December 30, 2015 will become required for conformity assessments on July 1, 2016. New tests posted between July 1, 2015 and September 30, 2015 will become required for conformity assessments on April 1, 2016. New tests posted between April 1, 2015 and June 30, 2015 will become required for conformity assessments on January 1, 2016. New tests inserted between October 1, 2013 and March 31, 2015 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).

C390012 [Pending New] New VCS Label: A3_1J
                 Required after 2016-04-01
        Check the operation of Ada.Tags.Generic_Dispatching_Constructor.

C391003 [New] VCS Label: A3_1F
        [VCS Label A3_1E] Check that a type extension can be declared in
        a more nested scope than its parent type, and that overridden
        subprograms of that extension can be dispatched to.
        [VCS Label A3_1F] Eliminated an overlong line.

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.

B393011 [New] VCS Label: A3_1E
        Check that an abstract routine of an abstract partial view
        overridden by a non-abstract routine in the private part requires
        overriding when it is inherited if the private part is not visible
        where it is inherited.

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.

C3A1003 [New] VCS Label: A3_1E
        Check that a dereference of an access-to-tagged-incomplete type
        can be passed as a parameter.

C3A1004 [New] VCS Label: A3_1E
        Check that a parameter of a tagged incomplete type can be passed
        as a parameter.

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

B3A1008 [New] VCS Label: A3_1F
        [VCS Label A3_1E] Check that a dereference of an
        access-to-incomplete type cannot be used as a prefix.
        [VCS Label A3_1F] Eliminated overlong lines.

B3A1009 [New] VCS Label: A3_1F
        [VCS Label A3_1E] Check that a dereference of an
        access-to-incomplete view cannot be used as a prefix. Check that
        a parameter of an incomplete view cannot be used as a prefix.
        [VCS Label A3_1F] Eliminated overlong lines.

B3A1A05 [New] VCS Label: A3_1B
        Check that generic formal objects cannot be declared with an
        incomplete view.

C3A2004 [New] VCS Label: A3_1D
        Check that the type of the prefix of 'Access is used to resolve
        the expected type of the use of the attribute.

B3A2017 [New] VCS Label: A3_1F
        [VCS Label A3_1D] 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.
        [VCS Label A3_1F] Eliminated overlong lines.

B431006 [New] VCS Label: A3_1D
        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.

B480002 [New] VCS Label: A3_1F
        [VCS Label A3_1E] Check that an initialized allocator for an
        access type with a class-wide designated type does not create an
        object whose type is more local than the access type.
        [VCS Label A3_1F] Eliminate overlong lines and tab characters.

B480003 [New] VCS Label: A3_1F
        [VCS Label A3_1E] Check that an uninitialized allocator for an
        access type with a class-wide designated type does not create an
        object whose type is more local than the access type.
        [VCS Label A3_1F] Eliminate overlong lines and tab characters.

B540002 [New] VCS Label: A3_1B
        Check that case statement coverage rules are enforced for
        modular types.

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

C540002 [Modified] VCS Label: A3_1F
        Eliminated overlong lines.

C620001 [New] VCS Label: A3_1B
        Check that elementary types are passed by copy.

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

B640001 [New] VCS Label: A3_1F
        [VCS Label A3_1D] Check that abstract nondispatching operations
        do not participate in resolution.
        [VCS Label A3_1F] Eliminate overlong lines and tab characters.

C640002 [New] VCS Label: A3_1F
        [VCS Label A3_1D] Check that an abstract nondispatching operator
        provides a way to eliminate an unwanted predefined operator.
        [VCS Label A3_1F] Eliminate overlong lines.

C660001 [New] VCS Label: A3_1B
        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_1F
        [VCS_Label A3_1A] Check that a tagged partial view can be
        synchronized if and only if the completion is a synchronized type.
        [VCS Label A3_1F] Completion of Priv12 @131 violates 7.3(10.1/3).

B730010 [New] VCS Label: A3_1F
        Check 7.3(10.1/3).

B750A01 [Allowed Modification] New VCS Label: A3_1J Org VCS Label: A3_1
                 Required after 2016-01-01
        The qualification @129 should be for Lim_Ext, not Lim_Rec.

B750A02 [Allowed Modification] New VCS Label: A3_1J Org VCS Label: A3_1
                 Required after 2016-01-01
        The qualification @131 should be for Lim_Ext, not Lim_Rec.

B750A04 [Pending New] New VCS Label: A3_1J
                 Required after 2016-04-01
        Check that only legal expressions are allowed in the qualified
        expression of an allocator for a limited object.

B750A06 [Pending New] New VCS Label: A3_1J
                 Required after 2016-04-01
        Check that only legal expressions are allowed in the expression
        of a simple return statement for a function that returns a
        limited type.

C760015 [New] VCS Label: A3_1F
        [VCS Label A3_1E] Check that a controlled type can be declared
        within a subprogram.
        [VCS Label A3_1F] Eliminated overlong lines.

B831004 [Pending New] New VCS Label: A3_1G
                 Required after 2016-01-01
        Check that overriding indicators are properly enforced for types
        derived from a generic formal type. (Nested generic specification
        cases.)

B840002 [Pending New] New VCS Label: A3_1G
                 Required after 2016-01-01
        Check a package use clause cannot denote a limited view or a
        non-package.

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

BA12017 [New] VCS Label: A3_1F
        [VCS Label A3_1D] Check that a limited with clause is not allowed
        on a descendant of the named package.
        [VCS Label A3_1F] Eliminated overlong line.

BA15003 [New] VCS Label: A3_1D
        Check that a library unit pragma must apply to a library unit.

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

CC30003 [Modified] VCS Label: A3_1F
        Eliminated overlong lines.

CC30004 [New] VCS Label: A3_1F
        [VCS Label A3_1B] Check that if a generic actual type is
        elementary, it is passed by copy within an instance.
        [VCS Label A3_1F] Eliminated overlong lines and tab characters.

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

BC60001 [New] VCS Label: A3_1D
        Test rules associated with formal subprogram defaults of null.

CC60001 [Pending New] New VCS Label: A3_1H
                 Required after 2016-01-01
        Check that calls on a formal abstract subprogram are dispatching.

BC60002 [Pending New] New VCS Label: A3_1H
                 Required after 2016-01-01
        Test rules associated with the controlling type of a formal
        abstract subprogram.

BC60004 [Pending New] New VCS Label: A3_1H
                 Required after 2016-01-01
        Check that a call on a formal abstract subprogram must be
        dispatching.

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

BDD2004 [Modified] VCS Label: A3_1F
        [VCS Label A3_1C] Error @232 is legal by AI12-0121-1.
        [VCS Label A3_1F] Eliminated overlong lines.

CD30008 [Pending New] New VCS Label: A3_1K
                 Required after 2016-07-01
        Renaming of previous test CD33001 (there is no subclause 13.3.3).
        The test is unchanged other than renaming the units involved
        and fixing an overlong line.

CD30009 [Pending New] New VCS Label: A3_1K
          			Required after 2016-07-01
        Renaming of previous test CD33002 (there is no subclause 13.3.3).
        The test is unchanged other than renaming the units involved
        and fixing an overlong line.

CC33001 [Withdrawn] VCS Label: A3_1K
        Renamed to CD30008, as there is no subclause 13.3.3.

CC33002 [Withdrawn] VCS Label: A3_1K
        Renamed to CD30009, as there is no subclause 13.3.3.

CXA4037 [Pending New] New VCS Label: A3_1G
                 Required after 2016-01-01
        Check Ada.Strings.Fixed.Find_Token against rule from 2001
        Corrigendum.

CXA5016 [New] VCS Label: A3_1F
        [VCS Label A3_1D] Check operation of attribute Machine_Rounding.
        [VCS Label A3_1F] Eliminated overlong lines.

CXAA021 [New] VCS Label: A3_1D
        Check file operations of Text_IO.Bounded_IO.

CXAA022 [New] VCS Label: A3_1D
        Check file operations of Text_IO.Unbounded_IO.

CXAB002 [New] VCS Label: A3_1D
        Check file operations of Wide_Text_IO.Wide_Bounded_IO.

CXAB003 [New] VCS Label: A3_1D
        Check file operations of Wide_Wide_Text_IO.Wide_Wide_Bounded_IO.

CXAB004 [New] VCS Label: A3_1D
        Check file operations of Wide_Text_IO.Wide_Unbounded_IO.

CXAB005 [New] VCS Label: A3_1D
        Check file operations of Wide_Wide_Text_IO.Wide_Wide_Unbounded_IO.

CXAC008 [Pending New] New VCS Label: A3_1J
                 Required after 2016-04-01
        [VCS Label A3_1D] Check that Stream_IO files opened with mode
        Out_File are not truncated by Close or Reset.
        [VCS Label A3_1E] Corrected required file size in subtest 8, and
        various failure messages.
        [VCS Label A3_1F] Eliminated overlong lines.
        [VCS Label A3_1J] Corrected a failure message.

CXAG001 [New] VCS Label: A3_1F
        Check that Ada.Directories can be used to create and delete
        directories.

CXAH001 [New] VCS Label: A3_1F
        [VCS Label A3_1E] Test that package Environment_Variables can be
        used to read environment variables.
        [VCS Label A3_1F] Added missing Applicability Criteria.

CXAH002 [New] VCS Label: A3_1F
        [VCS Label A3_1E] Test that package Environment_Variables can be
        used to modify environment variables.
        [VCS Label A3_1F] Added missing Applicability Criteria.

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 [New] VCS Label: A3_1B
        Check that pragma Export can be used on subprograms and objects.

CXB3023 [Pending New] New VCS Label: A3_1K
                 Required after 2016-07-01
        Check that a value of an unchecked union type (defined with
        pragma Unchecked_Union) can be passed to a C function.

===== 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 [Modified] VCS Label: A3_1F
        [VCS Label A3_1B] 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.
        [VCS Label A3_1E] Added constants for the names of environment
        variables used by tests CXAH001 and CXAH002. Also removed obsolete
        .AW file constants (these are not used as test source has been
        provided in UTF-8 format since the release of ACATS 3.0). The
        change is only needed for those tests, it has no effect on any
        other tests.
        [VCS Label A3_1F] Added a constant and function used by test
        CXAG001. The change is only needed for that test, it has no
        effect on any other tests.
        
IMPDEF [Allowed Modification] New VCS Label: A3_1K Org VCS Label: A3_1F
                Required after 2016-04-01
        [VCS Label A3_1K] Added constants for the external name for the
        imported routine in test CXB3023. 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_1K.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
CD33001
CD33002

Allowed Modification Tests

(Refer to the main list for details)

B750A01	2016-01-01
B750A02	2016-01-01
IMPDEF	2016-04-01 [Only needed for new test CXB3023]

Modified Tests

(Refer to the main list for details)

B393005
B3A1001
B3A1002
BDD2004
C540002
CC30003
CXG2001
IMPDEF [VCS A3_1F]

New Tests

(Refer to the main list for details)

B393011
B3A1007
B3A1008
B3A1009
B3A1A05
B3A2017
B431006
B480002
B480003
B540002
B640001
B730008
B730009
B730010
BA12017
BA15003
BC60001
BDD2004
C391003
C3A1003
C3A1004
C3A2004
C540001
C540001
C620001
C640002
C660001
C760015
C920001
CB30001
CC30004 [VCS A3_1F]
CXA5016
CXAA021
CXAA022
CXAB002
CXAB003
CXAB004
CXAB005
CXAG001
CXAH001
CXAH002
CXAI001
CXAI002
CXAI003
CXAI004
CXAI005
CXAI006
CXAIA01
CXAIA02
CXAIA03
CXAIA04
CXAIA05
CXAIA06
CXB3017
FXAIA00

Pending New Tests

(Refer to the main list for details)

B750A04  2016-04-01
B750A06  2016-04-01
B831004  2016-01-01
B840002  2016-01-01
BC60002  2016-01-01
BC60004  2016-01-01
C390012  2016-04-01
CC60001  2016-01-01
CD30008  2016-07-01
CD30009  2016-07-01
CXA4037  2016-01-01
CXAC008  2016-04-01
CXB3023  2016-07-01