ACAA Header
 

Submitted Tests by AI

Tests indexed on this page have been submitted by Ada implementers and users for possible inclusion in future versions of the Ada Conformity Assessment Test Suite (ACATS). These tests are provided as a service to the Ada community.
Not all submitted tests are associated with an AI; to find such tests, check the tests indexed by clause number, language version, and can be downloaded in ZIP files.

Tests for AI-00033

  • B73106A.ADA (Corrigendum 1)
    Check that operations of a type are not declared in an inner declarative region.

Tests for AI-00036

  • BXB1009.ADA (Corrigendum 1)
    Check that out-of-order arguments are not allowed in pragmas Import, Export and Convention.

Tests for AI-00037

  • CXB3020.ADA (Corrigendum 1)
    Check that Interfaces.C.Char and Interfaces.C.Wchar_T are discrete types.

Tests for AI-00041

  • BA1507A.ADA (Corrigendum 1)
    Check that a library unit pragma applied to a generic does not apply to its instances.
  • BA1507B.DEP (Corrigendum 1)
    Check that a library unit pragma applied to a generic does not apply to its instances.
  • CA1507A.ADA (Corrigendum 1)
    Check that a library unit pragma applied to a generic does not apply to its instances.
  • CA1507B.DEP (Corrigendum 1)
    Check that a library unit pragma applied to a generic does not apply to its instances.

Tests for AI-00054

  • B35A02A.ADA (Corrigendum 1)
    Check that 'Small cannot be specified for derived fixed point types and for decimal fixed point types.

Tests for AI-00064

  • CDE003A.ADA (Corrigendum 1)
    Check that renaming-as-bodies do not freeze.

Tests for AI-00098

  • B37008A.ADA (Corrigendum 1)
    Check that unknown_discriminant_parts are not allowed on generic formal types that are either array types or elementary types.

Tests for AI-00106

  • BDE0009.A (Corrigendum 1)
    Check the following:
    • An object name causes freezing where it occurs, unless the name is part of a default_expression, a default_name, or a per-object expression of a component's constraint, in which case, the freezing occurs later as part of another construct.
    • An implicit_dereference freezes entities according to the same rule that applies to a name that is an explicit_dereference.
    • An implicit call, such as an implicit call to Initialize, freezes the called subprogram. This is true even if the implicit call is removed via the implementation permissions in 7.6(18-21).
    • If a name or expression is implicitly converted to a type or subtype, then that type or subtype is frozen at the same place where the name or expression causes freezing.

Tests for AI-00113

  • C96026A.ADA (Corrigendum 1)
    Check that Month, Day and Seconds raise Time_Error when Year_Number is out of range.

Tests for AI-00123

  • C45232A.ADA (Corrigendum 1)
    Check that "=" for all language-defined nonlimited types behaves as if it is predefined for composition and generic formal type purposes.

Tests for AI-00126

  • CXA5109A.DEP (Corrigendum 1)
    Check that Ada.Numerics.Short_Elementary_Functions is declared pure.
  • CXA5109B.A (Corrigendum 1)
    Check that Ada.Numerics.Elementary_Functions is declared pure.
  • CXA5109C.DEP (Corrigendum 1)
    Check that Ada.Numerics.Long_Elementary_Functions is declared pure.
  • CXG1125A.DEP (Corrigendum 1)
    Check that Ada.Numerics.Short_Complex_Types and Ada.Numerics.Short_Complex_Elementary_Functions are declared pure.
  • CXG1125B.A (Corrigendum 1)
    Check that Ada.Numerics.Complex_Types and Ada.Numerics.Complex_Elementary_Functions are declared pure.
  • CXG1125C.DEP (Corrigendum 1)
    Check that Ada.Numerics.Long_Complex_Types and Ada.Numerics.Long_Complex_Elementary_Functions are declared pure.

Tests for AI-00130

  • LXD7003.ADA (Corrigendum 1)
    Check that the rules for checking restrictions are followed for No_Task_Hierarchy.
  • LXD7004.ADA (Corrigendum 1)
    Check that the rules for checking restrictions are followed for No_Nested_Finalization.
  • LXH4008.ADA (Corrigendum 1)
    Check that the rules for checking restrictions are followed. Also check that the No_Local_Allocators restriction allows instantiations of generic packages, but that nested instantiations of such packages containing allocators are detected.

