APPENDIX F: CAPACITY ASSESSOR README FILE

INTRODUCTION:

The Capacity Assessor consists of this readme file ("yc_readm.txt") to guide the user, a set of command language files to execute a set of programs and procedures to determine capacity limitations of an Ada compilation system (including capacity limitations occurring at compile/link time and limitations occurring at run time), and a report form ("yc_tmplt.txt") for collection of test results and recording of comments.

The ACES Capacity Assessor requires an Ada compilation system which will compile and execute on the host system. For self-targeted systems, this will usually be the same compilation system being evaluated. For cross-compilers, it will be a different system. The capacity assessor uses this host-based system to compile the generator programs. If users have no access to a host-based compilation system, they will not be able to run the capacity assessor.

ACES USERS WHO ARE NOT CONCERNED WITH SYSTEM CAPACITY LIMITATIONS NEED NOT RUN THIS ASSESSOR.

Specific, step-by-step instructions for running the Capacity Assessor begin on page F13.

The ACES Capacity Assessor contains 41 tests (32 for compile/link time limits and nine for runtime limits), each of which tests a language feature. The tests rely on a shared set of programs and command files (for compilation/link time test and for runtime tests) which the user will adapt to the compilation system being evaluated. The test programs for the individual language features should require only implementation-dependent adaptation if a user chooses to work around errors or limitations in a system being evaluated. The common file "yc_parms.dat" (read by "yc_front.ada" and "yc_rtglg.ada") contains the testing limits for all the individual tests; this file is initially distributed with a set of default limits, which can be modified by the users through a test editor. The different tests are independent and can be run (or rerun) in any order. If any of the parameters are omitted or in the wrong format, an error message will be printed when the procedure yc_front or yc_rtglg executes.

Before running the capacity assessor tests, the user must have executed Pretest Step 5. This will have entered into the program library the "global" units required by the Capacity Assessor sample test programs.

The basic procedure for executing the capacity tests is:

* Adapt the shared command files and procedures for tests.

* Review the parameter file ("yc_parms.dat") and make any desired changes.

* Run the individual feature tests. Rerun as required. It is not expected that users will typically be able to setup a set of limits and run all the tests sequentially to completion. Users may review their choice of limits based on experience in initial testing: tests which timed out may be rerun with larger time limits, or test which quickly passed their maximum specified limits may be retested with larger limits. The command file to execute all the tests may crash or halt when executing some test problem--in this case, the user will have to adapt the command file to execute the remaining test problems.

* Record the results from running each test in the report form (yc_tmp). The individual test output has been designed so that, if the test problem terminates normally (without the program or the operating system crashing) the last output from the test program will be information which the user will want to enter into the report form in the desired format (this permits users with a suitable host editing environment to "cut" the last output block from the program and "paste" it into the report form).

The Capacity Test Log data, output to standard I/O at the test start and on every test iteration, appears as:

T ID TEST INPUT PARAMETERS MIN / MAX / TIME : _______/ _______/ _______

T ID CURRENT VALUES/STATUS : _______/ _______/

NEXT VALUE / MIN FAILED / MAX PASSED : _______/ _______/ _______

where

* "T ID" represents the test identifier obtained from "yc_parms.txt" (CTnn or RTnn where nn is the test number).

* "TEST INPUT PARAMETERS MIN / MAX / TIME" represents the test minimum, maximum, and time input from "yc_parms.dat", respectively, with time in seconds and the other two parameters having test-unique units of measure.

* "CURRENT VALUES/STATUS" represents the test size and pass/fail status of the currently completed test iteration, expressed in test-unique units of measure.

* "NEXT VALUE / MIN FAILED / MAX PASSED" represents the test size processed next, the minimum test size to fail (NONE if no tests failed), and the maximum test size to pass (NONE if no tests passed) for the test iteration expressed in test-unique units of measure.

The Test Results Summary output to standard I/O at the end of each test appears as:

TEST I.D. TEST DESCRIPTION STRING

INPUT PARAMETERS TEST RANGE MIN/MAX : ______/ ______

MAX PROCESSING TIME(SEC) : ______

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : ______/ ______

ELAPSED TIME(SEC) : ______

USER COMMENTS :

where

* "TEST I.D." represents the test identifier obtained from "yc_parms.txt" (CTnn or RTnn where "nn" is the test number).

* "TEST DESCRIPTION STRING" represents the test description string obtained from "yc_parms.txt".

* "TEST RANGE MIN/MAX" indicates input minimum and maximum test values in units unique to the test obtained from yc_parms.

* "MAX PROCESSING TIME" field indicates the requested maximum processing time obtained from "yc_parms.dat" in integer seconds.

* "TIME LIMIT EXPIRED(Y/N)" indicates if the test terminated due to the maximum time limit being exceeded.

* "LIMIT FOUND(Y/N)" indicates that a precise system limit for this test has been found.

* "MIN FAILED/MAX PASSED" indicates the minimum value that failed the test and the maximum value that passed the test in units unique to the test.

* "ELAPSED TIME" indicates the processing time of the test in integer seconds.

* "USER COMMENTS" is a field for user-entered test comments.

The Test Results Summary contains information required in the Capacity Assessor Report for each test. The Test Results Summary is also sent to the files "yc_ctnnr.txt" for the compile-time Tests to aid in the report preparation.

