ACATS Test Modification List
Version 3.0L
July 1, 2009
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:
This list contains a number of test status changes; there are no new or modified tests.
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, 2009 and October 1, 2009 will become required for conformity assessments on April 1, 2010. New tests inserted between April 1, 2009 and July 1, 2009 will become required for conformity assessments on January 1, 2010. New tests inserted between January 1, 2009 and April 1, 2009 will become required for conformity assessments on October 1, 2009. New tests inserted before January 1, 2009 are now required for conformity assessments. 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 [New] VCS Label: A3_0D
Replaces the previous B371001 to include checks for the rule
improvements of AI05-0041-1.
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 [New] VCS Label: A3_0D
Check that functions with controlling results are automatically
inherited correctly for null type extensions.
B394A02 [Modified] VCS Label: A3_0D
Revised to add "B394A02." @121 in front of Interf01 so that legal
type is used.
B394A03 [Modified] VCS Label: A3_0G
Decls @78,108 must be synchronized instead of limited; they
violate 7.3(7.1/2) and 12.5.1(5/2), respectively.
B394A04 [Modified] VCS Label: A3_0G
Decls @76,106 must be synchronized instead of limited; they
violate 7.3(7.1/2) and 12.5.1(5/2), respectively.
B394A05 [Modified] VCS Label:A3_0G
Decls @78,108 must be synchronized instead of limited; they
violate 7.3(7.1/2) and 12.5.1(5/2), respectively.
B3A0005 [New] VCS Label: A3_0D
Check that a dereference of an anonymous access-to-constant type
is a constant.
B3A0006 [New] VCS Label: A3_0D
Check that an anonymous access-to-variable type cannot designate
a constant.
B3A0007 [New] VCS Label: A3_0D
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 [New] VCS Label: A3_0D
Check that a null_exclusion cannot be given in a construct
if the subtype mark is a generic formal type that excludes
null.
C3A0016 [New] VCS Label: A3_0C
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 [New] VCS Label: A3_0C
Check that anonymous access-to-subprograms can be used in many
contexts, and that the associated function can be called.
C3A0018 [New] VCS Label: A3_0E
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 [New] VCS Label: A3_0E
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 [New] VCS Label: A3_0E
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 [New] VCS Label:A3_0F
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.
VCS Label A3_0F: @409 and 432 must be initialized with Aux'Access.
C3A0022 [New] VCS Label: A3_0E
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 [New] VCS Label: A3_0E
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 [New] VCS Label: A3_0F
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.
VCS Label A3_0F: @379 and 398 must be initialized with
Non_Null_Init.
C3A0025 [New] VCS Label: A3_0G
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.
VCS Label A3_0G: Corrected a spelling error in the test objective.
C3A0026 [New] VCS Label: A3_0G
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.
VCS Label A3_0G: Corrected a spelling error in the test objective.
C3A0027 [New] VCS Label: A3_0G
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.
VCS Label A3_0G: Corrected a spelling error in the test objective.
C3A0028 [New] VCS Label: A3_0E
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 [New] VCS Label:A3_0E
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 [New] VCS Label:A3_0D
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 [New] VCS Label:A3_0D
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 [New] VCS Label:A3_0E
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 [New] VCS Label:A3_0D
Check that a tagged incomplete type cannot be completed with an
untagged type.
B3A1005 [New] VCS Label:A3_0F
Check that a primitive operation of an incomplete type declared
in a private part cannot be given unless the completion of the
private type is also in the same private part.
F3A1A00 [New] VCS Label: A3_0D
Foundation providing types to be accessed as a limited view
in order to test the usage of incomplete views.
B3A1A01 [New] VCS Label:A3_0F
VCS Label A3_0D: 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.
VCS Label A3_0F: @140 should be named Acc11; @142 Acc12; @144
Acc13; and @146 Acc14. @162-173 should be removed as they
violate 3.10.1(9.3/2).
B3A1A02 [New] VCS Label:A3_0G
VCS Label A3_0D: Check that an incomplete view cannot be used in
the subtype indication of an object declaration, component
declaration, or allocator.
VCS Label A3_0G: Corrected test objective.
B3A1A03 [New] VCS Label:A3_0G
VCS Label A2_0D: Check that an incomplete view cannot be used in
a use type clause.
VCS Label A3_0G: Corrected test objective.
B3A1A04 [New] VCS Label:A3_0F
Check that a tagged incomplete view cannot be used as the prefix
of the Class attribute used in a context that does not allow a
tagged incomplete view.
C413006 [New] VCS Label:A3_0B
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.
B431003 [Allowed Modification] New VCS Label:A3_0K Org VCS Label: A3_0
Required after 2009-10-01
Test cases were added to check that an aggregate that gives all
of the visible components (but not the hidden ones) is not
accepted.
C433001 [Modified] VCS Label:A3_0J
Messages @85, 107 should refer to Second_Component and messages
@88, 110 should refer to Last_Component.
B58001A [Withdrawn] Org VCS Label: A3_0C
This test has been replaced by new test B650004.
C650002 [New] VCS Label: A3_0C
Check that a return statement that applies to an entry body
or accept statement completes the body or statement.
C650003 [New] VCS Label: A3_0C
C650003 [Modified] VCS Label: A3_0G
VCS Label A3_0C: Try various ways to complete an extended return
statement.
VCS Label A3_0G: Corrected test objective.
B650004 [New] VCS Label: A3_0C
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 [New] VCS Label: A3_0E
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 [New] VCS Label: A3_0E
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 [Modified] VCS Label:A3_0D
The error @f1-106 can also be reported @f1-104.
B831001 [Modified] VCS Label:A3_0F
VCS Label A3_0D: The generic @f0-82 is illegal because of
AI05-0073-1. "abstract" was removed from @f0-81, @f1-755, and
@f1-846.
VCS Label A3_0F: The rename @f1-408-9 depends on a previously
incorrect declaration @f1-382.
B831002 [Modified] VCS Label:A3_0D
The declaration @309 has the wrong name (should be G) and profile
(Gfu should have a Boolean parameter).
C851001 [New] VCS Label: A3_0E
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 [New] VCS Label: A3_0E
Check that the resolution and legality rules are enforced for
renaming of anonymous access-to-object types.
C851002 [New] VCS Label: A3_0E
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 [New] VCS Label: A3_0E
Check that the resolution and legality rules are enforced for
renaming of anonymous access-to-subprogram types.
B851004 [New] VCS Label: A3_0E
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_0J
VCS Label A3_0C: @f2-190 should be Dept2 rather than Dept1.
"Return False;" should be added @f2-116.
VCS Label A3_0J: The main subprogram should be named CA110232
based on the conventions given in the ACATS User's Guide.
CA12001 [Modified] VCS Label:A3_0J
The main subprogram should be named CA120012
based on the conventions given in the ACATS User's Guide.
BA12010 [Modified] VCS Label:A3_0D
The limited with @f4-67 is illegal by 10.1.2(21/2), which is not
the intent expressed by the error comment.
CC30003 [New] VCS Label: A3_0F
Check that a type derived from a generic formal tagged type
inherits primitives properly in an instance.
===== Annex C =====
BXC3002 [Modified] VCS Label:A3_0C
Declaration @103 is not illegal as Amendment repealed the relevant
rule.
CXB3006 [Modified] VCS Label:A3_0J
Calls @258, 264 are ambigiuous because of new routines added by
Ada 2005; the calls should be qualified with the wchar_array type.
===== 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_0K.Zip and Tar files on the ACAA web site. (Note that there is no separate set of files for list 3.0L, as they are unchanged.)
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)
B431003 2009-10-01
Modified Tests
(Refer to the main list for details)
B394A02 B394A03 B394A04 B394A05 B740003 B831001 B831002 BA12010 BXC3002 BXE2009 C34008A C433001 C650003 C990001 CA11023 CA12001 CXB3006
New Tests
(Refer to the main list for details)
B371001 B3A0005 B3A0006 B3A0007 B3A0008 B3A1001 B3A1002 B3A1003 B3A1004 B3A1005 B3A1A01 B3A1A02 B3A1A03 B3A1A04 B650004 B851002 B851003 B851004 C393013 C3A0016 C3A0017 C3A0018 C3A0019 C3A0020 C3A0021 C3A0022 C3A0023 C3A0024 C3A0025 C3A0026 C3A0027 C3A0028 C3A0029 C413006 C650002 C650003 C650A01 C851001 C851002 CC30003 F3A1A00 F650A00
Pending New Tests
(Refer to the main list for details)
None.