Test cases for the Control Flow view.
4/18/94 CWH

These tests are believed to fully cover the code in package Control_Flow_Scan.
The tests were run with the package linked into test driver Cf_Driver.  
.grl files produced by Cf_Driver for each test have been verified by
inspection and are stored in subdirectory golden-output.

* case1

Test the case statement.

* conditional_entry_call1

Tests the conditional entry call statement.

* empty_package_body

Tests a package body without a statement part.

* goto1

Tests the goto statement, including forward and backward references.

* handler1

Checks successor of last statement in an exception handler.

* if1

Tests the if statement.

* loop1

Tests the loop and exit statements.

* raise1

Simple test with a single frame.  Checks that raised exception is directed 
to the appropriate handler in the frame or is propagated.

* raise2

Tests that raised exception is directed to the proper frame when raise occurs
in nested frames (i.e., within a block statement).  Frames whose execution is
within a handler should be skipped.

* raise3

Tests unnamed raise statements. Checks that raised exception is directed 
to the appropriate handler in the frame or is propagated.  Checks that
"when others => ... raise;" results in a dangling node.

* raise4

Tests use of renamed exceptions in raise statements and handler choices.
Renamed exceptions are "unwound" to the base exception name.

* return1

Tests the return statement.  See test task1 for returns within accept 
statements.

* sequence1

Tests simple statements that pass control to the next statement in the sequence.
(Delay statements are tested in time_entry_call1.)  Code statement is not
tested, since the test will not be portable across targets.  Since the
processing for a code statement is identical to that of other simple statements,
a test is unnecessary.

(The 'task' tests that follow test control flow features that are permitted
only within a task body.  A task body subunit is used for each test.)

* task1

Tests return statements within accepts.  Such returns cause the innermost
accept statement to be abandoned.

* task2

Tests all forms of the selective-wait statement.

* timed_entry_call1

Tests the timed entry call statement.
