ACATS Test Modification List

Version 3.0E
July 22, 2008

What is this?

This the ACATS test modification list for ACATS 3.0. This document includes test corrections, test removals, and new tests for ACATS 3.0. ACATS 3.0 is the test suite for the current version of Ada (often known as "Ada 2005") that became current with the approval and publication of Amendment 1 by ISO as ISO/IEC 8652:1995/AMD 1:2007.

ACATS Test Modification List version 2.6C for ACATS 2.6 remains current 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:

Five tests changed categories on July 1st.

Corrected an illegal return statement in test C650A01. Fixed the related foundation to avoid an illegal component reference.

Test C3A0018 was corrected to fix several test errors. Tests C3A0026 and C3A0027 have return statements that fail an accessibility check, these were corrected. Tests C3A0019 through C3A0029 all contain an extended return statement with an unintentional Constraint_Error.

Several new tests were added:

C851001 checks that renaming a null-excluding object leaves the object as null-excluding. C851002 tests that resolution of object renames take anonymous access types into account. B851002 and B851003 check that the resolution and legality rules for renaming of anonymous access types are enforced. B851004 check that the rules for renamings with null_exclusions are enforced.

New tests that originated in the ACATS 3.0 release are required for conformity assessments using ACATS 3.0. New tests inserted between July 1, 2008 and October 1, 2008 will become required for conformity assessments on April 1, 2009. New tests inserted between April 1, 2008 and July 1, 2008 will become required for conformity assessments on January 1, 2009. New tests inserted between January 1, 2008 and April 1, 2008 will become required for conformity assessments on October 1, 2008. The effective dates of tests are marked in the lists.

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

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.com/standards/05rm/html/RM-TOC.html.

 

Main list:

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

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

C34008A [Modified] VCS Label:A3_0B
        Revised to eliminate function V @73-76 and its uses, as it
        attempts to return an existing object of a limited type.

B371001 [Pending New] New VCS Label:A3_0D
                        Required after 2009-01-01
        Replaces the previous B371001 to include checks for the rule
        improvements of AI05-0041-1. [As this is an replacement, the
        original test version (VCS Label: A3_0) can be used for conformity
        assessments until the above date.]

C38006A [Withdrawn] Org VCS Label: A3_0C
        This test has been replaced by new test C3A0016.

B38101A [Withdrawn] Org VCS Label: A3_0D
        This test has been replaced by new test B3A1001.

B38101B [Withdrawn] Org VCS Label: A3_0D
        This test has been replaced by new test B3A1001.

B38101C [Withdrawn] Org VCS Label: A3_0D
        This test has been replaced by new test B3A1002.

C393013 [Pending New] New VCS Label:A3_0D
                        Required after 2009-01-01
        Check that functions with controlling results are automatically
        inherited correctly for null type extensions.

B394A02 [Allowed Modification] New VCS Label:A3_0D Org VCS Label: A3_0
                        Required after 2008-10-01
        Revised to add "B394A02." @121 in front of Interf01 so that legal
        type is used.

B3A0005 [Pending New] New VCS Label:A3_0D
                        Required after 2009-01-01
        Check that a dereference of an anonymous access-to-constant type
        is a constant.

B3A0006 [Pending New] New VCS Label:A3_0D
                        Required after 2009-01-01
        Check that an anonymous access-to-variable type cannot designate
        a constant.

B3A0007 [Pending New] New VCS Label:A3_0D
                        Required after 2009-01-01
        Check that a null_exclusion cannot be given in a construct
        if the subtype mark is not an access type or if it excludes
        null.

B3A0008 [Pending New] New VCS Label:A3_0D
                        Required after 2009-01-01
        Check that a null_exclusion cannot be given in a construct
        if the subtype mark is a generic formal type that excludes
        null.

C3A0016 [Pending New] New VCS Label:A3_0C
                        Required after 2008-10-01
        Check that a constant access-to-variable value can be used to
        modify the designated object. This test adds general access and
        anonymous access test cases, and as such is no longer a legacy
        test.