Since the test to determine whether maximum processing time has been exceeded is done at the end of each test iteration, it is possible for the "MAX PROCESSING TIME" to be smaller than "ELAPSED TIME". The "LIMIT FOUND" will be set to "yes" only when the actual system limit is found, not when the processing determines that a limit exists. A system limit exists when there is a test number in the "MIN FAILED" field.

If multiple criteria for termination are satisfied, only one is indicated. For example, if the maximum test value was completed successfully and the time limit was exceeded in the same test iteration, it will end the test updating "MAX PASSED" with the last test number with the "TIME LIMIT EXPIRED" indicating "no".

For tests yc_rt05 through yc_rt09 the minimum and maximum test values, in bits, are rounded to the nearest STORAGE_UNIT size once the tests start. The rounded values will show in the test information output.

The following lists the common capacity-related files and their functions:

* "yc_parms.dat" - Contains the default input test parameters for the compile-time and run-time tests. User-specified parameters are obtained by editing this file before invoking "yc_drivr.com". Any line starting with the printable character "c" or "r" is interpreted as an input parameter line containing 80 characters containing the test ID, minimum value, maximum value, duration, and description string. Otherwise, the line is interpreted as a comment. Each parameter is separated by a blank or comma. In addition, this file also documents the input parameter limits and units. Figure F-1 lists the file "yc_parms.dat".

* "yc_drivr.com" - Controls the compiles, links and runs of the compile, and run-time tests.

* "yc_tmplt.txt" - Contains the user merged test results.



-- This file (YC_PARMS.DAT) contains the search limits for the compile and run


-- time capacity assessors.

-- Compile time test parameters

-- Maximum processing time using defaults is approximately 8 hr for

-- compile-time tests and 1 hr for run-time tests.

--

-- Notes: 1. Times are given in seconds (not HOURS:MINUTES:SECONDS)

-- 2. Maximum default time is 1800.0 seconds (30 minutes)

-- 3. Times are NOT strict limits. The test control loop will not

-- start another cycle if the elapsed time is greater than the

-- provided value; the control loop will NOT interrupt a process

-- in progress when the "time-limit" expires. Therefore, the

-- actual time for a test to complete may be longer than the

-- user specified maximum time.

-- 4. Since the min and max numbers are stored as 6 digit precision

-- floating point numbers, the limit checks will have a corresponding

-- resolution. This is particularly applicable to the possibly

-- large maximums for the run time tests.

-- time

--ID min max limit test name

---- ----- ----- ------ -----------

ct01 512 16384 1800.0 Number_of_names_in_a_compilation_unit

--The maximum value has a hard limit of 999999.

--The units are in number of names.

ct02 512 16384 1800.0 Number_of_simple_variables

--The maximum value has a hard limit of 999999.

--The units are in number of simple variables

ct03 512 16384 800.0 Number_of_literals_in_an_enumeration_type

--The maximum value has a hard limit of 999999.

--The units are in number of enumeration literals

ct04 512 64767 1800.0 Number_of_elements_in_an_aggregate

--The maximum value has a hard limit of 999999.

--The units are in aggregate elements

ct05 128 4096 900.0 Alternates_in_a_CASE_statement

--The maximum value has a hard limit of 32767

--The units are in case alternatives

ct06 8 128 400.0 Alternatives_in_a_SELECT_statement

--The maximum value has a hard limit of 32767

--The units are in select alternatives

ct07 16 128 300.0 Number_of_constrained_formal_parameters

--The maximum value has a hard limit of 32767

--The units are in number of constrained parameters

ct08 16 128 400.0 Number_of_unconstrained_formal_parameters

--The maximum value has a hard limit of 32767

--The units are in unconstrained parameters

Figure F-1 (Part 1 of 4) File yc_parms.dat



ct09 64 4096 1800.0 Number_of_tasks

--The maximum value has a hard limit of 32767

--At larger test numbers the compile step may not

-- complete.

--The units are in tasks

ct10 16 256 300.0 Number_of_simple_operands_in_arithmetic_expression

--The maximum value has a hard limit of 999999.

--The units are in arithmetic operands

ct11 1 10 400.0 Levels_of_parenthesis_in_arithmetic_expression

--The maximum value has a hard limit of 10

--The units are in parenthesis levels

ct12 1 10 800.0 Levels_of_nesting_of_actual_parameters

--The maximum value has a hard limit of 10

--The units are in levels of nesting

ct13 80 256 1800.0 Number_of_characters_in_a_line

--The maximum value has a hard limit of 32767

--At larger test numbers the compile step may not

-- complete.

--The units are in characters

ct14 8 128 300.0 Depth_of_nested_subprogram

--The maximum value has a hard limit of 32767

--The units are in nested subprograms

ct15 8 256 500.0 Depth_of_nested_IF_statements

--The maximum value has a hard limit of 32767

--The units are in nested if statements

ct16 8 256 500.0 Depth_of_nested_CASE_statements

--The maximum value has a hard limit of 32767

--The units are in nested case statements

ct17 8 128 400.0 Depth_of_nested_BLOCK_statements

--The maximum value has a hard limit of 32767

--The units are in nested BLOCK statements

ct18 4 128 1300.0 Depth_of_nested_ACCEPT_statements

--The maximum value has a hard limit of 32767

--The units are in nested BLOCK statements

