AdaIC
Ada Information Clearinghouse
Compilers ^
Conformance Testing & Evaluation^
ACATS Test Modification List V 2.1F

ACATS Test Modification List
Version 2.1F
January 27, 1999


Changes from the last list:

Test B830001 was modified to eliminate a little-value test case, and to eliminate multiple units from the (single) test file. Multiple units with the same name in a single file can be rejected by implementations.

Test CD30003 was modified to correct for the unintended assumption that Storage_Unit = 8. It also was modified to avoid problems with the proposed rules of AI-00051.

Test LA20001 is new. It adds a test for 10.2(19), and is essentially the test case removed from B830001, reorganized to provide an appropriate test.

Test CA20002 is new. It adds a test that a partition can be created, even if a child unit and a subunit with the same name have been compiled previously.

Keep in mind that ACVC 2.2 will be used as a new baseline suite, and some of the tests in that suite would meet the requirements for new tests. That baseline will be effective April 5, 1999.

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); "New" (the test does not need to be processed for Ada conformity assessments, but will be added to future baseline ACATS).

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 83 & Ada 95 standards are given in the format:

<section|chapter>.<clause>[.<subclause>]:<paragraph>

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.

B37312B [Withdrawn]
   @42,58 is legal in Ada95 (3.8.1:7 (vs. RM83 3.7.3:3))

B392002 [Modified VCS Label: A2_1A
   Primitive function in private part @186 violates 3.9.3:10

B393006 [Modified] VCS Label: A2_1A
   Declaration of Func @102/3 Violates 3.9.3(10)

B490001 [Modified] VCS Label: A2_1A
   Errors @295, 298, 324 are in error for other reasons than marked.

B610001 [Modified] VCS Label: A2_1A
   Procedure Calls @221,223,225,228 are ambiguous

B83E01C [Modified] VCS Label: A2_1A
   Errors @172, 177 are "Optional"

B83E01D [Modified] VCS Label: A2_1A
   Errors @302, 307 are "Optional"

B83E01E [Modified] VCS Label: A2_1A
   Errors @F3-56/-61 are "Optional"

BA21003 [Modified] VCS Label: A2_1A
    Compilation with errors may affect later error detection.
    [Note: The fix is to split the first test file (BA210030).
    This changes the numbers of the remaining test files; scripts
    will need to be updated!]

BC3503A [Modified] VCS Label: A2_1A
   @100, 109, 118 is not an error.

BC3503C [Modified] VCS Label: A2_1A
   @63 is not an error.

BC51C02 [Modified] VCS Label: A2_1A
   Declaration of FUNC @194 violates 3.9.3:10

BDE0001 [Modified] VCS Label: A2_1A
   Both implicit & explicit function @154 violate 3.9.3:10

C330001 [Allowed Modification] New VCS Label: A2_1C
   Required after 1999-02-25, Org VCS Label: A2_1
   Calls to potentially unelaborated Indef_Func_1 and Indef_Func_2 may raise Program_Error.

C332001 [Allowed Modification] New VCS Label: A2_1C
   Required after 1999-02-25, Org VCS Label: A2_1
   Decimal types have been removed from the tests.

C390010 [Withdrawn]
   @163 fails the accessibility check of 3.10.2:29

C392010 [Withdrawn]
   @499 the dispatching order produces string "LqmKen", not "NqmMgn"

C392012 [Withdrawn]
   @350 will raise Constraint_Error when a tag check fails

C3A2A02 [Modified] VCS Label: A2_1A
   Elaboration check may fail.

C460008 [Allowed Modification] New VCS Label: A2_1C
   Required after 1999-02-25, Org VCS Label: A2_1
   Decimal type operations have been split out into a separate test.

C460011 [New]New VCS Label: A2_1E
   Required in version 2.3, approximately 2000-04-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)

C42006A [Withdrawn]
   @56,66,76 static literals must be rejected (4.9:34)

C48009A [Withdrawn]
   @54 the static expression TA'(0) must be rejected (4.9:34)

