ACATS Test Modification List Version 2.2E September 24, 1999 Changes from the last list: The ARG has begun providing tests to check that processors conform to the rulings it has made (AIs). Some of those tests have been added to the suite. Test B392010 is a new test. It checks that 3.9.2(12) is checked, even when it is not known at the point of the declaration that the types are tagged. Test B730006 is a new test. It checks that the visible components of a type extension are only those inherited from the parent type, even if additional components of an ancestor type are visible. The rule checked here was confirmed by AI-00157. Test B830002 is a new test. It checks illegal duplication of components when inheriting from private extensions. This test was constructed to meet the requirements of Technical Corrigendum 1 (AI-00150). The applicability criteria for tests B83004B, B83004D, B83024F, BA1010D, CA1012A, CA2009C, CA2009F, and CA3011A have been revised. These tests are applicable to all Ada 95 implementations. BA150029 was repaired to remove an instantiation of a unit with errors (which has nothing to do with the test). This change does not change the effective date of the test. BA21004 is a new test designed to check that implementations don't allow too much when implementing the revised 10.2.1(11) from Technical Corrigendum 1 [AI-00002]. C390010 was repaired to insure that the subtype check is performed at the appropriate place. The test used a variable with a subtype which caused a premature check. Test C730003 is classified as a new test. It is a repaired version of a test withdrawn from ACVC 2.0.1. It is a companion test to B830002, checking that component names can be duplicated when the components of the ancestor type aren't visible. It also checks that such names still can be accessed with a view conversion to the ancestor type. Test C731001 is a new test. It was inspired by the examples in AARM 7.3.1(7.a-7.v), confirmed by AI- 00035. Test C761010 is a new test to check the new requirements of Technical Corrigendum 1 (AI-00083). This test checks that the initialization of an object with an aggregate does not involve calls to Adjust. A test case was added to C840001 to check that a use type clause makes operators visible even when they are not visible by selection. Test C854002 is a new test constructed to the requirements of Technical Corrigendum 1 (AI-00064). This requires an elaboration check on a renames-as-body if the renames itself has not yet been elaborated. CA21001 is a new test designed to check that implementations allow non-pre-elaborated subunits of a preelaborated subprogram, as required by revised 10.2.1(11) from Technical Corrigendum 1 [AI-00002]. Test CB10002 is a new test. This test repairs problems with the existing heap overflow test (CB1010B.ADA) - the test exhausts memory, but frees nothing (so Report.Result might fail for lack of memory), and might run (almost) forever on a virtual memory host. CB1010B.ADA will be withdrawn when this test becomes effective. Test CXA5012 was updated to repair Objective 3 to meet the requirements of Technical Corrigendum 1 (AI-00089). In particular, this is a bounded error, so Program_Error is allowed. It is also possible (but unlikely) that any string is supported as a state, so the test and Impdef were revised to allow for that possibility. Tests CXB3004 and CXB3006 were repaired to use a C function rather than Unchecked_Conversion for checking results. There is no requirement that the representation of char and Character, and wchar_t and Wide_Character are the same. This tests are classified as "Pending New", as addition test cases were added. Warning: The tests now have two files each (a C function and the Ada test). In addition, Impdef.A was modified for these tests. Test CXB3005 and CXB3007 were modified to remove Unchecked_Conversion checks, replacing them with uses of To_C and To_Ada. (These functions are tested carefully in tests CXB3004 and CXB3006). Again, there is no requirement that the representation of char and Character, and wchar_t and Wide_Character are the same. A test case was added to CXB3009 to check the case of To_Chars_Ptr when Nul_Check => False. This case was omitted from the original test as the standard didn't say what should happen; this has been repaired by AI-00140 and Technical Corrigendum 1. Test CXB3012 was repaired to replace Unchecked_Conversion with To_C. Again, there is no requirement that the representation of char and Character are the same. In addition, a test case was added to check that Update (Item => Null_Ptr,.) raises Dereference_Error. (by AI-00039). Test CXC7004 is new. This test checks that Ada.Task_Identification.Is_Callable works properly on the environment task (as confirmed by AI-00206). Test CXE2002 is new. This test checks that the revised E.2(4) in Technical Corrigendum 1 is supported. In particular, it checks that subprograms and generic subprograms can be RCI units. CXG2005 was repaired to avoid printing an infinite amount of output when it fails. CXG2018 was repaired to widen the error bound for the Identity test. CXH3001 and CXH3003 were repaired to fix the previous repair not to assume that just because a value tests True, that it has the value True. LA14023 has been withdrawn; it is not an L-test. That is, all compilers must successfully compile and run this test. It has been replaced by CA14023, which is classified as a New test. Test modified before April 1, 1999 are now required. New tests inserted between July 1, 1999 and October 1, 1999 will become required for conformity assessments on April 1, 2000. New tests inserted between April 1, 1999 and July 1, 1999 will become required for conformity assessments on January 1, 2000. New tests added to the ACATS before April 1, 1999 will become required for conformity assessments on October 1, 1999. The effective dates of tests are marked in the lists. 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 83 & Ada 95 standards are given in the format: .[.]: These references are to the Ada 95 standard unless "Ada83" is specified. Main list: ===== Core Language ===== Name Category Version label (effective date; old version label) Short description. C330001 [Modified] VCS Label: A2_2A Calls to potentially unelaborated Indef_Func_1 and Indef_Func_2 may raise Program_Error. C332001 [Modified] VCS Label: A2_2A Decimal types have been removed from the tests. C390010 [Allowed Modification] New VCS Label: A2_2E Required after 2000-01-01 Org VCS Label: A2_2 Type Subtype_Parent_Class_Access causes premature check failure. B392010 [Pending New] New VCS Label: A2_2E Required after 2000-04-01 This test checks that an operation cannot be dispatching for two tagged types even when it is not known at the point of declaration that the types are tagged. C455001 [Pending New] New VCS Label: A2_2B Required after 2000-01-01 This test checks that universal fixed multiplying operators can be given without a type conversion (as required in Ada 83), and that constants can be used with such operators. B455002 [Pending New] New VCS Label: A2_2B Required after 2000-01-01 This test checks the rule requiring the result of a universal fixed multiplying operator is not universal fixed. C460008 [Modified] VCS Label: A2_2A Decimal type operations have been split out into a separate test. C460011 [Pending New] New VCS Label: A2_1E Required after 1999-10-01 Checks at @193 and @199 test the wrong object. (VCS Label A2_1E) This test contains the decimal type operations formerly found in test C460008, and some additional rounding tests for decimal type conversions. (VCS Label A2_1C) C650001 [Modified] New VCS Label: A2_2A Call at @352 may cause conversion @337 to raise Constraint_Error as the tag check will fail. C730003 [Pending New] New VCS Label: A2_2E Required after 2000-04-01 Check that components can be declared with the same name as an invisible component of the ancestor type. Check that the original component can be updated through a view conversion. B730006 [Pending New] New VCS Label: A2_2E Required after 2000-04-01 Check that the visible components of a type extension are only those inherited from the parent type, even if additional components of an ancestor type are visible. C731001 [Pending New] New VCS Label: A2_2E Required after 2000-04-01 Check that inherited operations can be overridden, even when they are inherited in a body. C761010 [Pending New] New VCS Label: A2_2E Required after 2000-04-01 Check that the initialization of an object with an aggregate does not involve calls to Adjust. B830001 [Modified] VCS Label: A2_2A Multiple source units in a single source file are dubious. B830002 [Pending New] New VCS Label: A2_2E Required after 2000-04-01 For a type extension declared in a child package, where the parent type is declared in an ancestor package, it is illegal for the two types to have duplicate component names. B83004B [Allowed Modification] New VCS Label: A2_2E Required after 2000-01-01 Org VCS Label: A2_2 This test is applicable to all Ada 95 implementations. B83004D [Allowed Modification] New VCS Label: A2_2E Required after 2000-01-01 Org VCS Label: A2_2 This test is applicable to all Ada 95 implementations. B83024F [Allowed Modification] New VCS Label: A2_2E Required after 2000-01-01 Org VCS Label: A2_2 This test is applicable to all Ada 95 implementations. C840001 [Pending New] New VCS Label: A2_2E Required after 2000-04-01 Added a test case to check that operators are made visible even when they are not visible by selection. [Note: This is an enhancement of an existing test; the existing test remains required for conformity assessment until this new test becomes effective.] C854002 [Pending New] New VCS Label: A2_2E Required after 2000-04-01 Check that Program_Error is raised by the elaboration check on a renames-as-body if the renames itself has not yet been elaborated. C910003 [Pending New] New VCS Label: A2_2A Required after 1999-10-01 Check that task discriminants of an access subtype can be selected, indexed, and dereferenced. BA1010D [Allowed Modification] New VCS Label: A2_2E Required after 2000-01-01 Org VCS Label: A2_2 This test is applicable to all Ada 95 implementations. CA1012A [Allowed Modification] New VCS Label: A2_2E Required after 2000-01-01 Org VCS Label: A2_2 This test is applicable to all Ada 95 implementations. CA14023 [Pending New] New VCS Label: A2_2E Required after 2000-04-01 Check that a generic body can be changed after the compilation of an instantiation. (From AI-00077.) (Was LA14023). CA14028 [Pending New] New VCS Label: A2_2C Required after 2000-04-01 Check that a subprogram body replaces (not completes) a generic instantiation. BA15002 [Pending New] New VCS Label: A2_2C Required after 2000-04-01 Check that program unit pragmas cannot be given in a generic formal part or private part. Check that program unit pragmas which apply to a compilation unit must be given first in that unit or immediately following. CA15003 [Pending New] New VCS Label: A2_2C Required after 2000-04-01 Check that program unit pragmas can be given in a generic package. LA14023 [Withdrawn] Ada 95 requires that generic bodies may be compiled (changed) after an instantiation. Therefore, this test may not fail to link. This test is replaced by CA14023. LA20001 [Pending New] New VCS Label: A2_1F Required after approximately 1999-10-01 Check that 10.2(19) is enforced. This test was created out of the removed test case from B830001. CA20002 [Pending New] New VCS Label: A2_1F Required after 1999-10-01 Check that a partition can be created even if multiple units with the same expanded name have been compiled. CA2009C [Allowed Modification] New VCS Label: A2_2E Required after 2000-01-01 Org VCS Label: A2_2 This test is applicable to all Ada 95 implementations. CA2009F [Allowed Modification] New VCS Label: A2_2E Required after 2000-01-01 Org VCS Label: A2_2 This test is applicable to all Ada 95 implementations. CA21001 [Pending New] New VCS Label: A2_2E Required after 2000-04-01 Test that a package subunit whose parent is a preelaborated subprogram need not be preelaborable. BA21004 [Pending New] New VCS Label: A2_2E Required after 2000-04-01 Check all semantic dependents of a preelaborated library unit also be preelaborated (whether or not they are used during elaboration). CA3011A [Allowed Modification] New VCS Label: A2_2E Required after 2000-01-01 Org VCS Label: A2_2 This test is applicable to all Ada 95 implementations. CA5004B [Modified] VCS Label: A2_2A If an implementation obsoletes entire source files, unit Header may be made obsolete by the recompilation of unit CA5004B0. [Note: The fix is to split the first test file (CA5004B0). This changes the numbers of the remaining test files; scripts will need to be updated!] CB10002 [Pending New] New VCS Label: A2_2E Required after 2000-04-01 Check that Storage_Error is raised when storage for allocated objects is exceeded. This test will replace CB1010B.ADA when it becomes effective. CD10001 [Modified] VCS Label: A2_2A Made small value for Tenths a power of two. CD2A53A [Modified] VCS Label: A2_2A Added applicability criteria, to allow rejection for non-support of decimal small values. (This is allowed by 3.5.9(21)). CD30002 [Modified] VCS Label: A2_2A @130 Alignment declared as Max_Word*2, but tests @178 for Multiple_Alignment. Multiple_Alignment may exceed maximum supported by implementation. Test divides by zero if Word_Size = Storage_Size (@171, 184) CD30003 [Modified] VCS Label: A2_2A The test will fail unless that Storage_Unit = 8. CD30004 [Allowed Modification] New VCS Label: A2_2C Required after 2000-01-01 Org VCS Label: A2_2 Subtests check 13.3(53) (which is implementation advice) and 13.3(56) (which is untestable). These have been deleted. The test requires all implementations to support the recommended level of support, even if this is not required. [Pending New] New VCS Label: A2_2C Required after 2000-04-01 A subtest was added to check that Size clauses confirming the recommended level of support are supported. CD92001 [Modified] VCS Label: A2_2A Test assumes arrays have same Component_Size without justification. CDE0001 [Modified] VCS Label: A2_2A Instantiation of potentially unelaborated CDE0001_2 may raise Program_Error. CE3115A [Modified] VCS Label: A2_2A Output to external file may be buffered. CXA5012 [Allowed Modification] New VCS Label: A2_2E Required after 2000-01-01 Org VCS Label: A2_2 Technical Corrigendum 1 makes calling Value with an illegal state a bounded error. CXAA016 [Modified] VCS Label: A2_2A For implementations which do not support creating Text_IO files, file deletions may fail (@93). CXB3004 [Pending New] New VCS Label: A2_2E Required after 2000-04-01 Revised test to use a C function rather than Unchecked_Conversion for checking. (There is no requirement of matching representations for char and Character.) [Note: This is an enhancement of an existing test; the existing test remains required for conformity assessment until this new test becomes effective.] CXB3005 [Allowed Modification] New VCS Label: A2_2E Required after 2000-01-01 Org VCS Label: A2_2 Unchecked_Conversion use is unnecessary for test objective, but it restricts applicability. CXB3006 [Pending New] New VCS Label: A2_2E Required after 2000-04-01 Revised test to use a C function rather than Unchecked_Conversion for checking. (There is no requirement of matching representations for wchar_t and Wide_Character.) [Note: This is an enhancement of an existing test; the existing test remains required for conformity assessment until this new test becomes effective.] CXB3007 [Allowed Modification] New VCS Label: A2_2E Required after 2000-01-01 Org VCS Label: A2_2 Unchecked_Conversion use is unnecessary for test objective, but it restricts applicability. CXB3009 [Pending New] New VCS Label: A2_2C Required after 2000-04-01 Added a test case to check that To_Chars_Ptr with Nul_Check => False works. [Note: This is an enhancement of an existing test; the existing test remains required for conformity assessment until this new test becomes effective.] CXB3010 [Pending New] New VCS Label: A2_2C Required after 2000-04-01 Added a test case to check that Value raises Constraint_Error if Length = 0. [Note: This is an enhancement of an existing test; the existing test remains required for conformity assessment until this new test becomes effective.] CXB3012 [Pending New] New VCS Label: A2_2E Required after 2000-04-01 Added a test case to check that Update (Null_Ptr.) raises Dereference_Error. Replaced Unchecked_Conversion by To_C. [Note: This is an enhancement of an existing test; the existing test remains required for conformity assessment until this new test becomes effective.] CXB3013 [Modified] VCS Label: A2_2A The Strdup function @f1-95 is not ANSI standard. IMPDEF [Allowed Modification] ] New VCS Label: A2_2E Required after 2000-01-01 Org VCS Label: A2_2 Two additional external names were added. Comments on Non_State_String were corrected. ===== Annex C ===== BXC6A02 [Allowed Modification] New VCS Label: A2_2D Required after 2000-01-01 Org VCS Label: A2_2 The repair of FXC6A00 required that this test be reverted to its original version, which is closer to the author's intent. BXC6A03 [Allowed Modification] New VCS Label: A2_2D Required after 2000-01-01 Org VCS Label: A2_2 Test comments didn't reflect the actual errors. Note that the repaired version of FXC6A00 is required for this test. CXC7001 [Modified] VCS Label: A2_2A The routine TC_Match_States is not safe on a multi-processor implementation. CXC7002 [Modified] VCS Label: A2_2A The test may fail on an implementation that restricts attribute size to the size of an access value. CXC7003 [Modified] VCS Label: A2_2A The test may fail on an implementation that restricts attribute size. CXC7004 [Pending New] New VCS Label: A2_2E Required after 2000-04-01 Check that Is_Callable works properly on the environment task. Check that 'Caller and Current_Task can return the environment task. FXC6A00 [Allowed Modification] New VCS Label: A2_2D Required after 2000-01-01 Org VCS Label: A2_2 The NonVolatile_Tagged type inherits the volatile property from its parent type. ===== Annex D ===== BXD1001 [Modified] VCS Label: A2_2A Interrupt_Priority pragmas in tasks may be rejected. CXD1006 [Modified] New VCS Label: A2_2A Added applicability criteria, allowing rejection of Interrupt_Priority pragma. CXD2004 [Modified] VCS Label: A2_2A The Not_Applicable check for a multi-processor is missing. CXD6001 [Modified] VCS Label: A2_2D Required after 2000-01-01 Org VCS Label: A2_2A The previous version was truncated. (VCS label A2_2D) The Not_Applicable check for a multi-processor is missing. (VCS Label A2_2A) ==== Annex E ==== CXE2002 [Pending New] New VCS Label: A2_2E Required after 2000-04-01 Check that a subprogram or generic subprogram can be a remote call interface unit. BXE2011 [Allowed Modification] New VCS Label: A2_2B Required after 1999-10-01 Org VCS Label: A2_2 The conversions @203, 206 are legal by E.2.2(15). BXE2013 [Pending New] New VCS Label: A2_2E Required after 2000-04-01 Check that a Shared_Passive or Remote_Types unit must not be a subprogram or generic subprogram. CXE4005 [Modified] VCS Label: A2_2A The call @481 does not contain a classwide parameter, so it cannot check E.4(18) as is intended. CXE4006 [Allowed Modification] New VCS Label: A2_2D Required after 2000-01-01 Org VCS Label: A2_2 If partition B runs to completion before partition A finishes elaboration, it is possible for Report.Result to be called before Report.Test. CXE5002 Allowed Modification] New VCS Label: A2_2C Required after 2000-01-01 Org VCS Label: A2_2A An implementation must support the recompilation of the body of System.RPC. (VCS Label A2_2C) Optional partition B prints a spurious failure message. (VCS Label A2_2A) [Note: VCS Label A2_2A is required for conformity assessment.] CXE5003 [Allowed Modification] New VCS Label: A2_2C Required after 2000-01-01 Org VCS Label: A2_2 An implementation must support the recompilation of the body of System.RPC. LXE3001 [Modified] VCS Label: A2_2A Test may hang when exceptions are raised as expected. Test requires that Program_Error must be raised, but it is not required. (E.3:6) ===== Annex F ===== [None] ===== Annex G ===== CXG2005 [Allowed Modification] New VCS Label: A2_2E Required after 2000-01-01, Org VCS Label: A2_2 The test printed thousands of identical failure messages when it failed, which is not helpful. CXG2014 [Modified] VCS Label: A2_2A Subtraction_Error_Test does not contain enough terms in the Taylor series for any possible floating point type. CXG2016 [Allowed Modification] New VCS Label: A2_2B Required after 1999-10-01, Org VCS Label: A2_2 The call to Arctan @243 is missing a comma, resulting in incorrect parameters. CXG2018 [Allowed Modification] New VCS Label: A2_2E Required after 2000-01-01, Org VCS Label: A2_2 The error bound @268 is not wide enough. ===== Annex H ===== CXH3001 [Allowed Modification] New VCS Label: A2_2E Required after 2000-01-01, Org VCS Label: A2_2 The value of A_Truth after the assignment @205 is undefined by 13.9.1(9-11). CXH3003 [Allowed Modification] New VCS Label: A2_2E Required after 2000-01-01, Org VCS Label: A2_2 The value of A_Truth after the assignment @178 is undefined by 13.9.1(9-11). LXH4014 [Modified] VCS Label: A2_2A Corrected errors in "Special Requirements" section. 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 pebbles.ocsystems.com/~acats - but note that this is a temporary home, and may change in the future. The complete set of official new and modified tests are available in the Mod_2_2E 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. 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 (AVF). The baseline ACATS 2.2 is available in various formats on the ACAA web site. Summary lists: Withdrawn Tests (Refer to the main list for details) LA14023 Allowed Modification Tests (Refer to the main list for details) B83004B 2000-01-01 B83004D 2000-01-01 B83024F 2000-01-01 BA1010D 2000-01-01 BXC6A02 2000-01-01 BXC6A03 2000-01-01 BXE2011 1999-10-01 C390010 2000-01-01 CA1012A 2000-01-01 CA2009C 2000-01-01 CA2009F 2000-01-01 CA3011A 2000-01-01 CD30004 2000-01-01 CXA5012 2000-01-01 CXB3005 2000-01-01 CXB3007 2000-01-01 CXD6001 2000-01-01 CXE4006 2000-01-01 CXE5002 2000-01-01 CXE5003 2000-01-01 CXG2005 2000-01-01 CXG2016 1999-10-01 CXG2018 2000-01-01 CXH3001 2000-01-01 CXH3003 2000-01-01 FXC6A00 2000-01-01 IMPDEF 2000-01-01 Modified Tests (Refer to the main list for details) B830001 BXD1001 C330001 C332001 C460008 C650001 CA5004B CD10001 CD2A53A CD30002 CD30003 CD92001 CDE0001 CE3115A CXAA016 CXB3013 CXC7001 CXC7002 CXC7003 CXD1006 CXD2004 CXD6001 (VCS Label A2_2A) CXE4005 CXE5002 (VCS Label A2_2A) CXG2014 LXE3001 LXH4014 Pending New Tests (Refer to the main list for details) B392010 2000-04-01 B455002 2000-01-01 B730006 2000-04-01 B830002 2000-04-01 BA15002 2000-04-01 BA21004 2000-04-01 BXE2013 2000-04-01 C455001 2000-01-01 C460011 1999-10-01 C730003 2000-04-01 C731001 2000-04-01 C761010 2000-04-01 C840001 2000-04-01 C854002 2000-04-01 C910003 1999-10-01 CA14023 2000-04-01 CA14028 2000-04-01 CA15003 2000-04-01 CA20002 1999-10-01 CA21001 2000-04-01 CB10002 2000-04-01 CD30004 2000-04-01 LA20001 1999-10-01 CXB3004 2000-04-01 CXB3006 2000-04-01 CXB3009 2000-04-01 CXB3010 2000-04-01 CXB3012 2000-04-01 CXC7004 2000-04-01 CXE2002 2000-04-01 New Tests (Refer to the main list for details) [None currently]