ct19 4 128 300.0 Depth_of_nested_variants_in_record

--The maximum value has a hard limit of 32767

--The units are in nested variants

ct20 256 16384 1800.0 Statements_in_a_compilation_unit

--The maximum value has a hard limit of 999999.

--The units are in statements

ct21 128 4096 1800.0 Number_of_non-declarative_statements_in_block

--The maximum value has a hard limit of 999999.

--The units are in statements

ct22 64 512 200.0 Number_of_characters_in_a_qualified_name

--The maximum value has a hard limit of 999999.

--The units are in characters

Figure F-1 (Part 2 of 4) File yc_parms.dat



ct23 128 16384 200.0 Number_of_executable_statements_in_a_program

--The maximum value has a hard limit of 999999.

--The units are in hundreds of statements

ct24 4 16 200.0 Number_of_dimensions_in_an_array

--The maximum value has a hard limit of 32767

--The units are in array dimensions

ct25 2 14 1200.0 Nested_aggregates

--The maximum value has a hard limit of 14

--The units are in nested aggregates

ct26 4 128 1800.0 Nested_subunits

--The maximum value has a hard limit of 32767

--At larger test numbers the compile step may not

-- complete.

--The units are in nested subunits

ct27 1 32 100.0 Nested_INLINE_subprograms

--The maximum value has a hard limit of 32767

--The units are in nested inline subprograms

ct28 1 16 300.0 Nested_generic_subprograms

--The maximum value has a hard limit of 32767

--The units are in nested generic subprograms

ct29 1 16 300.0 Nested_generic_packages

--The maximum value has a hard limit of 32767

--The units are in nested generic packages

ct30 8 16384 200.0 Size_of_the_literal_pool_in_a_compilation_unit

--The maximum value has a hard limit of 999999.

--The units are in hundreds of literals.

ct31 128 8192 300.0

Size_of_statically_sized_subprogram_declarative_region

--The maximum value has a hard limit of 999999.

--The units are in zg_glob1.float6 storage -- locations.

ct32 128 8192 400.0 Statically_sized_library_package_declarative_region

--The maximum value has a hard limit of 999999.

--The units are in zg_glob1.float6 storage

-- locations.

-- Run time test parameters

-- time

--ID min max limit test name

---- ----- ----- ------ -----------

rt01 1 16384 1800.0 Number_of_elements_in_an_array

--The maximum value has a hard limit of 2147480000

--The units are in array elements.

rt02 1 16384 1800.0 Number_of_dynamically_created_tasks

--The maximum value has a hard limit of 32767

--The units are in tasks.

rt03 1 16384 1800.0 Depth_of_subprogram_or_function_calling

--The maximum value has a hard limit of 32767

--The units are in subprogram calls deep.

Figure F-1 (Part 3 of 4) File yc_parms.dat



rt04 1 16384 1800.0 Number_of_non-task_type_dynamically_allocated_objects

--The maximum value has a hard limit of 2147480000

--The units are in objects.

rt05 1 131072 1800.0 Size_of_a_stack_declared_array

--The maximum value has a hard limit of

-- (214748000)x(system.storage_unit)

--The units are in bits

rt06 1 131072 1800.0 Size_of_a_heap_declared_array

--The maximum value has a hard limit of

-- (214748000)x(system.storage_unit)

--The units are in bits.

rt07 1 131072 1800.0 Size_of_a_library_declared_array

--The maximum value has a hard limit of either

-- (214748000)x(system.storage_unit) or

-- (the input minimum)x(2**20), which ever is least.

--The units are in bits.

rt08 1 131072 1800.0 Size_of_a_collection

--The maximum value has a hard limit of

-- (214748000)x(system.storage_unit)

--The units are in bits.

rt09 1 131072 1800.0 Size_of_a_data_segment

--The maximum value has a hard limit of

-- (214748000)x(system.storage_unit).

-- Note: since the processing calculates the

-- current test value as a float6 type

-- and since numerical

-- precision is important for this test,

-- the maximum value should

-- not exceed the number that can be precisely

-- represented in a zg_glob1.float6 type times

-- system.storage_unit. That is:

-- max test value < (max float6 precision value)x

-- (system.storage_unit).

--The units are in bits.

Figure F-1 (Part 4 of 4) File yc_parms.dat

The following lists the compile-time related files and their functions:

* "yc_globl.ada" - Global package for compile-time related tests.

* "yc_compl.com" - Compiles and links compile-time related tests.

* "yc_serch.com" - Creates temporary file "yc_inter.txt" and writes the current test name to it; runs the test generator; compiles, links runs each test and tests the loop status in "yc_inter.txt" to determine when to terminate the test generation process.

* "yc_front.ada" - Reads "yc_inter.txt" and "yc_parms.dat" to obtain initial test parameter information. This information is placed in "yc_inter.txt" for use by the test currently being run.

* "yc_ct01g.ada" - Generator of test for number of names in a compilation unit.

* "yc_ct02g.ada" - Generator of test for number of simple variables.

* "yc_ct03g.ada" - Generator of test for number of literals in an enumeration type.

* "yc_ct04g.ada" - Generator of test for number of elements in an aggregate.

* "yc_ct05g.ada" - Generator of test for alternates in a CASE statement.

* "yc_ct06g.ada" - Generator of test for alternatives in a SELECT statement.