C3A0017 [Pending New] New VCS Label:A3_0C
                        Required after 2008-10-01
        Check that anonymous access-to-subprograms can be used in many
        contexts, and that the associated function can be called.

C3A0018 [Pending New] New VCS Label:A3_0E
                                    Required after 2009-04-01
        VCS Label A3_0D: Check that anonymous access-to-protected
        subprograms can be used in many contexts, and that the associated
        subprogram can be called.
        VCS Label A3_0E: The wrong routine is returned @126; "protected"
        is missing @123; @307 needs a call of Set_Factor.

C3A0019 [Pending New] New VCS Label:A3_0E
                        Required after 2009-04-01
        VCS Label A3_0D: Check that Constraint_Error is raised when a
        null access value is converted to a null excluding subtype of a
        named access type.
        Case A: null exclusion given at point of use for a general access
        type.
        VCS Label A3_0E: @408 must be initialized with Aux'Access.

C3A0020 [Pending New] New VCS Label:A3_0E
                        Required after 2009-04-01
        VCS Label A3_0D: Check that Constraint_Error is raised when a
        null access value is converted to a null excluding subtype of a
        named access type.
        Case B: null exclusion given in a subtype of a general access
        type.
        VCS Label A3_0E: @404 must be initialized with Aux'Access.

C3A0021 [Pending New] New VCS Label:A3_0E
                        Required after 2009-04-01
        VCS Label A3_0D: Check that Constraint_Error is raised when a
        null access value is converted to a null excluding subtype of a
        named access type.
        Case C: null exclusion given in a general access type declaration.
        VCS Label A3_0E: @427 must be initialized with Aux'Access.

C3A0022 [Pending New] New VCS Label:A3_0E
                        Required after 2009-04-01
        VCS Label A3_0D: Check that Constraint_Error is raised when a
        null access value is converted to a null excluding subtype of a
        named access type.
        Case D: null exclusion given at point of use for a pool-specific
        access type.
        VCS Label A3_0E: @407 must be initialized with Non_Null_Init.

C3A0023 [Pending New] New VCS Label:A3_0E
                        Required after 2009-04-01
        VCS Label A3_0D: Check that Constraint_Error is raised when a
        null access value is converted to a null excluding subtype of a
        named access type.
        Case E: null exclusion given in a subtype of a pool-specific
        access type.
        VCS Label A3_0E: @402 must be initialized with Non_Null_Init.

C3A0024 [Pending New] New VCS Label:A3_0E
                        Required after 2009-04-01
        VCS Label A3_0D: Check that Constraint_Error is raised when a
        null access value is converted to a null excluding subtype of a
        named access type.
        Case F: null exclusion given in a pool-specific access type
        declaration.
        VCS Label A3_0E: @393 must be initialized with Non_Null_Init.

C3A0025 [Pending New] New VCS Label:A3_0E
                        Required after 2009-04-01
        VCS Label A3_0D: Check that Constraint_Error is raised when a
        null access value is converted to a null excluding anonymous
        access-to-object type.
        VCS Label A3_0E: @334 must be initialized with Aux'Access.

C3A0026 [Pending New] New VCS Label:A3_0E
                        Required after 2009-04-01
        VCS Label A3_0D: Check that Constraint_Error is raised when a
        null access value is converted to a null excluding anonymous
        access-to-subprogram type.
        VCS Label A3_0E: Expressions @385 and @407 fail accessibility
        check. @406 must be initialized with Double'Access.

C3A0027 [Pending New] New VCS Label:A3_0E
                        Required after 2009-04-01
        VCS Label A3_0D: Check that Constraint_Error is raised when a
        null access value is converted to a null excluding anonymous
        access-to-protected-subprogram type.
        VCS Label A3_0E: Expressions @393 and @416 fail accessibility
        check. @415 must be initialized with PO.Double'Access.

C3A0028 [Pending New] New VCS Label:A3_0E
                        Required after 2009-04-01
        VCS Label A3_0D: Check that Constraint_Error is raised when a
        null access value is converted to a null excluding subtype of a
        named access-to-subprogram type.
        VCS Label A3_0E: @409 must be initialized with Double'Access.

