ACATS Modification List for ACATS 4.0 Version 4.0D January 19, 2015 What is this? This is the ACATS modification list for ACATS 4.0. This document includes test corrections, test removals, and new tests for ACATS 4.0. ACATS 4.0 is the current test suite for Ada, covering the third edition of Ada, ISO/IEC 8652:2012 (usually known as "Ada 2012"). ACATS Modification List version 3.1E for ACATS 3.1 is the current list for that test suite. ACATS 3.1 should be used for testing implementations that support Amendment 1 (ISO/IEC 8652:1995/AMD 1:2007, often known as "Ada 2005"), and will continue to be maintained as necessary for the foreseeable future. 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 implementations of the second edition of Ada, ISO/IEC 8652:1995 (usually known as "Ada 95"); it also will continue to be maintained as necessary for the foreseeable future. Changes from the last list: Test CXAC008 (issued with ACATS Modification List 4.0C) required the wrong file size in subtest 8 (and also had some messages with the wrong subtest numbers). This test was corrected; this resets its required date to October. New test C391003 checks that a type may be extended in a more nested scope than the parent type. New test B393011 checks the examples from AI05-0068-1. New tests C3A1003 and C3A1004 check that objects of tagged incomplete types can be passed as parameters. New tests B3A1008, B3A1009, and B3A1010 check that objects with incomplete views cannot be used as prefixes. New tests B457002, B457003, B457004, and B457005 check legality rules for conditional expressions. New tests B480002 and B480003 check 4.8(5.2/3), that a class-wide allocator doesn't create an object of a type more local than the access type. New tests and foundations B732001, B732C01, B732C02, C732001, C732A01, C732C01, F732A00, and F732C00 test various objectives for type invariants. New test C760015 checks that a controlled type can be declared inside a subprogram. New tests CC51010 and CC51011 test using formal incomplete types with actual incomplete types and views. New tests CXAH001, CXAH002, and CXAH003 test the implementation of the package Ada.Environment_Variables. The support package IMPDEF was updated to support those tests. New tests posted between January 1, 2015 and March 31, 2015 will become required for conformity assessments on October 1, 2015. New tests posted between October 1, 2014 and December 31, 2014 will become required for conformity assessments on July 1, 2015. New tests posted between July 1, 2014 and September 30, 2014 will become required for conformity assessments on April 1, 2015. All tests posted to modification lists for other versions of the ACATS are included in ACATS 4.0 if appropriate and thus are required for conformity assessment using ACATS 4.0 The effective dates of tests are marked in the lists. Questions about this document? Contact the ACAA Technical Agent at agent@ada-auth.org. 2015 Corrigendum: With ACATS Modification List 4.0B, we have started including tests for corrections (including new features) in the upcoming 2015 Corrigendum. Most of these corrections have already been approved by WG 9, and those that haven't been are expected to be approved at their next meeting. All of these changes are technically corrections to Ada 2012; as such we will assume all such corrections are implemented for Ada 2012 compilers. Implementers can request grading modifications for any tests containing 2015 Corrigendum changes until the Corrigendum is approved as a whole by WG 9 (expected at their late June 2015 meeting). Note that most such tests will not be required until after that meeting anyway, as new tests have a six month review period before being required. 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 '@'; 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: .[.]: These references are to the Ada standard as available at http://www.adaic.org/resources/add-contentstandards/12rm/html/RM-TOC.html. Main list: ===== Core Language ===== Name Category Version label (effective date; old version label) Short description. B393011 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 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. C391003 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 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. C3A1003 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Check that a dereference of an access-to-tagged-incomplete type can be passed as a parameter. C3A1004 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Check that a parameter of a tagged incomplete type can be passed as a parameter. B3A1008 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Check that a dereference of an access-to-incomplete type cannot be used as a prefix. B3A1009 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 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. B3A1010 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Check that a dereference of an access-to-formal incomplete type cannot be used as a prefix. Check that a parameter of a tagged formal incomplete type cannot be used as a prefix. C3A2004 [Pending New] New VCS Label: A4_0C 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: A4_0C 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. C431002 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Check that a component association of others => <> in a record or extension aggregate may have any number of associated components, including none. (Case 2: Null records and extensions.) B431005 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Check that a component association with an expression in a record or extension aggregate that have more than one associated component is illegal if the expression is illegal for any one of the associated components. B431006 [Pending New] New VCS Label: A4_0C 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. C433002 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Check that no array components can be outside of the index subtype for an array aggregate, even when the components are specified by <>. C433003 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Check that for each association with a box in an array aggregate, the component is initialized by default (scalar types with Default_Values). C433004 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Check that for each association with a box in an array aggregate, the component is initialized by default (array types with Default_Component_Values). C433005 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Check that the constraint of the constrained array subtype of a function return is used to determine the bounds of an array aggregate with an others choice in the expression of a return statement. B457002 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Check that 'others' must be last and alone in a case expression. B457003 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Check that 'else' cannot be omitted for an if expression if the type of the expression is not a boolean type. B457004 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Check that case choice coverage and staticness are enforced for case expressions. B457005 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Check that all or none of the dependent expressions of a conditional expression can be dynamically tagged if the type of the expression is a specific tagged type. B480002 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 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. B480003 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 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. C550001 [Pending New] New VCS Label: A4_0C Required after 2015-07-01 Check that for loops iterate properly over subtypes with static predicates. B640001 [Pending New] New VCS Label: A4_0C Required after 2015-07-01 Check that abstract nondispatching operations do not participate in resolution. C640002 [Pending New] New VCS Label: A4_0C Required after 2015-07-01 Check that an abstract nondispatching operator provides a way to eliminate an unwanted predefined operator. B650005 [Pending New] New VCS Label: A4_0C Required after 2015-07-01 Check that the accessibility level of the return subtype indication of an extended return statement cannot be statically deeper that that of the function result if that result is class-wide. B650006 [Pending New] New VCS Label: A4_0C Required after 2015-07-01 Check that an extended return statement with a constant return object cannot omit the initializing expression. B732001 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Check various resolution and legality rules for aspect Type_Invariant. C732001 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Check that assertion checks are made after assignments to and calls with actuals of appropriate view conversions. C732A01 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Check that the failure of a Type_Invariant check raises Assertion_Error (constrained array). B732C01 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Check that the aspect Type_Invariant can only be specified on private types, private extensions, and full types that complete one of the others. C732C01 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Check that the failure of a Type_Invariant check raises Assertion_Error (tagged record). B732C02 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Check that the aspect Type_Invariant'Class can only be specified on private types, private extensions, and interfaces. C760014 [Pending New] New VCS Label: A4_0A Required after 2015-04-01 Check that Ada.Finalization is declared pure. C760015 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Check that a controlled type can be declared within a subprogram. BA12017 [Pending New] New VCS Label: A4_0C 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: A4_0C Required after 2015-07-01 Check that a library unit pragma must apply to a library unit. CB30001 [Pending New] New VCS Label: A4_0B 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. CB30002 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Check that the optional message parameter is supported in a raise expression, and that the message can be retrieved with Exception_Message. CC51010 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Check that a generic unit with a tagged incomplete formal type can be instantiated with an incomplete view of a type from a limited withed package, and that operations in the instance can be used normally when the full view of the type is visible. CC51011 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Check that a generic unit with a tagged incomplete formal type can be instantiated with an incomplete type whose completion is given in a body, and that such instantiations can be passed as actuals to formal packages. BC60001 [Pending New] New VCS Label: A4_0C Required after 2015-07-01 Test rules associated with formal subprogram defaults of null. BDB3A01 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Test resolution and legality rules for pragma and aspect Default_Storage_Pool. CDB3A01 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Test that aspect Default_Storage_Pool changes the default storage pool for a generic instantiation. BDD2004 [Allowed Modification] New VCS Label: A4_0B Org VCS Label: A4_0 Required after 2015-04-01 Error @229 is legal by AI12-0121-1. BDD2005 [Allowed Modification] New VCS Label: A4_0B Org VCS Label: A4_0 Required after 2015-04-01 Replaced test cases waiting on AI12-0106-1 (now approved) and made changes required by AI12-0121-1. CXA5016 [Pending New] New VCS Label: A4_0C Required after 2015-07-01 Check operation of attribute Machine_Rounding. CXAA021 [Pending New] New VCS Label: A4_0C Required after 2015-07-01 Check file operations of Text_IO.Bounded_IO. CXAA022 [Pending New] New VCS Label: A4_0C Required after 2015-07-01 Check file operations of Text_IO.Unbounded_IO. CXAB002 [Pending New] New VCS Label: A4_0C Required after 2015-07-01 Check file operations of Wide_Text_IO.Wide_Bounded_IO. CXAB003 [Pending New] New VCS Label: A4_0C Required after 2015-07-01 Check file operations of Wide_Wide_Text_IO.Wide_Wide_Bounded_IO. CXAB004 [Pending New] New VCS Label: A4_0C Required after 2015-07-01 Check file operations of Wide_Text_IO.Wide_Unbounded_IO. CXAB005 [Pending New] New VCS Label: A4_0C Required after 2015-07-01 Check file operations of Wide_Wide_Text_IO.Wide_Wide_Unbounded_IO. CXAC008 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 [VCS Label A4_0C] Check that Stream_IO files opened with mode Out_File are not truncated by Close or Reset. [VCS Label A4_0D] Corrected required file size in subtest 8, and various failure messages. CXAH001 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Test that package Environment_Variables can be used to read environment variables. CXAH002 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Test that package Environment_Variables can be used to modify environment variables. CXAH003 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Test the two parameter Value in package Environment_Variables. BXAI001 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Test that package Hashed_Maps does not allow reverse iterators. BXAI002 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Test that package Hashed_Sets does not allow reverse iterators. BXAI003 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Test that package Bounded_Hashed_Maps does not allow reverse iterators. BXAI004 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Test that package Bounded_Hashed_Sets does not allow reverse iterators. BXAI005 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Test that package Hashed_Sets does not allow direct writing of set elements. BXAI006 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Test that package Ordered_Sets does not allow direct writing of set elements. BXAI007 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Test that package Bounded_Hashed_Sets does not allow direct writing of set elements. BXAI008 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Test that package Bounded_Ordered_Sets does not allow direct writing of set elements. BXAIA01 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Test that package Indefinite_Hashed_Maps does not allow reverse iterators. BXAIA02 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Test that package Indefinite_Hashed_Set does not allow reverse iterators. BXAIA03 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Test that package Indefinite_Hashed_Sets does not allow direct writing of set elements. BXAIA04 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Test that package Indefinite_Ordered_Sets does not allow direct writing of set elements. CXAI027 [Allowed Modification] New VCS Label: A4_0B Org VCS Label: A4_0 Required after 2015-04-01 Corrected the name of the package that is reported as being tested. ===== Annex C ===== [None.] ===== Annex D ===== [None.] ===== Annex E ===== [None.] ===== Annex F ===== [None.] ===== Annex G ===== [None.] ===== Annex H ===== [None.] ===== Support ===== F732A00 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Foundation for test C732A01. F732C00 [Pending New] New VCS Label: A4_0D Required after 2015-10-01 Foundation for tests B732C01, B732C02, and C732C01. FDB3A00 [Pending New] New VCS Label: A4_0B Required after 2015-07-01 Foundation for test BDB3A01 and CDB3A01. IMPDEF [Allowed Modification] New VCS Label: A4_0D Org VCS Label: A4_0 Required after 2015-07-01 VCS Label A3_1E: Added constants for the names of environment variables used by tests CXAH001, CXAH002, and CXAH003. Also .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. 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_4_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 4.0 is available in various formats on the ACAA web site. Summary lists: Withdrawn Tests (Refer to the main list for details) B43102A Allowed Modification Tests (Refer to the main list for details) BDD2004 2015-04-01 BDD2005 2015-04-01 CXAI027 2015-04-01 IMPDEF 2015-07-01 [Only needed for new tests CXAH001, CXAH002, and CXAH003] 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) B393011 2015-10-01 B3A1008 2015-10-01 B3A1009 2015-10-01 B3A1010 2015-10-01 B3A2017 2015-07-01 B431005 2015-07-01 B431006 2015-07-01 B457002 2015-10-01 B457003 2015-10-01 B457004 2015-10-01 B457005 2015-10-01 B480002 2015-10-01 B480003 2015-10-01 B640001 2015-07-01 B650005 2015-07-01 B650006 2015-07-01 B732001 2015-10-01 B732C01 2015-10-01 B732C02 2015-10-01 BA12017 2015-07-01 BA15003 2015-07-01 BC60001 2015-07-01 BDB3A01 2015-07-01 BXAI001 2015-07-01 BXAI002 2015-07-01 BXAI003 2015-07-01 BXAI004 2015-07-01 BXAI005 2015-07-01 BXAI006 2015-07-01 BXAI007 2015-07-01 BXAI008 2015-07-01 BXAIA01 2015-07-01 BXAIA02 2015-07-01 BXAIA03 2015-07-01 BXAIA04 2015-07-01 C3A1003 2015-10-01 C3A1004 2015-10-01 C3A2004 2015-07-01 C431002 2015-07-01 C433002 2015-07-01 C433003 2015-07-01 C433004 2015-07-01 C433005 2015-07-01 C550001 2015-07-01 C640002 2015-07-01 C732A01 2015-10-01 C732C01 2015-10-01 C760014 2015-04-01 C760015 2015-10-01 CB30001 2015-07-01 CB30002 2015-07-01 CC51010 2015-10-01 CC51011 2015-10-01 CDB3A01 2015-07-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-10-01 CXAH001 2015-10-01 CXAH002 2015-10-01 CXAH003 2015-10-01 F732A00 2015-10-01 F732C00 2015-10-01 FDB3A00 2015-07-01