* "yc_ct07g.ada" - Generator of test for number of constrained formal parameters.

* "yc_ct08g.ada" - Generator of test for number of unconstrained formal parameters.

* "yc_ct09g.ada" - Generator of test for number of tasks.

* "yc_ct10g.ada" - Generator of test for number of simple operands in an arithmetic expression.

* "yc_ct11g.ada" - Generator of test for levels of parenthesis in an arithmetic expression.

* "yc_ct12g.ada" - Generator of test for levels of nesting of actual parameters.

* "yc_ct13g.ada" - Generator of test for number of characters in a line.

* "yc_ct14g.ada" - Generator of test for depth of nested subprogram.

* "yc_ct15g.ada" - Generator of test for depth of nested IF statements.

* "yc_ct16g.ada" - Generator of test for depth of nested CASE statements.

* "yc_ct17g.ada" - Generator of test for depth of nested BLOCK statements.

* "yc_ct18g.ada" - Generator of test for depth of nested ACCEPT statements.

* "yc_ct19g.ada" - Generator of test for depth of nested variants in record.

* "yc_ct20g.ada" - Generator of test for statements in a compilation unit.

* "yc_ct21g.ada" - Generator of test for number of non-declarative statements in block.

* "yc_ct22g.ada" - Generator of test for number of characters in a qualified name.

* "yc_ct23g.ada" - Generator of test for number of executable statements in a program.

* "yc_ct24g.ada" - Generator of test for number of dimensions in an array.

* "yc_ct25g.ada" - Generator of test for nested aggregates.

* "yc_ct26g.ada" - Generator of test for nested subunits.