C3A0029 [Pending New] New VCS Label:A3_0E
                        Required after 2009-04-01
        VCS Label A3_0D: Check that Constraint_Error is raised when a
        null access value is converted to a null excluding subtype of a
        named access-to-protected-subprogram type.
        VCS Label A3_0E: @420 must be initialized with PO.Double'Access.

B3A1001 [Pending New] New VCS Label:A3_0D
                        Required after 2009-01-01
        Check that an incomplete type must be completed, and must be
        completed in the same declaration list unless it is given
        in the private part of a package.

B3A1002 [Pending New] New VCS Label:A3_0D
                        Required after 2009-01-01
        Check that an incomplete type must be completed, and must be
        completed in the same declaration list unless it is given
        in the private part of a package &endash; generic package cases.

B3A1003 [Pending New] New VCS Label:A3_0E
                        Required after 2009-04-01
        VCS Label A3_0D: Check that an incomplete type cannot be
        completed by another incomplete type, a private type, a
        private extension, or a subtype.
        VCS Label A3_0E: Allow errors @110 and @111.

B3A1004 [Pending New] New VCS Label:A3_0D
                        Required after 2009-01-01
        Check that a tagged incomplete type cannot be completed with an
        untagged type.

F3A1A00 [Pending New] New VCS Label: A3_0D
                        Required after 2009-01-01
        Foundation providing types to be accessed as a limited view
        in order to test the usage of incomplete views.

B3A1A01 [Pending New] New VCS Label:A3_0D
                        Required after 2009-01-01
        Check that an untagged incomplete view cannot be used as the
        subtype mark of a parameter, and that any incomplete view cannot
        be used as the subtype mark of the result of a function.

B3A1A02 [Pending New] New VCS Label:A3_0D
                        Required after 2009-01-01
        Check that an incomplete view cannot be used in the subtype
        indication of an object declaration, component declaration, or
        allocator.

B3A1A03 [Pending New] New VCS Label:A3_0D
                        Required after 2009-01-01
        Check that an incomplete view cannot be used in a use type clause.

C413006 [Pending New] New VCS Label:A3_0B
                        Required after 2008-10-01
        Created test from ashes of C41306A, included additional test
        cases for completeness. A new test is needed as Ada 95 and Ada
        2005 features must be used; the result is not a legacy test in
        any way.

C41306A [Withdrawn] Org VCS Label: A3_0B
        Deadlock: returns @75,83 call an entry on a task that will not be
        activated until the return statement finishes.

B58001A [Withdrawn] Org VCS Label: A3_0C
        This test has been replaced by new test B650004.

C650002 [Pending New] New VCS Label: A3_0C
                        Required after 2008-10-01
        Check that a return statement that applies to an entry body
        or accept statement completes the body or statement.

C650003 [Pending New] New VCS Label: A3_0C
                        Required after 2008-10-01
        Try various ways to complete an extended return statement.

B650004 [Pending New] New VCS Label: A3_0C
                        Required after 2008-10-01
        Test that return statements cannot be in a non-callable body,
        even when inside of a callable construct. This tests adds
        many test cases to those in B58001A, including those for
        extended return statements; it no longer is a legacy test for
        that reason.

F650A00 [Pending New] New VCS Label: A3_0E
                        Required after 2009-04-01
        VCS Label A3_0C: Foundation providing a limited tagged type
        hierarchy for extended return tests.
        VCS Label A3_0E: Eliminated illegal reference to Time component
        @150.

C650A01 [Pending New] New VCS Label: A3_0E
                        Required after 2009-04-01
        VCS Label A3_0C: Check that Constraint_Error is raised if the
        result of an anonymous access-to-specific-tagged does not have
        the correct tag.
        VCS Label A3_0E: Return statement @108 violates 3.9.2(9/1); remove
        'Class from type PA_Class.

B740003 [Allowed Modification] New VCS Label:A3_0D Org VCS Label: A3_0
                        Required after 2008-10-01
        The error @f1-106 can also be reported @f1-104.

B831001 [Allowed Modification] New VCS Label:A3_0D Org VCS Label: A3_0
                        Required after 2008-10-01
        The generic @f0-82 is illegal because of AI05-0073-1. "abstract"
        was removed from @f0-81, @f1-755, and @f1-846.