Tests for AI-00131

  • BXB3060.ADA (Corrigendum 1)
    Check that convention C_Pass_By_Copy cannot be applied to subprograms or objects, and that it cannot be applied to elementary types, array types, or record types with discriminants.

Tests for AI-00135

  • C85408A.ADA (Corrigendum 1)
    Check that a legal circular renaming-as-body is a bounded error and raises Program_Error or Storage_Error or goes infinitely recursive.

Tests for AI-00145

  • BXA1007.ADA (Corrigendum 1)
    Check that the predefined boolean operators have the parameter type Boolean'Base.

Tests for AI-00169

  • C76114A.ADA (Corrigendum 1)
    Check that it is not a bounded error for an explicit call to Adjust or Finalize to propagate an exception.

Tests for AI-00171

  • C36022A.ADA (Corrigendum 1)
    Check that per-object expressions are evaluated as specified for task and protected entry families.
  • C36022B.ADA (Corrigendum 1)
    Check that per-object expressions are evaluated as specified for protected components.
  • C38018A.ADA (Corrigendum 1)
    Check that checks are made properly when a per-object expression contains an attribute whose prefix denotes the current instance of the type.
  • C38018B.ADA (Corrigendum 1)
    Check that an expression in a per-object discriminant constraint which is part of a named association is evaluated once for each association.

Tests for AI-00181

  • BDD109A.DEP (Corrigendum 1)
    Check that the implementation permission for components of Stream_Element_Array is used if its condition is met.

Tests for AI-00203

  • C35802A.DEP (Corrigendum 1)
    Check that if Short_Float'Machine_Radix is a power of 10, Short_Float'Digits is equal to Short_Float'Model_Mantissa.
  • C35802B.ADA (Corrigendum 1)
    Check that if Float'Machine_Radix is a power of 10, Float'Digits is equal to Float'Model_Mantissa.
  • C35802C.DEP (Corrigendum 1)
    Check that if Long_Float'Machine_Radix is a power of 10, Long_Float'Digits is equal to Long_Float'Model_Mantissa.

Tests for AI-00230

  • BY30001.A (Amendment 1)
    Check generalized use of anonymous access to constants (AI-230 plus AI-231). (Many renames cases; and some accessibility checks.)
  • CY30001.A (Amendment 1)
    Check AI-230 (Generalized use of anonymous access types).
  • CY30002.A (Amendment 1)
    Check AI-230 (Generalized use of anonymous access types). Check renaming declarations plus the new predefined equality operator for access types. It is based on the example described in AI-230.

Tests for AI-00231

  • BY30001.A (Amendment 1)
    Check generalized use of anonymous access to constants (AI-230 plus AI-231). (Many renames cases; and some accessibility checks.)
  • BY30030.A (Amendment 1)
    Check static matching rules for anonymous access-to-object types.
  • CY30040.A (Amendment 1)
    Check null-excluding access subtypes.

Tests for AI-00251

  • BY30005.A (Amendment 1)
    Check abstract interfaces.
  • BY30009.A (Amendment 1)
    Check limited interfaces.
  • BY30013.A (Amendment 1)
    Check interfaces with generics.
  • BY30014.A (Amendment 1)
    Check interfaces with generics.
  • CY30009.A (Amendment 1)
    This test checks abstract interfaces in which the mode of the controlling argument of all the primitives is in out.
  • CY30010.A (Amendment 1)
    This test checks abstract interfaces in which the mode of the controlling argument of all the primitives is out.
  • CY30011.A (Amendment 1)
    This test checks abstract interfaces in which the mode of the controlling argument of all the primitives is access.
  • CY30012.A (Amendment 1)
    Check the equality operator applied to class-wide interfaces and the membership test applied to interfaces.
  • CY30014.A (Amendment 1)
    Check private types and interfaces.
  • CY30015.A (Amendment 1)
    This test checks a type implementing two interfaces that have exactly the same primitives.
  • CY30016.A (Amendment 1)
    Check interfaces with discriminants.
  • CY30030.A (Amendment 1)
    Check interfaces with generics.
  • CY30038.A (Amendment 1)
    Check controlled private types and interfaces.
  • CY30039.A (Amendment 1)
    Check controlled private types and interfaces.
  • CY30041.A (Amendment 1)
    Check dispatching calls through interfaces.
  • CY30042.A (Amendment 1)
    Check Size of classwide types.