C760007 [Withdrawn]
   @161 wrongly expects at least one call to Adjust (7.6:21)

C760009 [Modified] VCS Label: A2_1A
   Elaboration check may fail.

C760010 [Modified] VCS Label: A2_1A
   Elaboration check may fail.

C760012 [Withdrawn]
   @155,183 wrongly requires a component finalization order (7.6.1:9)

C761006 [Withdrawn]
   Expects Adjust to be called in Finalize_Test, but it need not be

C761007 [Modified] VCS Label: A2_1A
   The expected string "GHGHIJ" @376 is impossible.

C761008 [Withdrawn]
   @280 reports Failed but is a possible handler for finalization's P_E

C761009 [Withdrawn]
   @562 has enum.value Task_Requeue_To_Task vice Task_Requeue_To_PO
   @609,651 wrongly expects event Got_Program_Error

C980001 [Modified] VCS Label: A2_1A
   Extra calls to Hold_Up.Lock @251, 274 freeze test.

C9A005A [Withdrawn]
   @180,192 aborted calls may be yet not canceled (9.5.3:25, 9.8:15)

C9A007A [Modified] VCS Label: A2_1A
   Absence of priorities results in a race condition.

C9A008A [Withdrawn]
   @94,191,288 aborted calls may be yet not canceled (9.5.3:25, 9.8:15)

CA20002 [Pending New] New VCS Label: A2_1F
   Required after approximately 1999-10-01
   Check that a partition can be created even if multiple units with
   the same expanded name have been compiled.

CA2009C [Modified] VCS Label: A2_1A
   -Z left in files in some distributions.

CA2009F [Modified] VCS Label: A2_1A
   -Z left in files in some distributions.

CD10001 [Allowed Modification] New VCS Label: A2_1C
   Required after 1999-02-25 Org VCS Label: A2_1
   Made small value for Tenths a power of two.

CD20001 [Withdrawn]
   Wrongly requires 'Component_Size to be a factor of word size (13.2:9)

CD2A53A [Allowed Modification] New VCS Label: A2_1C
   Required after 1999-02-25 Org VCS Label: A2_1
   Added applicability criteria, to allow rejection for non-support of decimal small values.
   (This is allowed by 3.5.9(21)).

