ACATS Test Modification List
Version 3.0D
May 30, 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:
B831001 has a generic function that is illegal by AI05-0073-1. B831002 has an instantiation that claims to override a non-existent declaration.
B371001 adds test cases for the rules improved by AI05-0041-1.
B394A02 corrects a test case so that it depends only on legal types.
B740003 revised its error indications to allow more flexibility to implementations.
BA12010 was corrected so that one subtest is testing the intended objective.
A number of new tests were added:
C393013 tests that functions with controlling results are automatically inherited for null extensions, and that the result of the function has the correct tag.
C3A0018 tests anonymous access-to-protected subprograms.
C3A0019, C3A0020, C3A0021, C3A0022, C3A0023, C3A0024, C3A0025, C3A0026, C3A0027, C3A0028, and C3A0029 test that null exclusions actually exclude null at runtime.
B3A0005 tests that modifications through a dereference of an anonymous access-to-constant type are prohibited. B3A0006 tests that an anonymous access-to-variable cannot be given a value that designates a constant. B3A0007 and B3A0008 test null exclusions cannot be given for non-access types or for types that already exclude null.
B3A1001 tests that incomplete types must be completed in the same declaration list unless they are declared in the the private part of a package. It replaces the old ACATS tests B38101A and B38101B with additional test cases. Similarly, B3A1002 replaces old ACATS test B38101C. B3A1003 checks that an incomplete type cannot be completed with another incomplete type, a private type, a private extension, or a subtype. B3A1004 checks that a tagged incomplete cannot be completed with an untagged type.
B3A1A01 checks that most incomplete views cannot be used as parameter or result subtypes. B3A1A02 checks that incomplete views cannot be used in object declarations, component declarations, or allocators. B3A1A03 checks that incomplete views cannot be used in a use type clause.
New tests that originated in the ACATS 3.0 release are required for conformity assessments using ACATS 3.0. 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 [Allowed Modification] New VCS Label:A3_0B Org VCS Label: A3_0
Required after 2008-07-01
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_0D
Required after 2009-01-01
Check that anonymous access-to-protected subprograms can be used
in many contexts, and that the associated subprogram can be
called.
C3A0019 [Pending New] New VCS Label:A3_0D
Required after 2009-01-01
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.
C3A0020 [Pending New] New VCS Label:A3_0D
Required after 2009-01-01
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.
C3A0021 [Pending New] New VCS Label:A3_0D
Required after 2009-01-01
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.
C3A0022 [Pending New] New VCS Label:A3_0D
Required after 2009-01-01
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.
C3A0023 [Pending New] New VCS Label:A3_0D
Required after 2009-01-01
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.
C3A0024 [Pending New] New VCS Label:A3_0D
Required after 2009-01-01
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.
C3A0025 [Pending New] New VCS Label:A3_0D
Required after 2009-01-01
Check that Constraint_Error is raised when a null access value is
converted to a null excluding anonymous access-to-object type.
C3A0026 [Pending New] New VCS Label:A3_0D
Required after 2009-01-01
Check that Constraint_Error is raised when a null access value is
converted to a null excluding anonymous access-to-subprogram type.
C3A0027 [Pending New] New VCS Label:A3_0D
Required after 2009-01-01
Check that Constraint_Error is raised when a null access value is
converted to a null excluding anonymous access-to-protected-
subprogram type.
C3A0028 [Pending New] New VCS Label:A3_0D
Required after 2009-01-01
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.
C3A0029 [Pending New] New VCS Label:A3_0D
Required after 2009-01-01
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.
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 – generic package cases.
B3A1003 [Pending New] New VCS Label:A3_0D
Required after 2009-01-01
Check that an incomplete type cannot be completed by another
incomplete type, a private type, a private extension, or
a subtype.
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_0C
Required after 2008-10-01
Foundation providing a limited tagged type hierarchy for extended
return tests.
C650A01 [Pending New] New VCS Label: A3_0C
Required after 2008-10-01
Check that Constraint_Error is raised if the result of an
anonymous access-to-specific-tagged does not have the correct tag.
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).
C990001 [Allowed Modification] New VCS Label:A3_0B Org VCS Label: A3_0
Required after 2008-07-01
Added function returning a task as an attribute prefix case from
C34008A.
CA11023 [Allowed Modification] New VCS Label:A3_0C Org VCS Label: A3_0
Required after 2008-07-01
@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 [Allowed Modification] New VCS Label:A3_0C Org VCS Label: A3_0
Required after 2008-07-01
Declaration @103 is not illegal as Amendment repealed the relevant
rule.
===== Annex D =====
[None.]
===== Annex E =====
BXE2009 [Allowed Modification] New VCS Label:A3_0C Org VCS Label: A3_0
Required after 2008-07-01
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_0D.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 BXC3002 2008-07-01 BXE2009 2008-07-01 C34008A 2008-07-01 C990001 2008-07-01 CA11023 2008-07-01
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)
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-01-01 B3A1004 2009-01-01 B3A1A01 2009-01-01 B3A1A02 2009-01-01 B3A1A03 2009-01-01 B650004 2008-10-01 C393013 2009-01-01 C3A0016 2008-10-01 C3A0017 2008-10-01 C3A0018 2009-01-01 C3A0019 2009-01-01 C3A0020 2009-01-01 C3A0021 2009-01-01 C3A0022 2009-01-01 C3A0023 2009-01-01 C3A0024 2009-01-01 C3A0025 2009-01-01 C3A0026 2009-01-01 C3A0027 2009-01-01 C3A0028 2009-01-01 C3A0029 2009-01-01 C413006 2008-10-01 C650002 2008-10-01 C650003 2008-10-01 C650A01 2008-10-01 F3A1A00 2009-01-01 F650A00 2008-10-01