B831002 [Allowed Modification] New VCS Label:A3_0D Org VCS Label: A3_0
                        Required after 2008-10-01
        The declaration @309 has the wrong name (should be G) and profile
        (Gfu should have a Boolean parameter).

C851001 [Pending New] New VCS Label: A3_0E
                        Required after 2009-04-01
        Check that when renaming an object that excludes null, the
        renamed object still excludes null even if the
        renaming_declaration does not include a null_exclusion.

B851002 [Pending New] New VCS Label: A3_0E
                        Required after 2009-04-01
        Check that the resolution and legality rules are enforced for
        renaming of anonymous access-to-object types.

C851002 [Pending New] New VCS Label: A3_0E
                        Required after 2009-04-01
        For an object renaming with an anonymous access type, check that
        the name is resolved if there is only one interpretation with a
        correct anonymous access type, even if other interpretations
        exist.

B851003 [Pending New] New VCS Label: A3_0E
                        Required after 2009-04-01
        Check that the resolution and legality rules are enforced for
        renaming of anonymous access-to-subprogram types.

B851004 [Pending New] New VCS Label: A3_0E
                        Required after 2009-04-01
        Check that the legality rules for renamings that include a
        null_exclusion are enforced.

C990001 [Modified] VCS Label:A3_0B
        Added function returning a task as an attribute prefix case from
        C34008A.

CA11023 [Modified] VCS Label:A3_0C
        @f2-190 should be Dept2 rather than Dept1. "Return False;" should
        be added @f2-116.

BA12010 [Allowed Modification] New VCS Label:A3_0D Org VCS Label: A3_0
                        Required after 2008-10-01
        The limited with @f4-67 is illegal by 10.1.2(21/2), which is not
        the intent expressed by the error comment.

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

BXC3002 [Modified] VCS Label:A3_0C
        Declaration @103 is not illegal as Amendment repealed the relevant
        rule.

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

[None.]


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

BXE2009 [Modified] VCS Label:A3_0C
        Type Is_Limited_With_Attrs @80 does not have available stream
        attributes, but is assumed to have them.

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

[None.]

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

[None.]

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

[None.]

 

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_0E.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.0 is available in various formats on the ACAA web site.

 

Summary lists:

Withdrawn Tests

(Refer to the main list for details)

B38101A
B38101B
B38101C
B58001A
C38006A
C41306A

Allowed Modification Tests

(Refer to the main list for details)

B394A02  2008-10-01
B740003  2008-10-01
B831001  2008-10-01
B831002  2008-10-01
BA12010  2008-10-01

Modified Tests

(Refer to the main list for details)

BXC3002
BXE2009
C34008A
C990001
CA11023

New Tests

(Refer to the main list for details)

[None.]

Pending New Tests

(Refer to the main list for details)

B371001	2009-01-01
B3A0005	2009-01-01
B3A0006	2009-01-01
B3A0007	2009-01-01
B3A0008	2009-01-01
B3A1001	2009-01-01
B3A1002	2009-01-01
B3A1003	2009-04-01
B3A1004	2009-01-01
B3A1A01	2009-01-01
B3A1A02	2009-01-01
B3A1A03	2009-01-01
B650004	2008-10-01
B851002	2009-04-01
B851003	2009-04-01
B851004	2009-04-01
C393013	2009-01-01
C3A0016	2008-10-01
C3A0017	2008-10-01
C3A0018	2009-04-01
C3A0019	2009-04-01
C3A0020	2009-04-01
C3A0021	2009-04-01
C3A0022	2009-04-01
C3A0023	2009-04-01
C3A0024	2009-04-01
C3A0025	2009-04-01
C3A0026	2009-04-01
C3A0027	2009-04-01
C3A0028	2009-04-01
C3A0029	2009-04-01
C413006	2008-10-01
C650002	2008-10-01
C650003	2008-10-01
C650A01	2009-04-01
C851001	2009-04-01
C851002	2009-04-01
F3A1A00	2009-01-01
F650A00	2009-04-01