Tests for AI-00252

  • CY40012.A (Amendment 1)
    This test checks basic combinations of the object.operation notation plus its usage combined with record components.
  • CY40014.A (Amendment 1)
    Check implicit dereference. Test based on the example described in AI-00252.txt.

Tests for AI-00254

  • BY30004.A (Amendment 1)
    Check AI-254 (Anonymous access to subprograms). [Profile errors in 'Access.]

Tests for AI-00262

  • CY100005.A (Amendment 1)
    Check private with clause. In this test we have a private child package and we check all the basic usages of the private-with clause.

Tests for AI-00287

  • BY40001.A (Amendment 1)
    Check AI-287 for record aggregates. This test checks that the box can not be used in positional aggregates.
  • BY40002.A (Amendment 1)
    Check AI-287. This test checks that:
    • The box can be used when no default initialization is available
    • Default initialized components have default initialization value
    • If the discrete choice others is used for the default initialization of components, it must cover at least one component.
  • CY40001.A (Amendment 1)
    Check AI-287 for array aggregates. This test checks that the box can be used for the default initialization of non-limited unidimensional arrays (including allocated arrays).
  • CY40002.A (Amendment 1)
    Check AI-287 for array aggregates. This test checks that the box can be used for the default initialization of non-limited bidimensional arrays (including allocated arrays).
  • CY40003.A (Amendment 1)
    Check AI-287 for record aggregates. This test checks that the box can be used for the default initialization of non-limited records (including allocated records).
  • CY40007.A (Amendment 1)
    Check AI-287 for record aggregates. Check allocators.
  • CY40008.A (Amendment 1)
    Check AI-287 for record aggregates. This test checks discriminants in records with limited components.
  • CY40009.A (Amendment 1)
    Check AI-287 for record aggregates. Checks default initialization of deferred constants.
  • CY40010.A (Amendment 1)
    Check AI-287 for record aggregates. Checks default initialization of deferred constants in library packages.
  • CY40011.A (Amendment 1)
    Check AI-287 for record aggregates. This test checks limited aggregates used in the instantiation of generic packages.

Tests for AI-00326

  • B3A1002.A (Amendment 1)
    Check that an incomplete type exported by a limited view does not becomes complete too early.
  • B3A1801.ADA (Amendment 1)
    Check the legal and illegal uses of tagged incomplete types.

Tests for AI-00345

  • CY30043.A (Amendment 1)
    Check dispatching in interfaces operations "implemented by" task entries and protected operations.
  • CY80001.A (Amendment 1)
    Check entries renamed as procedures used in select statements.
  • CY90001.A (Amendment 1)
    Check dispatching interface procedures used in select statements.
  • CY90003.A (Amendment 1)
    Check dispatching interface procedures used in select statements.

Tests for AI-00348

  • B313001.A (Amendment 1)
    Check that a null_procedure_declaration may not be declared at library level.

Tests for AI-00354

  • BY30006.A (Amendment 1)
    Check task interfaces.
  • BY30007.A (Amendment 1)
    Check protected interfaces.
  • BY30008.A (Amendment 1)
    Check synchronized interfaces.
  • BY30010.A (Amendment 1)
    Check task interfaces with private extensions.
  • BY30011.A (Amendment 1)
    Check protected interfaces with private extensions.
  • BY30012.A (Amendment 1)
    Check synchronized interfaces with private extensions.
  • BY30015.A (Amendment 1)
    If an inherited subprogram is implemented by a protected procedure or an entry, then the first parameter of the inherited subprogram shall be of mode out or in out, or an access-to-variable parameter. Therefore none of the protected types declared in this program cover the primitives of the interface.
  • BY30016.A (Amendment 1)
    Check that the primitives of a protected interface cannot be covered simultaneously by
    protected subprograms and
    subprograms declared outside the protected type.
  • BY30017.A (Amendment 1)
    Check that the private data of the protected type is not visible in the subprograms covering a protected interface that are declared outside of the protected type.
  • BY30018.A (Amendment 1)
    If an inherited subprogram is implemented by a protected procedure or an entry, then the first parameter of the inherited subprogram shall be of mode out or in out, or an access-to-variable parameter. Therefore none of the protected types declared in this program cover the primitives of the interface.
  • BY30019.A (Amendment 1)
    Check that the primitives of a protected interface cannot be covered simultaneously by
    protected subprograms and
    subprograms declared outside the protected type.
  • CY30017.A (Amendment 1)
    This test checks task interfaces in which the mode of the controlling argument of all the primitives is in out.
  • CY30018.A (Amendment 1)
    This test checks protected interfaces in which the mode of the controlling argument of all the primitives is in out.
  • CY30019.A (Amendment 1)
    This test checks synchronized interfaces in which the mode of the controlling argument of all the primitives is in out.
  • CY30020.A (Amendment 1)
    Test limited interfaces used as the progenitor of task types.
  • CY30021.A (Amendment 1)
    Similar to test CY30020 but the two tasks implementing the interface are in the same package. This is done to check that there is no conflict with the names of the dispatching subprograms corresponding to the entries of the two tasks.
  • CY30022.A (Amendment 1)
    Test limited interfaces used as the progenitor of protected types.
  • CY30023.A (Amendment 1)
    Similar to test CY30022 but the two tasks implementing the interface are in the same package. This is done to check that there is no conflict with the names of the dispatching subprograms corresponding to the entries of the two tasks.
  • CY30024.A (Amendment 1)
    Similar to test CY30022 but using access types.
  • CY30025.A (Amendment 1)
    Similar to previous tests but using access types.
  • CY30026.A (Amendment 1)
    Test based on the example in AI-345.
  • CY30027.A (Amendment 1)
    Test task interfaces with private extensions.
  • CY30028.A (Amendment 1)
    Test protected interfaces with private extensions.
  • CY30029.A (Amendment 1)
    Test synchronized interfaces with private extensions.
  • CY30031.A (Amendment 1)
    Check task interfaces with generics.
  • CY30032.A (Amendment 1)
    Protected interfaces and parameter modes.
  • CY30033.A (Amendment 1)
    Check protected types: interface primitives overridden by means of
    protected entries and
    normal subprograms.
  • CY30034.A (Amendment 1)
    This test checks the usage of subprograms to cover interface primitives.
  • CY30035.A (Amendment 1)
    Check protected interfaces overriding function primitives.
  • CY30036.A (Amendment 1)
    Check task interfaces.
  • CY30037.A (Amendment 1)
    Check the usage of subprograms to cover task interface primitives.

Tests for AI-00396

  • B394001.A (Amendment 1)
    Check that if a private extension is derived only from interface types, the full view may also be derived from an additional non-interface type. Check that the rules in 7.3 regarding private extensions and interface ancestors are still satisfied when the full view has a non-interface parent. (AI-396 plus AI-401).
  • BY30028.A (Amendment 1)
    Check the no hidden interfaces rule.
  • CY30046.A (Amendment 1)
    Check the no hidden interfaces rule.

Tests for AI-00397

  • BY30020.A (Amendment 1)
    Check parsing of entry declarations with overriding indicator in the context of task types.
  • BY30021.A (Amendment 1)
    Recognition of incorrect overriding / not overriding entries or subprograms in the context of protected types. Recognition of incorrect overriding / not overriding entries in the context of task types.
  • BY30024.A (Amendment 1)
    Recognition of incorrect overriding / not overriding entries or subprograms in the context of protected types. Recognition of incorrect overriding / not overriding entries in the context of task types. Specialized cases for null procedures.
  • CY30047.A (Amendment 1)
    Recognition of correct overriding / not overriding entries or subprograms in the context of protected types. Recognition of incorrect overriding / not overriding entries in the context of task types.
  • CY30048.A (Amendment 1)
    Recognition of correct overriding / not overriding entries or subprograms in the context of protected types. Recognition of incorrect overriding / not overriding entries in the context of task types.

Tests for AI-00399

  • BY30015.A (Amendment 1)
    If an inherited subprogram is implemented by a protected procedure or an entry, then the first parameter of the inherited subprogram shall be of mode out or in out, or an access-to-variable parameter. Therefore none of the protected types declared in this program cover the primitives of the interface.
  • BY30016.A (Amendment 1)
    Check that the primitives of a protected interface cannot be covered simultaneously by
    protected subprograms and
    subprograms declared outside the protected type.
  • BY30017.A (Amendment 1)
    Check that the private data of the protected type is not visible in the subprograms covering a protected interface that are declared outside of the protected type.
  • BY30018.A (Amendment 1)
    If an inherited subprogram is implemented by a protected procedure or an entry, then the first parameter of the inherited subprogram shall be of mode out or in out, or an access-to-variable parameter. Therefore none of the protected types declared in this program cover the primitives of the interface.
  • BY30019.A (Amendment 1)
    Check that the primitives of a protected interface cannot be covered simultaneously by
    protected subprograms and
    subprograms declared outside the protected type.
  • CY30033.A (Amendment 1)
    Check protected types: interface primitives overridden by means of
    protected entries and
    normal subprograms.
  • CY30034.A (Amendment 1)
    This test checks the usage of subprograms to cover interface primitives.
  • CY30035.A (Amendment 1)
    Check protected interfaces overriding function primitives.
  • CY30036.A (Amendment 1)
    Check task interfaces.
  • CY30037.A (Amendment 1)
    Check the usage of subprograms to cover task interface primitives.

Tests for AI-00401

  • B394001.A (Amendment 1)
    Check that if a private extension is derived only from interface types, the full view may also be derived from an additional non-interface type. Check that the rules in 7.3 regarding private extensions and interface ancestors are still satisfied when the full view has a non-interface parent. (AI-396 plus AI-401).

Tests for AI-00419

  • BY30029.A (Amendment 1)
    Check limited in derived and private types.
  • BY30031.A (Amendment 1)
    Check limited in derived and private types when the parent type is generic.
  • CY30044.A (Amendment 1)
    Check that a limited interface can be used as a progenitor of a non-limited type.
  • CY30045.A (Amendment 1)
    Check limited in derived and private types, with the ancestors being formal types.

Tests for AI-20218

  • B832603.A (Amendment 1)
    Check the legality of overriding indicators for proper bodies, stubs and renaming-as-bodies. Use type derivation, either directly or through a private type, in which case the specification and body may know different things about overriding.
  • B832604.A (Amendment 1)
    Check the legality of overriding indicators in cases involving predefined operators and enumeration literals.
  • B832607.A (Amendment 1)
    Check the legality of overriding indicators in a case where a subprogram is primitive for more than one type.

Tests for AI-50217

  • B3A1002.A (Amendment 1)
    Check that an incomplete type exported by a limited view does not becomes complete too early.
  • BA146010.A (Amendment 1)
    An implementation may require that a unit be legal before it can be mentioned in a limited_with_clause.
  • BA146011.A (Amendment 1)
    Part of test BA146010.A.
  • BA146012.A (Amendment 1)
    Part of test BA146010.A.
  • BA146013.A (Amendment 1)
    Part of test BA146010.A.
  • BA146014.A (Amendment 1)
    Part of test BA146010.A.
  • BY100001.A (Amendment 1)
    Check limited with clauses. Check that the limited_with clause can not be used neither with with generics nor instances.
  • BY100003.A (Amendment 1)
    Check limited with clauses. Check that the limited view is not allowed in a child unit if the full view is visible in the parent. Based in an example described by the ARG in AI-217-6.
  • BY100008.A (Amendment 1)
    Check limited with clauses plus renamings.
  • CY100001.A (Amendment 1)
    Check limited with clauses. Basic tests.
  • CY100002.A (Amendment 1)
    Check limited with clauses. Check the use of the limited view in local packages.
  • CY100003.A (Amendment 1)
    Check limited with clauses. Check the use of the limited view in a hierarchical library.
  • CY100006.A (Amendment 1)
    Check limited private with clauses. This test is based on the example proposed by the ARG and discussed in AI-217-06.
  • CY100007.A (Amendment 1)
    Check limited with clauses. This test is based on the example proposed by the ARG and discussed in AI-217-06, but implemented with a hierarchical library.

Tests for AI05-0033-1

  • BXC30TV.A (Ada 2012)
    Check that if either the Attach_Handler or Interrupt_Handler aspect is specified for a protected procedure, the corresponding protected declaration must be at library-level.

Tests for AI05-0139-2

  • C4160RB.A (Ada 2012)
    When both Constant_Indexing and Variable_Indexing are specified, check that the variable indexing function is called in variable contexts if the prefix is a variable, and that the constant indexing function is called in all other cases (including variable indexing contexts when the prefix is a constant).

Tests for AI05-0146-1

  • C7320JC.A (Ada 2012)
    Check that Assertion_Error is raised when the policy requires checks and there is an object for which the invariant check fails, but not when the invariant check passes - unconstrained array version.
  • C7320JC_A.A (Ada 2012)
    Part of test C7320JC.
  • C732AJC.A (Ada 2012)
    Check that an assertion error is raised when the policy requires checks and there is a parameter with a part of a type with an invariant that does not hold true, but not when the invariant does hold true, constrained array version.
  • C732AJC_A.A (Ada 2012)
    Part of test C732AJC.
  • C732AJC_B.A (Ada 2012)
    Part of test C732AJC.
  • C732BJC.A (Ada 2012)
    Check that an assertion error is raised when the policy requires checks and there is a parameter with a part of a type with an invariant that does not hold true, but not when the invariant does hold true, discriminant record version.
  • C732BJC_A.A (Ada 2012)
    Part of test C732BJC.
  • C732BJC_B.A (Ada 2012)
    Part of test C732BJC.
  • C732BJC_C.A (Ada 2012)
    Part of test C732BJC.

Tests for AI05-0229-1

  • BXC30TV.A (Ada 2012)
    Check that if either the Attach_Handler or Interrupt_Handler aspect is specified for a protected procedure, the corresponding protected declaration must be at library-level.

Tests for AI12-0016-1

  • C3900TK.A (Ada 2012)
    Check that an instance of Generic_Dispatching_Constructor raises Tag_Error if called with the tag of a type declared in a different, unrelated task than the instance.
  • C4800RB.A (Ada 2012)
    If the designated type of an initialized allocator is class-wide, check that Program_Error is raised if the master of the type of the tag of the qualified expression of the allocator does not include the elaboration of the type of the allocator. Case 2: Incomparable accessibility.

Tests for AI12-0044-1

  • C732AJC.A (Ada 2012)
    Check that an assertion error is raised when the policy requires checks and there is a parameter with a part of a type with an invariant that does not hold true, but not when the invariant does hold true, constrained array version.
  • C732AJC_A.A (Ada 2012)
    Part of test C732AJC.
  • C732AJC_B.A (Ada 2012)
    Part of test C732AJC.
  • C732BJC.A (Ada 2012)
    Check that an assertion error is raised when the policy requires checks and there is a parameter with a part of a type with an invariant that does not hold true, but not when the invariant does hold true, discriminant record version.
  • C732BJC_A.A (Ada 2012)
    Part of test C732BJC.
  • C732BJC_B.A (Ada 2012)
    Part of test C732BJC.
  • C732BJC_C.A (Ada 2012)
    Part of test C732BJC.

Tests for AI12-0155-1

  • C3A10RB.A (Ada 2012)
    Check that a tagged incomplete type whose completion is deferred to a package body can have non-primitive operations and that those operations can be called from a child unit, even though the child unit does not have visibility on the completion of the type.