CD30002 [Allowed Modification] New VCS Label: A2_1E
   Required after 1999-04-20 Org VCS Label: A2_1
   @130 Alignment declared as Max_Word*2, but tests @178 for Multiple_Alignment. (VCS Label A2_1A)
   Multiple_Alignment may exceed maximum supported by implementation. (VCS Label A2_1B)
   Test divides by zero if Word_Size = Storage_Size (@171, 184 (VCS Label A2_1E)

CD30003 [Allowed Modification] New VCS Label: A2_1F
   Required after 1999-04-26 Org VCS Label: A2_1
   The test will fail unless that Storage_Unit = 8.

CD30005 [Modified] VCS Label: A2_1A
   Main subprogram name does not follow conventions.

CD92001 [Allowed Modification] New VCS Label: A2_1D
   Required after 1999-04-05 Org VCS Label: A2_1
   Test assumes arrays have same Component_Size without
   justification.

CDE0001 [Allowed Modification] New VCS Label: A2_1C
   Required after 1999-02-25, Org VCS Label: A2_1
   Instantiation of potentially unelaborated CDE0001_2 may raise
   Program_Error.

CE3115A [Modified] VCS Label: A2_1A
   Output to external file may be buffered.

CXA5012 [Modified] VCS Label: A2_1A
   Integer'Last may be less than 100_000 (@86)

CXA5015 [Modified] VCS Label: A2_1A
   The floating-point equivalence @255 need not hold

CXA5A01 [Modified] VCS Label: A2_1A
   Constraint_Error needn't occur if 'Machine_Overflows=False.

CXA5A02 [Modified] VCS Label: A2_1A
   Constraint_Error needn't occur if 'Machine_Overflows=False.

CXA5A03 [Modified] VCS Label: A2_1A
   Constraint_Error needn't occur if 'Machine_Overflows=False.

CXA5A04 [Modified] VCS Label: A2_1A
   Constraint_Error needn't occur if 'Machine_Overflows=False.

CXA5A09 [Modified] VCS Label: A2_1A
   Constraint_Error needn't occur if 'Machine_Overflows=False.

CXAA016 [Allowed Modification] New VCS Label: A2_1E
   Required after 1999-04-20, Org VCS Label: A2_1
   For implementations which do not support creating Text_IO files,
   file deletions may fail (@93).

CXAF001 [Modified] VCS Label: A2_1A
   Command_Name returns null string if arguments can't be passed.

CXB3008 [Modified] VCS Label: A2_1A
   C function "atof" might not function as expected

CXB3009 [Modified] VCS Label: A2_1A
   Expected Storage_Error might not occur.

CXB3010 [Modified] VCS Label: A2_1A
   Invocation of Free might be erroneous.

CXB4001 [Modified] VCS Label: A2_1A
   Test uses non-existent procedure name @198.

CXB4007 [Modified] VCS Label: A2_1A
   Bad To_Binary Comparison @263-268.

CXB4009 [Modified] VCS Label: A2_1A
   COBOL code used in test is not legal.
   COBOL code may be unable to be compiled (if no compiler).

CXB5004 [Modified] VCS Label: A2_1A
   FORTRAN code used in test is not legal.

E28002B [Withdrawn]
   @91 the pragma argument violates 10.1.5:6 (no subprogram_declaration)

EA3004G [Withdrawn]
   The test reported that pragma Inline is not implemented for
   friendly implementations. The test is of little value.

FDB0A00 [Modified] VCS Label: A2_1A
   Overflow check @98 is made too soon.

LA1001F [Withdrawn]
   Has an invalid test objective (cf AI95-00172/01, ARG Minutes 97-04)

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.

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

BXC6A02 [Modified] VCS Label: A2_1A
   Type FXC6A00.NonVolatile_Tagged inherits volatility @159, 188

BXC6A03 [Withdrawn]
   @117 applies pragma Volatile in violation of 13.1:10
   @129,137 is illegal--FXC6A00.NonVolatile_Tagged IS a volatile type

CXC3004 [Withdrawn]
   @282 Attach_Handler raises P_E as per C.3.2:21, which is
   unintended

CXC7001 [Allowed Modification] New VCS Label: A2_1C
   Required after 1999-02-25 Org VCS Label: A2_1
   The routine TC_Match_States is not safe on a multi-processor
   implementation.

CXC7002 [Allowed Modification] New VCS Label: A2_1E
   Required after 1999-04-20 Org VCS Label: A2_1
   The test may fail on an implementation that restricts attribute
   size to the size of an access value.

CXC7003 [Allowed Modification] New VCS Label: A2_1E
   Required after 1999-04-20 Org VCS Label: A2_1
   The test may fail on an implementation that restricts attribute
   size.

FXC6A00 [Modified] VCS Label: A2_1A
   Pragma Volatile applied @103,113 violates 13.1(10)

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

BXD1001 [Allowed Modification] New VCS Label: A2_1C
   Required after 1999-02-25 Org VCS Label: A2_1
   Interrupt_Priority pragmas in tasks may be rejected.

CXD1006 [Allowed Modification] New VCS Label: A2_1C
   Required after 1999-02-25 Org VCS Label: A2_1
   Added applicability criteria, allowing rejection of
   Interrupt_Priority pragma.

CXD1008 [Modified] VCS Label: A2_1A
   The floating point equivalence @228 need not hold.

CXD2004 [Allowed Modification] VCS Label: A2_1B
   Required after 1999-02-25 Org VCS Label: A2_1A
   The Not_Applicable check for a multi-processor is missing.
   (VCS Label A2_1B)
   Execution correctness depends on ready-queue order.
   (VCS Label A2_1A, this is a required modification.)

CXD2005 [Withdrawn]
   @187-191 Set_Priority effects need not follow the sequence
   of calls

CXD4008 [Modified] VCS Label: A2_1A
   Wrong queuing policy; Multiprocessors may fail PO and task checks.

CXD4009 [Withdrawn]
    Expects a different order of execution than required by priorities

CXD5002 [Withdrawn]
   @138 checks a task priority that may not yet be set (9.8:18, D.5:10)

CXD6001 [Allowed Modification] New VCS Label: A2_1C
   Required after 1999-02-25 Org VCS Label: A2_1A
   The Not_Applicable check for a multi-processor is missing.
   (VCS Label A2_1C)
   "Victim_Type" tasks need not complete before Check_Results is
   called. (VCS Label A2_1A, this is a required modification)

CXD6002 [Modified] VCS Label: A2_1A
   Task Weapon is not terminated for multi-processors.

CXD8002 [Modified] VCS Label: A2_1A
   To_Duration(RT.Time_Span_Unit) might equal 0.0.
   Multiprocessor may have different readings of volatile Global.

CXDB005 [Withdrawn]
   @248 expects inherited priority to be lost, contrary to AI95-00092

CXDC001 [Withdrawn]
   @131 doesn't allow for Tasking_Error being raised in activation

==== Annex E ====

BXE2009 [Modified] VCS Label: A2_1A
   Item parameter for Write must be of a base subtype (13.13.2:36)

BXE2012 [Modified] VCS Label: A2_1A
   Wrong type given for controlling param @178

BXE4001 [Modified] VCS Label: A2_1A
   Remote access type declaration is an unintended illegality.

CXE4003 [Modified] VCS Label: A2_1A
   Pragma Remote_Call_Interface @131 Applies only to the generic unit

CXE4006 [Modified] VCS Label: A2_1A
   Test expects wrong type'tag @772

CXE5002 [Allowed Modification] New VCS Label: A2_1B
   Required after 1999-01-30 Org VCS Label: A2_1
   Optional partition B prints a spurious failure message.

CXE5003 [Modified] VCS Label: A2_1A
   Parameter Last in Read may require a value.

LXE3001 [Modified] VCS Label: A2_1A
   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 =====

CXG1004 [Modified] VCS Label: A2_1A
   Checks for exceptions with plus/minus one are incorrect.

CXG2002 [Modified] VCS Label: A2_1A
   Intermediate results in expressions @97, 272 can overflow.

CXG2004 [Modified] VCS Label: A2_1A
   Calculation of representable X and X/3 is incorrect.

CXG2008 [Modified] VCS Label: A2_1A
   Constraint_Error need not be raised if Real'Machine_Overflows
   is False.

CXG2011 [Modified] VCS Label: A2_1A
   Log(0.0) must raise Constraint_Error, not Argument_Error.

CXG2012 [Modified] VCS Label: A2_1A
   Intermediate result in expression @124 may overflow.

CXG2013 [Modified] VCS Label: A2_1A
   Tab(Y) @302 raises Constraint_Error when Y = 0.5, calculation of
   error bound is incorrect.

CXG2014 [Modified] VCS Label: A2_1A
   Taylor series in Subtraction_Test lacks sufficient terms.

CXG2016 [Modified] VCS Label: A2_1A
   Conversion to degrees in Identitity_1_Test is incorrect.

CXG2017 [Modified] VCS Label: A2_1A
   Error bound for Tanh(X) is incorrect for X near zero.

CXG2020 [Modified] VCS Label: A2_1A
   Intermediate result in expression @119 may overflow.

CXG2022 [Withdrawn]
   @103,113,116,143,181,184,250,253 no "**" returns fixed-point
   values.

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

LXH4001 [Modified] VCS Label: A2_1A
   Main subprogram name violates naming standards.

LXH4002 [Modified] VCS Label: A2_1A
   Main subprogram name violates naming standards.

LXH4003 [Modified] VCS Label: A2_1A
   Main subprogram name violates naming standards.

LXH4004 [Modified] VCS Label: A2_1A
   Main subprogram name violates naming standards.

LXH4005 [Modified] VCS Label: A2_1A
   Main subprogram name violates naming standards.

LXH4006 [Modified] VCS Label: A2_1A
   Main subprogram name violates naming standards.

LXH4007 [Modified] VCS Label: A2_1A
   Main subprogram name violates naming standards.

LXH4008 [Modified] VCS Label: A2_1A
   Main subprogram name violates naming standards.

LXH4009 [Modified] VCS Label: A2_1A
   Main subprogram name violates naming standards.

LXH4010 [Modified] VCS Label: A2_1A
   Main subprogram name violates naming standards.

LXH4011 [Modified] VCS Label: A2_1A
   Main subprogram name violates naming standards.
   (See modified grading).

LXH4012 [Modified] VCS Label: A2_1A
   Main subprogram name violates naming standards.

LXH4013 [Modified] VCS Label: A2_1A
   Main subprogram does not depend on correct units. (With @97 is missing).

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 AdaIC web site. It also can be accessed
directly at www.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_1D 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 themost 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.

 

Summary lists:

 

Withdrawn Tests

(Refer to the main list for details)
B37312B
BXC6A03
C390010
C392010
C392012
C42006A
C48009A
C760007
C760012
C761006
C761008
C761009
C9A005A
C9A008A
CD20001
CXC3004
CXD2005
CXD4009
CXD5002
CXDB005
CXDC001
CXG2022
E28002B
EA3004G
LA1001F

 

Allowed Modification Tests

(Refer to the main list for details)
B830001 1999-04-26
BXD1001 1999-02-25
C330001 1999-02-25
C332001 1999-02-25
C460008 1999-02-25
CD10001 1999-02-25
CD2A53A 1999-02-25
CD30002 1999-01-30
CD30003 1999-04-26
CD92001 1999-04-05
CDE0001 1999-02-25
CXAA016 1999-04-20
CXC7001 1999-02-25
CXC7002 1999-04-20
CXC7003 1999-04-20
CXD1006 1999-02-25
CXD2004 1999-02-25
CXD6001 1999-02-25
CXE5002 1999-01-30

 

Modified Tests

(Refer to the main list for details)
B392002
B393006
BC3503A
BC3503C
BC51C02
B490001
B610001
B83E01C
B83E01D
B83E01E
BA21003
BDE0001
BXC6A02
BXE2009
BXE2012
BXE4001
C3A2A02
C760009
C760010
C761007
C980001
C9A007A
CA2009C
CA2009F
CD30005
CE3115A
CXA5012
CXA5015
CXA5A01
CXA5A02
CXA5A03
CXA5A04
CXA5A09
CXAF001
CXB3008
CXB3009
CXB3010
CXB4001
CXB4007
CXB4009
CXB5004
CXD1008
CXD2004
CXD4008
CXD6001
CXD6002
CXD8002
CXE4003
CXE4006
CXE5003
CXG1004
CXG2002
CXG2004
CXG2008
CXG2011
CXG2012
CXG2013
CXG2014
CXG2016
CXG2017
CXG2020
FDB0A00
FXC6A00
LXE3001
LXH4001
LXH4002
LXH4003
LXH4004
LXH4005
LXH4006
LXH4007
LXH4008
LXH4009
LXH4010
LXH4011
LXH4012
LXH4013

 

New Tests

(Refer to the main list for details)

C460011

Modified grading:

[Note: This was inherited from the AVO; it cannot be handled with simple test modifications; final resolution is postponed until the ACATS 2.2 is used.]

 

LXH4011: Errors before and after pragma Restrictions can't both be detected

The ACAA directs that this test program shall be processed with the following grading modification for conformity assessment using ACATS 2.1:

accept a compile-time error detection of the violation at line 67 of file LXH40112 as passing (even though link-time detection of the earlier-compiled violations in LXH40110 cannot be achieved)

The test wrongly includes violations of the configuration pragma

Restrictions in units compiled both before and after the pragma is processed. Later units may be rejected as violations, and so the implementation cannot reach the link stage and detect the previously compiled violations.

This test will be split into two tests in ACATS 2.2.

================