This document contains objectives for Defect Reports 1 & 2 and ARG approved AIs that cannot be tested or are already tested. (These are listed in paragraph order. -------- Objectives that cannot be tested: 1.1.3(15) 8652/0094 (AI-00119) Check that termination is an external interaction. ["External Interactions" aren't testable, and a test that went into an infinite loop would violate the conformity assessment standard rule 10.1.9 ("Tests shall be practical.") Therefore, this is not testable.] 3.5.4(27.1/1) 8652/0003 (AI-00095) Check whether an implementation supports modulus values greater than Max_Non_Binary_Modulus. [This rule only applies to 1's complement implementations, which are rare. In addition, there is no way to determine the value(s) in question; so any test would be unlikely to find any problems, even if they exist.] 3.6.2(2/1) 8652/0006 (AI-00030) Correct font of "prefix". [Presentation is not testable.] 3.10(14/1) 8652/0013 (AI-00012) Constrainedness of an access subtype. [This rule just corrects general wording that isn't testable by itself.] 4.1.4(12/1) 8652/0015 (AI-00093) Check that implementation-defined attributes can have the same names as language-defined ones if supplied for compatibility purposes. [This is an implementation permission. While we could test for the presence or absence of 'Small on floating point types, it would be a capacity-type test (no failure mode is possible. The original rule also is untestable; checking random combinations of prefixes and language-defined attribute names to see if any of them are accepted would be unlikely to find any errors and thus of little value.] 4.5.2(24/1) 8652/0016 (AI-00123) Check that the order that "=" is called for components is unspecified. [Can't test for unspecified things, since anything is OK.] 4.6(11/1) 8652/0008 (AI-00168) 4.6(12/1) [These paragraphs just have punctuation changes for consistency. Nothing new to test here.] 4.6(47) 8652/0101 (AI-00097) Check the behavior of conversions between access types with Convention C and Convention Ada. [This is implementation-defined, thus not testable.] 4.5.6(11) 8652/0100 (AI-00018) Check how the multiplications in an exponentiation are grouped. [The only test possible here is whether the compiler takes advantage of the more flexible rule of Ada 95. But that is a capacity test, as either behavior is allowed.] 6.3.1(2/1) 8652/0011 (AI-00117) Check that the default convention of most entities is Ada. [The convention of the types of entities covered here rarely has any semantic effect, so this is not testable.] 7.6.1(16/1) 8652/0024 (AI-00193) Check whether an exception raised by an Adjust during initialization causes other parts of the object to be Adjusted and finalized. [This change makes the behavior unspecified; thus we can't test it.] 7.6.1(17) 8652/0104 (AI-00179) Check whether storage is recovered when Finalize in an Unchecked_Deallocation raises an exception. [The standard leaves this unspecified, so no test is possible.] 9.6(26) 8652/0106 (AI-00160) Check the behavior of Split around the change of daylight savings time. [This is implementation-defined. Additionally, a test would have to figure out when daylight saving time changes, which varies by locality.] 10.1.5(7.2/1) 8652/0034 (AI-00041) Check that a program unit pragma that is not a library unit pragma applied to a generic does apply to its instances. [This is implementation advice.] 11.5(11/1) 8652/0036 (AI-00176) Check that Suppress(Access_Check) suppresses checks on access discriminants. [Since pragma Suppress need not have any effect (see 11.5(29)), this cannot be tested.] 13.1(15/1) 8652/0040 (AI-00108) 13.1(15.1/1) Check that operational aspects are inherited only by aspects that specify that they are inherited. Check that representation aspects inheritance is not changed. [This has to be tested on a case-by-case basis, so the rule itself is not testable. Existing tests handle representation aspects.] 13.1(18.1/1) 8652/0040 (AI-00108) Check that an operational aspect can be specified; check that it has the default value if not specified. [This is rather a motherhood rule, and is not worth testing by itself; other objectives should check it.] 13.3(55) 8652/0110 (AI-00125) Check that a Size clause does not determine the values of a fixed point type. [This does not specify behavior, so it cannot be tested.] 13.11(16) 8652/0111 (AI-00103) Check whether a task's stack is allocated from a user-defined storage pool. [This is not required, nor even if there is a task stack, so this is untestable.] 13.11(39/1) 8652/0041 (AI-00066) [This is an example.] 13.12(9.1/1) 8652/0042 (AI-00130) Check whether an implementation omited restriction checks for code that is omitted. [This is an implementation permission.] 13.12(9.2/1) 8652/0043 (AI-00190) Check whether a restriction is enforced before execution. [This is an implementation permission.] A(2/1) 8652/0047 (AI-00081) [This is an listing of units.] A.1(7/1) 8652/0028 (AI-00145) A.1(9/1) A.1(10/1) Check that the predefined boolean operators have the parameter type Boolean'Base. [This could be checked by renaming these in a context where subtype conformance is required, but such a test is of little value.] A.10.3(12/1) 8652/0052 (AI-00194) Check that Standard_Error returns a value representing the standard error file. [Test CXA0016 checks this in general. Specifically, standard error and standard output can be the same, so there is no way to test which is returned.] A.12.1(36.1/1) 8652/0056 (AI-00001) Execution is erroneous if a stream_access representing a file that was (later) closed is used by a stream attribute. [Erroneous cases cannot be tested.] A.12.1(28.1/1) 8652/0055 (AI-00026) A.12.1(28.2/1) A.12.1(30.1/1) A.12.1(34/1) A.12.1(35/1) A.12.1(36/1) [These paragraphs were just moved or edited; their testing status is unchanged.] A.14(3/1) 8652/0057 (AI-00050) Check that the same external file can be used for Standard_Input and Standard_Output. [This is just a permission to share, which is not testable.] B.3(62.1/1) 8652/0060 (AI-00037) Check that Interfaces.C.nul and Interfaces.C.Wide_nul have the representation zero. [This is implementation advice.] B.3.2(49/1) 8652/0065 (AI-00142) [This is an example.] C.3.1(12/1) 8652/0068 (AI-00121) C.3.1(14.1/1) Check if handlers attached via pragma Attach_Handler are not attached and detached in a LIFO manner, the program is erroneous. [Erroneousness can't be tested.] C.7.2(13.1/1) 8652/0071 (AI-00165) Check the bounded error case of a controlled type used as a task attribute. [One of the possibilities for the bounded error is deadlock; that makes this untestable.] C.7.2(15.1/1) 8652/0071 (AI-00165) Check that access via Attribute_Handle are erroneous if executed concurrently with other attribute operations on the same attribute. [Erroneous cases are not testable.] C.7.2(16/1) 8652/0071 (AI-00165) Check that the operations for an attribute of a particular task are performed atomically. [The mechanism for insuring atomicity is implementation-defined; and it would be impossible to do more than prove that an implementation did not comply, but a test would unlikely to do that even if the compiler implemented attributes incorrectly.] D(2) 8652/---- (AI-00236) [This AI says that documentation requirements can't be checked.] D.3(6/1) 8652/0073 (AI-00091) [This is just a wording change which is not testable by itself.] D.4(1/1) 8652/0074 (AI-00068) [This is a presentation change.] D.4(15) 8652/0116 (AI-00069) Check whether an implementation supports more than one queuing policy per partition. [This could be tested, but would be a capacity test with no pass/fail criteria and has no other value.] D.7(15/1) 8652/0076 (AI-00067) D.7(17/1) Check the behavior of Max_Storage_at_Blocking. [The wording in para 15 was moved to 17 but is otherwise unchanged. The behavior is implementation-defined and thus is untestable.] D.11(18/1) 8652/0077 (AI-00111) J.7.1(16/1) J.7.1(20/1) [This is a presentation change, replacing an undefined term.] E.2(13/1) 8652/0079 (AI-00208) [This requirement was deleted, thus it can't be tested.] E.2.2(9/1) 8652/0082 (AI-00164) E.2.2(9.1/1) [This paragraph was split into parts without changing the meaning.] E.2.3(9/1) 8652/0078 (AI-00048) E.2.3(10/1) E.2.3(11/1) E.2.3(12/1) [These paragraphs were just edited; their meaning and testing status is unchanged.] F.3.2(74/1) 8652/0089 (AI-00070) [This is an example.] G.1.1(2/1) 8652/0020 (AI-00028) Correct font of "pragma". [Presentation is not testable.] G.1.1(55/1) 8652/0091 (AI-00156) Check whether the permission is used and handled properly. [This is a permission for an implementation to use a non-canonical algorithm. This is not testable within the rules of the ACATS (it would be a test to determine the kind of implementation, as opposed to correctness).] H.3.2(5/1) 8652/0093 (AI-00207) Check that pragma Inspection_Point does not operate on objects not visible to it. [The operation of pragma Inspection_Point is not testable.] -------- Objectives that are already tested: 1.2(8/1) 8652/0001 (AI-00124) Check that the AE and ae characters are allowed in identifiers. [Test C250002 does this.] 3.3.1(18/1) 8652/0002 (AI-00171) 3.6(22/1) 3.8(18/1) 3.8(18.1/1) 4.8(10/1) Check that per-object expressions are evaluated as specified for objects and allocators. (Including subtype compatibility checks.) [An extensive set of legacy tests cover this objective (C37213x and C37215x), as well as some new ones (C371001, C371003), checking cases where a constraint contains an enclosing discriminant in component_definitions.] 3.5.2(43) 8652/0096 (AI-00053) Check that strings representing nongraphic characters as parameters to 'Wide_Value and 'Value are not case sensitive. [Test C352001.] 3.9.2(12) 8652/0098 (AI-00183) Check that a given subprogram may not be a dispatching operation for two or more distinct tagged types, even of the partial view of one or both of the types is untagged. [Test B392010.] 3.10(11/1) 8652/0014 (AI-00064) 3.10.1(1/1) 8.5.4(8.1/1) Check that there is an elaboration check on a renames-as-body. [Test C854002.] 7.3(15) 8652/0102 (AI-00157) 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. [Test B730006.] 7.3.1(7) 8652/0103 (AI-00035) Check that a primitive operation which is inherited only in the body still can be overridden. [Tests B731001 and C731001.] 7.6(17.1/1) 8652/0022 (AI-00083) Check that an implementation cannot create a separate anonymous object for assignment of aggregates (except for assignment statements and return statements). [Test C761010; CXH3002 also uses this rule.] 8.3(9/1) 8652/0025 (AI-00044) 8.3(10/1) Check that a declaration that is not overridable overrides an overridable declaration. [The cases covered by this AI are tested by legacy tests: C67002A.Ada; C67002D.Ada. Other (unchanged) cases are covered by other legacy tests.] 8.3(9/1) 8652/0025 (AI-00044) 8.3(26/1) Check that a non-overiddable declaration is illegal if there a homograph. [Tested by legacy test: B83033B.Ada.] 8.3(26/1) 8625/0026 (AI-00150) Check that a type extension is illegal if anywhere in its scope it has two visible component with the same name. [Tested by B830002.] 8.3(26/1) 8625/0026 (AI-00150) Check that a type extension is legal even if it has two components with the same name as long as at most one of those components is visible anywhere in its scope. [Tested by C730003.] 8.5.4(7) 8652/0105 (AI-00211) Check that an abstract subprogram can be renamed, and is abstract. Check that a "must be overridden" subprogram can be renamed, but would always be illegal. [Tested by B393007.] 9.1(9.1/1) 8652/0029 (AI-00116) Check that a task declaration without a task_definition has an implicit empty task_definition. [Tests C650001, C940001, and C940005 use tasks without task_definitions.] 10.1.4(4/1) 8652/0032 (AI-00192) Check that a subprogram library unit body replaces an instantiation. [Tested by CA14028 (a new number for a test withdrawn while this AI was considered.] 10.1.4(10) 8652/0108 (AI-00077) Check that a generic body can be replaced without recompiling the instantation. [Test CA14023.] 10.1.5(5/1) 8652/0033 (AI-00136) Check that a program unit pragma cannot be given in a generic formal part. [Test BA15002.] 10.2.1(11/1) 8652/0035 (AI-00002) Check that a package subunit whose parent is a preelaborated subprogram need not be preelaborable. [Test CA21001.] 12.5.4(40) 8652/0109 (AI-00025) Check that an access-to-variable type does not match a formal access-to-constant type. [Test BC54001.] 12.7(8.1/1) 8652/0039 (AI-00213) Check that matching of formal parameters is recursive. [Test CC50A01.] A.4.2(63/1) 8652/0048 (AI-00151) Check that Ada.Strings.Maps.To_Range returns an object with the correct bounds. [Test CXA4024.] A.4.4(105/1) 8652/0049 (AI-00128) Check that Ada.Strings.Bounded procedures function properly. [Test CXA4007.] A.5.2(40/1) 8652/0050 (AI-00089) A.5.2(40.1/1) Check that a malformed argument to Ada.Numerics.Float_Random.Value and Ada.Numerics.Discrete_Random.Value is a bounded error, and raises either Constraint_Error or Program_Error, or works. [Test CXA5012.] A.10.3(5) 8652/0113 (AI-00087) A.10.3(16) Check that Current_Output and Set_Output can be used to save and restore the current output file. [Test CXAA016.] A.10.3(22/1) 8652/0053 (AI-00063) A.10.3(23/1) Check that closing a default file, then setting it to another file before use works. [Test CE3902B does this.] A.10.6(5) 8652/---- (AI-00223) Check that line and page terminators are skipped by Ada.Text_IO.Get procedures. [Test CE3904B.Ada and others check that. This is a Binding Interpretation not in the TC, which mainly fixes the ARM to conform to current practice.] B.3(46) 8652/0114 (AI-00038) Check that the mapping functions Interfaces.C.To_C and To_Ada provide the same meaning for strings in C as in Ada. [Tests CXB3004 and CXB3006.] B.3.1(24/1) 8652/0065 (AI-00140) Check that Interfaces.C.Strings.To_Chars_Ptr with Nul_Check False works properly. [Tested in CXB3009.] B.3.1(36/1) 8652/0062 (AI-00139) Check that Interfaces.C.Strings.Value raises Constraint_Error if Length = 0. [Tested in CXB3010.] B.3.1(40/1) 8652/0063 (AI-00177) Check that Value does not raise Terminator_Error if there is no null in the input string. [Tested in CXB3011.] B.3.1(44/1) 8652/0064 (AI-00039) Check that Interfaces.C.Strings.Update propagates Dereference_Error. [A test case of CXB3012.] B.4(63/1) 8652/0066 (AI-00071) Check that Interfaces.COBOL.Valid returns False if the string includes leading spaces. [Test CXB4003.] C.7.1(10) 8652/0115 (AI-00206) Check that Ada.Task_Identification.Is_Callable returns the correct results for the environment task. [Test CXC7004.] D.4(10/1) 8652/0075 (AI-00205) Check that changes to the active priority of the caller do not affect the priority of a call after it is first queued when the queuing policy is priority queuing. [Test CXD4004.] E.2.2(14/1) 8652/0083 (AI-00047) Check that the non-controlling parameters of primitive subprograms of a remote access-to-classwide type do not have a limited type without a user-defined 'Read and 'Write. [Test BXE2012.] E.2(4/1) 8652/0078 (AI-00048) E.2.3(7/1) E.2.3(19/1) Check that a library subprogram can be a remote call interface unit. [Test CXE2002.] E.2(4/1) 8652/0078 (AI-00048) Check that a library subprogram cannot be a shared passive or remote types unit. [Test BXE2013.] E.4(18/1) 8652/0085 (AI-00215) Check that a remote function call that returns a class-wide type enforces the same rules as a parameter of a remote subprogram call. [Test CXE4005.] E.5(24.1/1) 8652/0087 (AI-00082) E.5(24.2/1) Check that the PCS can be replaced by the user. [Tests CXE5002 and CXE5003 use this capability.] F.3.1(43/1) 8652/0088 (AI-00153) Check that a picture string does not contain a '>' if it does not contain a '<'. [Test CXF3A01.]