* "yc_ct27g.lab" - Generator of test for nested INLINE subprograms (using label'ADDRESS).

* "yc_ct27g.gad" - Generator of test for nested INLINE subprograms (using adapted zg_getad).

* "yc_ct28g.ada" - Generator of test for nested generic subprograms.

* "yc_ct29g.ada" - Generator of test for nested generic packages.

* "yc_ct30g.ada" - Generator of test for size of the literal pool in a compilation unit.

* "yc_ct31g.ada" - Generator of test for size of statically sized subprogram declarative region.

* "yc_ct32g.ada" - Generator of test for statically sized library package declarative region.

* "yc_bcknd.ada" - Processes test status from "yc_inter.txt" and outputs the next test number and loop status to "yc_inter.txt" for use by the current test generator and "yc_serch.com", respectively. At test completion yc_bcknd outputs the final test results to "yc_ctxxr.txt".

* "yc_ctxxr.txt" - Contains the formatted results for the corresponding compile-time test ("xx" represents the test ID number.).

* "yc_inter.txt" - A temporary file used to pass common data between procedures in the compile-time capacity test search process.

+ yc_serch passes the test name to yc_front so it can identify the set of parameters to obtain for the current test.

+ yc_front passes initial test parameters to the test generators (yc_ctxxg).

+ the generated test sends status data to yc_bcknd.

+ yc_bcknd hands status data to the test generator and command file yc_serch using this intermediate data file.

The following is a list of the data in "yc_inter.txt":

+ Test name ID (from "yc_parms.dat")

+ Starting iteration value (from "yc_parms.dat")

+ Ending iteration value (from "yc_parms.dat")

+ Maximum processing time in seconds (from "yc_parms.dat")

+ Iteration number of last passing test ("none" if negative)

+ Completion_status - 0-"test start" 1-"next" 2-"limit is greater than ending value" 3-"ending number is limit" 4-"limit is less than beginning value", 5-"time exceeded"

+ Iteration number of last failing test ("none" if negative)

+ Current iteration pass/fail status (1 pass, 2 fail)

+ Current iteration number

+ Next iteration number

+ Starting day

+ Starting month

+ Starting year

+ Starting second

+ Test result ("e"=exit, "c"=continue)

+ Test description string

The file "yc_inter.txt" is an Ada direct file with one record.

Parameters are separated by at least one space and are identified by the ordering shown above. Test state information can be recovered by inspecting this file when a system crash is encountered.

The following lists the run-time related files and their function:

* "yc_compl.com" - Compiles and links source generator.

* "yc_parms.dat" - Contains user input test parameters for all tests.

* "yc_rtglg.ada" - Generates the global file "yc_rtgl2.ada" based on the input test parameters in "yc_parms.dat".

* "yc_rtcmp.com" - Compiles, links, and runs run-time tests.

* "yc_rtgl1.ada" - Contains run-time global package declarations.

* "yc_rtgl2.ada" - Contains run-time global input test parameters.

* "yc_rt01_.ada" - Tests for number of elements in an array.

* "yc_rt02_.ada" - Tests for number of dynamically created tasks.

* "yc_rt03_.ada" - Tests for depth of subprogram calling.

* "yc_rt04_.ada" - Tests for number of non-task type dynamically allocated objects.

* "yc_rt05_.ada" - Tests for size of a stack declared array.

* "yc_rt06_.ada" - Tests for size of a heap declared array.

* "yc_rt07_.ada" - Tests for size of a library declared array.

* "yc_rt08_.ada" - Tests for size of a collection.

* "yc_rt09_.ada" - Tests for size of a data segment.

PREPARING TO TEST:

Have these groups of files available for the compile-time tests. If Pretest Step 5 was completed, then "zg_glob*.*" files will be compiled and linked, and no further action on the user's part is required for these files.

* Global files:

+ "zg_glob1.ada"

+ "zg_glob2.ada"

+ zg_glob3 (".elg" or ".ell" or ".cpg" or ".cpl")

+ "zg_glob4.ada"

+ "zg_glob5.ada"

+ "yc_globl.ada"

* Command files:

+ "yc_compl.com/unx"

+ "yc_drivr.com/unx"

+ "yc_serch.com/unx"

+ "yc_adahs.com/unx"

+ "yc_linkh.com/unx"

+ "zc_adack.com/unx"

+ "zc_adaop.com/unx"

+ "zc_lnk.com/unx"

+ "zc_delsb.com/unx"

+ "zc_delso.com/unx"

+ "zc_delbo.com/unx"

+ "zc_setli.com/unx"

* Data file:

+ "yc_parms.dat"

* Control files:

+ "yc_front.ada"

+ "yc_bcknd.ada"

* Test files:

+ "yc_ct01g.ada" through "yc_ct26g.ada"

+ "yc_ct28g.ada" through "yc_ct32g.ada"

+ plus either

- "yc_ct27g.lab" when label'ADDRESS is supported or

- "yc_ct27g.gad" when label'ADDRESS is not supported

* Text file:

+ "yc_tmplt.txt"

The Ada files associated with compile-time capacity test "xx" are named "yc_ctxxg.ada". For example, "yc_ct01g.ada" is the test generator Ada source for testing the "Number of Names in a Compilation Unit". On systems with limited disk space, a user could load only those files needed for a particular test onto the host system and modify "yc_drivr.com" to run only the selected test.

NOTE: If the system under test requires that Ada source files have a suffix other than ".ada", then all the ".ada" files will have to be copied or renamed.

Have these groups of files available for the run-time tests:

* Global files:

+ "zg_glob1.ada"

+ "zg_glob2.ada"

+ "zg_glob4.ada"

+ "zg_glob5.ada"

+ "yc_rtgl1.ada"

* Command files:

+ "yc_rtcmp.com/unx"

+ "yc_adahs.com/unx"

+ "yc_linkh.com/unx"

+ "zc_setli.com/unx"

+ "zc_lnk.com/unx"

+ "zc_delsb.com/unx"

+ "zc_adack.com/unx"

* Data file:

+ "yc_parms.dat"

* Test files:

+ "yc_rt01_.ada" through "yc_rt09_.ada"

* Text file:

+ "yc_tmplt.txt"

The Ada files associated with run-time capacity test "xx" are named "yc_rtxxg.ada". For example, "yc_rt01g.ada" is the test generator Ada source for testing the "Number of Elements in an Array". On systems with limited disk space, a user could load only those files needed for a particular test onto the host or target system.

Fill out the descriptive information on the report form. The report form, "yc_tmplt.txt", asks for information on the identity of the system being tested, the hardware and software configuration used, the name of the tester, the date, and any other information a user may wish to note.

Step 1 - Set up library of global packages:

If Pretest was run, then zg_basln compiled the globals needed for the Capacity Tests have been compiled. It is sufficient to run Step 1 and Step 5 of the Pretest.

Step 2 - Adapt the procedures for each scenario:

* For compile-time:

There are two versions of yc_ct27g, one assuming label'ADDRESS is supported ("*.lab") and one which assumes that the user has adapted zg_getad function ("*.gad"). Depending on the version of zg_glob3 in the library, the "other assumption" may not compile.

If the target and host systems are different, the compile-time tests will need to have a host-based library (in addition to the library used for target compilations) containing the packages compiled by "zg_base1.com" adapted for the host-based compilation system so that the test generators (yc_ct01g through yc_ct032g) and test control (yc_front and yc_bcknd) programs, when compiled and linked, can run ON the host system.

For embedded systems the package DIRECT_IO needs adapting so that instead of writing the test pass indication to the intermediate file ("yc_inter.txt") it will output a message (calling ZG_GLOB2.PUT_COMMENT with an adapted TEXT_IO package) to the terminal indicating the test has passed. If the pass indication is not output, the test failed. In addition, another adapted version of "yc_glob1.ada" is needed for target compilations which contains only INTER_REC_TYPE, the package body and the functions IDENTI and IDENTIF. The removed routines are used by the host-based test generator procedures and may use functions unavailable to the embedded target compiler.

* For run-time:

All run-time tests except for "yc_rt02_.ada" and "yc_rt03_.ada" use 32-bit integer types (ZG_GLOB5.INTEGER32) in their processing. If the system under test does not support this then an adaptation will be required to use 16-bit integer types (ZG_GLOB1.INTEGER16).

If the target is an embedded system the procedure CALC_NEXT in file "yc_rtg11.ada" may have to be adapted. This procedure uses the function ZG_GLOB1.FLOAT6_IO.GET to accomplish an even/odd check. If ZG_GLOB1.FLOAT6_IO.GET is unavailable, use ZG_GLOB5.INTEGER32 or multiple 16 bit integers to represent the floating point working number and the mod function to accomplish the check.

Step 3 - Adapt the command files for each scenario:

Sample capacity assessor command language files are distributed for two compilation systems: DEC Ada under VMS (file with a .com suffix) and Verdix Ada under Silicon Graphics UNIX (file with a ".unx" suffix). The user will have to adapt the file to use the compilation system being evaluated, and to use a host-based compilation system. The adaptations for the target-based compilation system will have been performed during pretest in adapting the "zc_cmp*.com" and "zc_ada*.com" files. Adaptations for host-based compilations and links may be needed for "yc_adahs.com" and "yc_linkh.com" (on self-targeted systems, this would be identical to the "zc_adack.com" and "zc_lnk.com" files). No adaptations for specific tests should be necessary (unless the user wants to work around errors discovered in the system being evaluated).

Note that the test generators produce source code files with the ".ada" suffix, and the command scripts "yc_serch", "yc_compl", and "yc_rtcmp" use this suffix. If your compilation system requires a different suffix, then you must adapt these files. See the comments (in the ".unx" versions) containing "*** POSSIBLE MODIFICATION".

The file "yc_drivr.com" is a high-level driver command file which calls on lower-level command files "yc_compl.com", "yc_serch.com" and "yc_rtcmp.com" to compile, link and run the compile-time and run time tests. Instructions about how to adapt and interpret test results are contained in the low-level command files. A structured English description of file "yc_drivr.com" follows.



yc_drivr.com

begin

identify the default directory

identify the Ada library

disable error checking

invoke command file yc_compl.com to compile compile-time tests

invoke command file yc_serch.com to process test yc_ct01

.

.

.

invoke command file yc_serch.com to process test yc_ct32

invoke command file yc_rtcmp.com to compile and execute run-time tests

end yc_drivr

If the target and host systems are different, create and use two Ada libraries, one for the host and one for the target compiles; adapt DIRECT_IO and yc_glob1 for the target; and compile them just before "yc_serch.com" is invoked for yc_ct01.

The command file "yc_compl.com" compiles, links and cleans up the library for the compile-time related tests. The following describes the processing in this command file:



yc_compl.com begin

identify the default directory

identify the ada library

disable error checking

compile yc_globl.ada using host based compilation system

compile yc_front.ada using host based compilation system

link yc_front using host based system

delete yc_front spec and body from library

compile yc_bcknd.ada using host based compilation system

delete yc_bcknd spec and body from library

link yc_bcknd using host based system

compile yc_ct01g.ada using host based compilation system

link yc_ct01g using host based system

delete yc_ct01g spec and body from library

.

.

.

compile yc_ct26g.ada using host based compilation system

link yc_ct26g using host based system

delete yc_ct26g spec and body from library

compile yc_ct27g.lab using host based compilation system

link yc_ct27g using host based system

delete yc_ct27g spec and body from library

compile yc_ct27g.gad using host based compilation system

link yc_ct27g using host based system

delete yc_ct27g spec and body from library

compile yc_ct28g.ada using host based compilation system

link yc_ct28g using host based system

delete yc_ct28g spec and body from library

.

.

.

compile yc_ct32g.ada using host based compilation system

link yc_ct32g using host based system

delete yc_ct32g spec and body from library

end yc_compl.com

The file "yc_serch.com" identifies the test currently being run by creating "yc_inter.txt"; runs the test generator; compiles, links and runs each test; and tests the test result in "yc_inter.txt" to determine when to terminate the test generation process. The description of this file is shown below. This file must be adapted by each compilation system. The process was designed with concern for ease of porting. If the process could assume a portable approach to having a main program read parameters (and files) and set condition codes on output, a simpler control structure could have been used -- but such an approach would not be easily adaptable to embedded systems.



yc_serch.com

begin

identify the default directory

set offset_of_test_result for use in extracting test_result

if a passed test name is reasonable

then

create intermediate data storage file yc_inter.txt

open file yc_inter.txt for writing

write test name to file yc_inter.txt in columns 1 through 4

close file yc_inter.txt

delete any existing generated yc_ctxx_.ada files for current test

delete any existing generated yc_ctxx.exe files for current test

delete any existing generated yc_ctxxr.txt files for current test

run yc_front to set up data in yc_inter.txt for use by tests

open yc_inter.txt

read parameter line in yc_inter.txt

close yc_inter.txt

extract test_result

if test result is "continue" then

go to loop_top

if test_result is "exit" then

go to loop_exit

exit com file

loop_top

run on host system yc_ctxxg to generate next test source file yc_ctxx_.ada

compile yc_ctxx_.ada using target-based compilation system

turn off system messages

link generated test yc_ctxx using target-based system

turn on system messages

run generated test yc_ctxx on target-based system

delete generated test file yc_ctxx_.ada

delete generated test file yc_ctxx_.exe

delete all yc_inter.txt files except for the last one

run yc_bcknd to process test results on host-based system

turn off system messages

delete yc_ctxx generated units from library

turn on system messages

open yc_inter.txt

read parameter line yc_inter.txt

close yc_inter.txt

extract the test_result(15th parameter in yc_inter.txt)

if test result is "continue"

goto loop_top

if test result is "exit" go to loop_exit

output anomaly message

exit com file

loop_exit

list final results file to standard output

delete file yc_inter.txt

end if

end yc_serch.com

If the target and host systems are different, the downloading and running on the target system could be outside the control of "yc_serch.com". For this situation the user can adapt "yc_serch.com" to check compiler/linker status codes (when available) and defer execution of the test programs until finding a compile/link limit. It is still important to verify on cross-targeted systems that the largest program accepted by the compiler/linker executes properly. If executing this "compile/link" program for the target reveals a run-time failure, then the testing procedure should be modified to include executing all programs generated by "yc_serch.com". This requires additional effort for the user, but is a safer testing procedure. If it is decided to perform a search with test values chosen by the user, it is helpful to set the input minimum and maximum parameters to single test values so that one test program at a time is generated on the host and run on the target. Even if the download and run steps could be incorporated into "yc_serch.com", the user must take care in dealing with linker errors. Some linkers produce map files with text descriptions of linker errors (as opposed to status codes). These errors may have to be inspected manually.

The user may have to create separate command files unique to the machine debugger to automatically download, run and collect output messages from the tests on embedded systems.

The command file "yc_serch.com" reads TEST_RESULT from file "yc_inter.txt" to determine whether to continue the search loop or not. If there is a problem extracting TEST_RESULT in "yc_serch.com" then adapt Program SAVE_INTERMEDIATE_DATA in file "yc_bcknd.ada" and add new statements to write the variable test_result to another file by itself (the existing code to write inter_rec to "yc_inter.txt" must remain to provide parameters needed for the next test). Command file "yc_serch.com" would be adapted accordingly to read this new file in place of reading "yc_inter.txt".

If the system does not place TEST_RESULT at the expected offset in the file "yc_inter.txt", a message is output indicating its position when a test is run. The user must adapt the value of OFFSET_OF_TEST_RESULT in "yc_serch.com" to match this value.

The command file "yc_rtcmp.com" compiles, links and executes run-time tests. A structured English description of this file is:



yc_rtcmp.com

begin

identify the default directory

identify the ada library

disable error checking

compile file yc_rtglg.ada on host-based compilation system to generate

yc_rtgl2.ada

link yc_rtglg using host based system

delete yc_rtglg from library

run yc_rtglg on host system

compile file yc_rtgl2.ada using target-based compilation system

if error in compile of yc_rtg12.ada then exit com file

compile file yc_rtgl1.ada using target-based compilation system

compile file yc_rt01_.ada using target-based compilation system

link yc_rt01 using target based system

delete library spec and body for yc_rt01

remove prior version of yc_rt01.exe

run yc_rt01 on target system

.

.

.

compile file yc_rt09_.ada using target based compilation system

link yc_rt09 using target based system

delete library spec and body for yc_rt09

remove prior version of yc_rt09.exe

run yc_rt09 on target system

end yc_rtcmp.com

If target and host systems are different, the file "yc_rtcmp.com" will require adaptation so that the run-time tests can run on the target processor. This particularly true when the target is an embedded system.

Step 4 - Adapt the input parameters file:

Adapt "yc_parms.dat" if there are any changes to the minimum or maximum test size, or maximum test time.

Step 5 - Run the Capacity Assessor:

After adaptation of the files, invoking "yc_drivr.com" will run the compile and run-time tests. If the default time limits in "yc_parms.dat" are used, this assessor should execute in approximately eight hours.

Step 6 - Complete the Capacity Assessor Test Report:

The Capacity Assessor Report form ("yc_tmplt.txt") should be filled out with the results from attempting each scenario. It could be modified with an editor, or printed and the hardcopy filled in. When the capacity assessor is complete, the filled-in form will form a summary report for future reference (note that the form has provisions for entering general comments).

Command files can generally be executed interactively or submitted as batch jobs. Because the execution times for some of the tests using a large feature size will be long, it may be more useful to run the capacity tests as batch jobs (this also provides for saving output logs).

If users observe that running capacity tests crashes the system, they may choose to discontinue these tests.

EXECUTING THE TEST:

The general steps for testing each library scenario are described as follows:

1. Run zg_basln (Pretest Step 5).

2. Adapt the procedures (if needed).

3. Adapt "yc_drivr.com", "yc_compl.com", "yc_serch.com" and "yc_rtcmp.com".

4. Review and change the default input test parameters in "yc_parms.dat".

5. Run "yc_drivr.com" and wait for completion.

ANALYZE/RECORD RESULTS:

For the compile-time tests, examine results in file "yc_ctxxr.txt". The data written to these files is in the format required for the Capacity Test Report; the user may then copy the file directly into the Capacity Test Report form and enter comments as appropriate. Users should include a comment on the report form for all tests whose execution crashes the program or the operating system.

As each compile-time capacity test executes, the control program will write to standard output text identifying what capability is being tested and providing status information on the progress of the testing process. This status information will permit users to determine the extent of testing done if the program crashes before it reaches normal completion. In addition, if the system crashes the user can inspect "yc_inter.txt" to determine the state of the test.

For Run-Time tests, copy test results summary from log output to Capacity Test Report form ("yc_tmplt.txt") and enter comments onto form as appropriate. Users should include a comment on the report form for all tests whose execution crashes the program or the operating system.

When the input parameters are changed, the procedure yc_rtglg needs to be rerun to regenerate the file "yc_rtgl2.ada" since it is through this package that the run-time test obtains the input parameters. Of course, the user will need to recompile "yc_rtgl2.ada" and all dependent files. The simplest way to insure that all the proper steps are performed is to edit the file "yc_rtcmp.com", excluding or including individual tests as desired (using control language branching may require many fewer lines to be modified than commenting and uncommenting individual statements). As each run-time capacity test executes, the control program will write to standard output text identifying what capability is being tested, status information on the progress of the testing process and the results at the test completion. Status information in the log output will permit users to determine the extent of testing if the program crashes before it reaches normal completion.

NOTE: If test yc_rt07 is unable to reach the user-specified limit, then log information is output, but no test results summary is displayed. This is a result of an expected exception which terminates the program when encountering a storage error.

When the capacity tests are completed the user will need to clean up the files in the directory as defined by "aces_working_directory". This normally includes deleting files used for the test generators and the run time-related tests. The user might want to ensure all log files and results files are saved in another directory prior to cleaning up the working directory.

ADA COMPILER EVALUATION SYSTEM Version 2.0

ADA CAPACITY ASSESSOR REPORT

Evaluator's Name:____________________________________Date:____________

Host

Compiler:____________________________________________Version:_________

Host

Operating

System:______________________________________________Version:_________

Host

Hardware:____________________________________________Model:___________

System

Memory:__________

Target

Hardware:____________________________________________Model:___________

System

Memory:__________

Disk Free

Devices:_____________________________________________Memory:__________

Units for disk size measurement ( bytes in a block): _________________

Other

Information:__________________________________________________________

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

Note: This assessor does not distinguish between system and compiler limits, but reports when limits are found in a particular configuration of a system with a certain set of resources for Ada compilations.

ADA COMPILER EVALUATION SYSTEM Version 2.0

ADA CAPACITY ASSESSOR REPORT

TEST OUTPUT

CT01 Number_of_names_in_a_compilation_unit

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT02 Number_of_simple_variables

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT03 Number_of_literals_in_an_enumeration_type

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT04 Number_of_elements_in_an_aggregate

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT05 Alternates_in_a_CASE_statement

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

ADA COMPILER EVALUATION SYSTEM Version 2.0

ADA CAPACITY ASSESSOR REPORT

TEST OUTPUT

CT06 Alternatives_in_a_SELECT_statement

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT07 Number_of_constrained_formal_parameters

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT08 Number_of_unconstrained_formal_parameters

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT09 Number_of_tasks

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT10 Number_of_simple_operands_in_arithmetic_expression

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

ADA COMPILER EVALUATION SYSTEM Version 2.0

ADA CAPACITY ASSESSOR REPORT

TEST OUTPUT

CT11 Levels_of_parenthesis_in_arithmetic_expression

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT12 Levels_of_nesting_of_actual_parameters

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT13 Number_of_characters_in_a_line

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT14 Depth_of_nested_subprogram

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT15 Depth_of_nested_IF_statements

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

ADA COMPILER EVALUATION SYSTEM Version 2.0

ADA CAPACITY ASSESSOR REPORT

TEST OUTPUT

CT16 Depth_of_nested_CASE_statements

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT17 Depth_of_nested_BLOCK_statements

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT18 Depth_of_nested_ACCEPT_statements

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT19 Depth_of_nested_variants_in_record

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT20 Statements_in_a_compilation_unit

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

ADA COMPILER EVALUATION SYSTEM Version 2.0

ADA CAPACITY ASSESSOR REPORT

TEST OUTPUT

CT21 Number_of_non-declarative_statements_in_block

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT22 Number_of_characters_in_a_qualified_name

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT23 Number_of_executable_statements_in_a_program

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT24 Number_of_dimensions_in_an_array

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT25 Nested_aggregates

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

ADA COMPILER EVALUATION SYSTEM Version 2.0

ADA CAPACITY ASSESSOR REPORT

TEST OUTPUT

CT26 Nested_subunits

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT27 Nested_INLINE_subprograms

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT28 Nested_generic_subprograms

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT29 Nested_generic_packages

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT30 Size_of_the_literal_pool_in_a_compilation_unit

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

ADA COMPILER EVALUATION SYSTEM Version 2.0

ADA CAPACITY ASSESSOR REPORT

TEST OUTPUT

CT31 Size_of_statically_sized_subprogram_declarative_region

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

CT32 Statically_sized_library_package_declarative_region

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

RT01 Number_of_elements_in_an_array

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

RT02 Number_of_dynamically_created_tasks

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

RT03 Depth_of_subprogram_calling

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

ADA COMPILER EVALUATION SYSTEM Version 2.0

ADA CAPACITY ASSESSOR REPORT

TEST OUTPUT

RT04 Number_of_non-task_type_dynamically_allocated_objects

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

RT05 Size_of_a_stack_declared_array

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

RT06 Size_of_a_heap_declared_array

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

RT07 Size_of_a_library_declared_array

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

RT08 Size_of_a_collection

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

ADA COMPILER EVALUATION SYSTEM Version 2.0

ADA CAPACITY ASSESSOR REPORT

TEST OUTPUT

RT09 Size_of_a_data_segment

INPUT PARAMETERS TEST RANGE MIN/MAX : _______ / _______

MAX PROCESSING TIME(SEC): _____

RESULTS TIME LIMIT EXPIRED(Y/N) : _

LIMIT FOUND(Y/N) : _

MIN FAILED/MAX PASSED : _______ / _______

ELAPSE TIME(SEC) : _____

USER COMMENTS :

----------------------------------------------------------------------

General comments

Impressions