home *** CD-ROM | disk | FTP | other *** search
/ Programmer's ROM - The Computer Language Library / programmersrom.iso / ada / metric / mccabe.tst < prev    next >
Encoding:
Text File  |  1988-05-03  |  55.2 KB  |  1,915 lines

  1. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  2. --checkout.com
  3. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  4. $ SET NOON
  5. $ DIFFERENCE EXCEPT.RPT;  ;1
  6. $ DIFFERENCE LABS.RPT;    ;1
  7. $ DIFFERENCE LABS2.RPT;   ;1
  8. $ DIFFERENCE LABS4.RPT;   ;1
  9. $ DIFFERENCE LABS5.RPT;   ;1
  10. $ DIFFERENCE LABS6.RPT;   ;1
  11. $ DIFFERENCE LOOP.RPT;    ;1
  12. $ DIFFERENCE MLABS.RPT;   ;1
  13. $ DIFFERENCE MLABS5.RPT;  ;1
  14. $ DIFFERENCE MLABS6.RPT;  ;1
  15. $ DIFFERENCE SELECT.RPT;  ;1
  16. $ DIFFERENCE SELECT1.RPT; ;1
  17. $ DIFFERENCE SELECT3.RPT; ;1
  18. $ DIFFERENCE TEST1.RPT;   ;1
  19. $ DIFFERENCE TEST10.RPT;  ;1
  20. $ DIFFERENCE TEST10A.RPT; ;1
  21. $ DIFFERENCE TEST11A.RPT; ;1
  22. $ DIFFERENCE TEST12.RPT;  ;1
  23. $ DIFFERENCE TEST13.RPT;  ;1
  24. $ DIFFERENCE TEST17.RPT;  ;1
  25. $ DIFFERENCE TEST18.RPT;  ;1
  26. $ DIFFERENCE TEST2.RPT;   ;1
  27. $ DIFFERENCE TEST21.RPT;  ;1
  28. $ DIFFERENCE TEST22.RPT;  ;1
  29. $ DIFFERENCE TEST23.RPT;  ;1
  30. $ DIFFERENCE TEST24.RPT;  ;1
  31. $ DIFFERENCE TEST3.RPT;   ;1
  32. $ DIFFERENCE TEST4.RPT;   ;1
  33. $ DIFFERENCE TEST5.RPT;   ;1
  34. $ DIFFERENCE TEST6.RPT;   ;1
  35. $ DIFFERENCE TEST7.RPT;   ;1
  36. $ DIFFERENCE TEST7A.RPT;  ;1
  37. $ DIFFERENCE TEST8.RPT;   ;1
  38. $ DIFFERENCE TEST9.RPT;   ;1
  39. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  40. --cleanup.com
  41. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  42. $ SET NOON
  43. $ DELETE/EXCLUDE=*.RPT;1 *.RPT;*
  44. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  45. --qcheck.com
  46. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  47. $ SET NOON
  48. $ DIFFERENCE EXCEPT.RPT;  ;1
  49. $ DIFFERENCE LABS.RPT;    ;1
  50. $ DIFFERENCE LABS2.RPT;   ;1
  51. $ DIFFERENCE LABS4.RPT;   ;1
  52. $ DIFFERENCE LABS5.RPT;   ;1
  53. $ DIFFERENCE LABS6.RPT;   ;1
  54. $ DIFFERENCE LOOP.RPT;    ;1
  55. $ DIFFERENCE MLABS.RPT;   ;1
  56. $ DIFFERENCE MLABS5.RPT;  ;1
  57. $ DIFFERENCE MLABS6.RPT;  ;1
  58. $ DIFFERENCE SELECT.RPT;  ;1
  59. $ DIFFERENCE SELECT1.RPT; ;1
  60. $ DIFFERENCE SELECT3.RPT; ;1
  61. $ DIFFERENCE TEST1.RPT;   ;1
  62. $ DIFFERENCE TEST10.RPT;  ;1
  63. $ DIFFERENCE TEST10A.RPT; ;1
  64. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  65. --qtest.com
  66. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  67. $ McCabe ("EXCEPT.TST",  "EXCEPT.RPT");
  68. $ McCabe ("LABS.TST",    "LABS.RPT");
  69. $ McCabe ("LABS2.TST",   "LABS2.RPT");
  70. $ McCabe ("LABS4.TST",   "LABS4.RPT");
  71. $ McCabe ("LABS5.TST",   "LABS5.RPT");
  72. $ McCabe ("LABS6.TST",   "LABS6.RPT");
  73. $ McCabe ("LOOP.TST",    "LOOP.RPT");
  74. $ McCabe ("MLABS.TST",   "MLABS.RPT");
  75. $ McCabe ("MLABS5.TST",  "MLABS5.RPT");
  76. $ McCabe ("MLABS6.TST",  "MLABS6.RPT");
  77. $ McCabe ("SELECT.TST",  "SELECT.RPT");
  78. $ McCabe ("SELECT1.TST", "SELECT1.RPT");
  79. $ McCabe ("SELECT3.TST", "SELECT3.RPT");
  80. $ McCabe ("TEST1.TST",   "TEST1.RPT");
  81. $ McCabe ("TEST10.TST",  "TEST10.RPT");
  82. $ McCabe ("TEST10A.TST", "TEST10A.RPT");
  83. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  84. --tmccabe.com
  85. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  86. $ mccabe :== $user1:[nosc.releases.v0301.mccabe]mccabe.exe
  87. $ McCabe ("EXCEPT.TST",  "EXCEPT.RPT");
  88. $ McCabe ("LABS.TST",    "LABS.RPT");
  89. $ McCabe ("LABS2.TST",   "LABS2.RPT");
  90. $ McCabe ("LABS4.TST",   "LABS4.RPT");
  91. $ McCabe ("LABS5.TST",   "LABS5.RPT");
  92. $ McCabe ("LABS6.TST",   "LABS6.RPT");
  93. $ McCabe ("LOOP.TST",    "LOOP.RPT");
  94. $ McCabe ("MLABS.TST",   "MLABS.RPT");
  95. $ McCabe ("MLABS5.TST",  "MLABS5.RPT");
  96. $ McCabe ("MLABS6.TST",  "MLABS6.RPT");
  97. $ McCabe ("SELECT.TST",  "SELECT.RPT");
  98. $ McCabe ("SELECT1.TST", "SELECT1.RPT");
  99. $ McCabe ("SELECT3.TST", "SELECT3.RPT");
  100. $ McCabe ("TEST1.TST",   "TEST1.RPT");
  101. $ McCabe ("TEST10.TST",  "TEST10.RPT");
  102. $ McCabe ("TEST10A.TST", "TEST10A.RPT");
  103. $ McCabe ("TEST11A.TST", "TEST11A.RPT");
  104. $ McCabe ("TEST12.TST",  "TEST12.RPT");
  105. $ McCabe ("TEST13.TST",  "TEST13.RPT");
  106. $ McCabe ("TEST17.TST",  "TEST17.RPT");
  107. $ McCabe ("TEST18.TST",  "TEST18.RPT");
  108. $ McCabe ("TEST2.TST",   "TEST2.RPT");
  109. $ McCabe ("TEST21.TST",  "TEST21.RPT");
  110. $ McCabe ("TEST22.TST",  "TEST22.RPT");
  111. $ McCabe ("TEST23.TST",  "TEST23.RPT");
  112. $ McCabe ("TEST24.TST",  "TEST24.RPT");
  113. $ McCabe ("TEST3.TST",   "TEST3.RPT");
  114. $ McCabe ("TEST4.TST",   "TEST4.RPT");
  115. $ McCabe ("TEST5.TST",   "TEST5.RPT");
  116. $ McCabe ("TEST6.TST",   "TEST6.RPT");
  117. $ McCabe ("TEST7.TST",   "TEST7.RPT");
  118. $ McCabe ("TEST7A.TST",  "TEST7A.RPT");
  119. $ McCabe ("TEST8.TST",   "TEST8.RPT");
  120. $ McCabe ("TEST9.TST",   "TEST9.RPT");
  121. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  122. --except.tst
  123. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  124. procedure test13 is
  125.   complaint : exception;
  126. begin
  127. --  if foo then
  128. --    raise complaint;
  129. --  else 
  130. --    raise;
  131. --  end if;
  132. null;
  133. exception
  134.   when complaint =>
  135.     y := 2;
  136.   when others =>
  137.     y := 1;
  138. end;
  139. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  140. --labs.tst
  141. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  142. -- B83A01A-AB.ADA
  143.  
  144.  
  145. -- CHECK THAT A STATEMENT LABEL INSIDE A LOOP OR BLOCK BODY CANNOT BE 
  146. --    THE SAME AS A STATEMENT LABEL OUTSIDE THESE CONSTRUCTS WHEN ALL 
  147. --    LABELS ARE INSIDE THE SAME SUBPROGRAM.
  148.  
  149. -- RM 02/05/80
  150.  
  151.  
  152. PROCEDURE  B83A01A  IS
  153.  
  154. BEGIN
  155.  
  156.      << LAB_OUTSIDE_INBLOCK >>                NULL ;
  157.      << LAB_OUTSIDE_INLOOP >>                 NULL ;
  158.      << LAB_OUTSIDE_INBLOCKLOOP >>            NULL ;
  159.  
  160.      BEGIN
  161.  
  162.           << LAB_OUTSIDE_INBLOCK >>           NULL ;  -- ERROR: DUPLIC.
  163.           << LAB_INBLOCK_INLOOP >>            NULL ;
  164.           << LAB_INBLOCK_INBLOCKLOOP >>       NULL ;
  165.  
  166.           FOR  I  IN  INTEGER  LOOP
  167.                << LAB_OUTSIDE_INBLOCKLOOP >>  NULL ;  -- ERROR: DUPLIC.
  168.                << LAB_INBLOCK_INBLOCKLOOP >>  NULL ;  -- ERROR: DUPLIC.
  169.                << LAB_INLOOP_INBLOCKLOOP >>   NULL ;
  170.           END LOOP;
  171.  
  172.      END ;
  173.  
  174.      FOR  I  IN  INTEGER  LOOP
  175.           << LAB_OUTSIDE_INLOOP >>            NULL ;  -- ERROR: DUPLIC.
  176.           << LAB_INBLOCK_INLOOP >>            NULL ;  -- ERROR: DUPLIC.
  177.           << LAB_INLOOP_INBLOCKLOOP >>        NULL ;  -- ERROR: DUPLIC.
  178.      END LOOP;
  179.  
  180.  
  181. END B83A01A ;
  182. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  183. --labs2.tst
  184. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  185. -- B83A01C.ADA
  186.  
  187.  
  188. -- CHECK THAT A STATEMENT LABEL INSIDE AN ACCEPT STATEMENT CANNOT BE
  189. --    THE SAME AS A STATEMENT LABEL OUTSIDE IT.
  190.  
  191.  
  192. -- RM 02/05/80
  193.  
  194.  
  195. PROCEDURE  B83A01C  IS
  196.  
  197.      TASK  TASK1  IS
  198.           ENTRY  E1 ;
  199.           ENTRY  E2 ;
  200.      END  TASK1 ;
  201.  
  202.      TASK BODY  TASK1  IS
  203.      BEGIN
  204.  
  205.           << LAB_OUTSIDE_INACCEPT >>             NULL ;
  206.  
  207.           BEGIN
  208.  
  209.                << LAB_INBLOCK_INACCEPT >>        NULL ;
  210.  
  211.                FOR  I  IN  1..2  LOOP
  212.                     << LAB_INBLOCKLOOP_INACCEPT>>NULL ;
  213.                END LOOP;
  214.  
  215.           END ;
  216.  
  217.           FOR  I  IN  INTEGER  LOOP
  218.                << LAB_INLOOP_INACCEPT >>         NULL ;
  219.           END LOOP;
  220.  
  221.           <<L1>> null;
  222.           if I = 2 then
  223.                I := 7;
  224.       else
  225.                goto L;
  226.           end if;
  227.           goto L1;
  228.           <<L>> null;
  229.      
  230.           ACCEPT  E1  DO
  231.                << LAB_OUTSIDE_INACCEPT >>        NULL ;-- ERROR: DUPLIC.
  232.                << LAB_INBLOCK_INACCEPT >>        NULL ;-- ERROR: DUPLIC.
  233.                << LAB_INBLOCKLOOP_INACCEPT>>     NULL ;-- ERROR: DUPLIC.
  234.                << LAB_INLOOP_INACCEPT >>         NULL ;-- ERROR: DUPLIC.
  235.                << LAB_INACCEPT_INACCEPT >>       NULL ;
  236.           END  E1 ;
  237.  
  238.           ACCEPT  E2  DO
  239.                << LAB_INACCEPT_INACCEPT >>       NULL ;-- ERROR: DUPLIC.
  240.           END  E2 ;
  241.  
  242.      END  TASK1 ;
  243.  
  244. BEGIN
  245.  
  246.           <<L1>> null;
  247.           if I = 2 then
  248.                I := 7;
  249.       else
  250.                goto L;
  251.           end if;
  252.           goto L1;
  253.           <<L>> null;
  254.  
  255.      NULL ;
  256.  
  257. END B83A01C ;
  258. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  259. --labs4.tst
  260. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  261. -- C83F03B.ADA
  262.  
  263.  
  264. -- CHECK THAT IF A PACKAGE BODY IS NESTED INSIDE ANOTHER PACKAGE BODY
  265. --    THE INNER PACKAGE BODY CAN CONTAIN A LABEL IDENTIFIER IDENTICAL
  266. --    TO A LABEL IDENTIFIER IN THE OUTER PACKAGE BODY, TO AN IDENTI-
  267. --    FIER DECLARED IN THE OUTER PACKAGE BODY OR IN ITS SPECIFICATION,
  268. --    OR TO A LABEL IDENTIFIER OR OTHER IDENTIFIER IN THE
  269. --    ENVIRONMENT SURROUNDING THE OUTER PACKAGE BODY.
  270.  
  271.  
  272. -- INTERACTIONS WITH SEPARATE COMPILATION ARE TESTED IN  C83F03C ,
  273. --    C83F03D .
  274.  
  275.  
  276. --    RM    04 SEPTEMBER 1980
  277.  
  278.  
  279. WITH REPORT;
  280. PROCEDURE  C83F03B  IS
  281.  
  282.      USE REPORT;
  283.  
  284.      X1 , X2 : INTEGER RANGE 1..23 := 17 ;
  285.  
  286.      TYPE  T1  IS  ( A , B , C) ;
  287.  
  288.      Z : T1 := A ;
  289.  
  290.      FLOW_INDEX : INTEGER := 0 ;
  291.  
  292. BEGIN
  293.  
  294.      TEST( "C83F03B" , "CHECK THAT IF A PACKAGE BODY IS NESTED" &
  295.                        " INSIDE ANOTHER PACKAGE BODY, THE INNER" &
  296.                        " PACKAGE BODY CAN CONTAIN A LABEL IDENTIFIER" &
  297.                        " IDENTICAL TO A LABEL IDENTIFIER IN THE OUTER" &
  298.                        " PACKAGE BODY, TO AN IDENTIFIER DECLARED IN" &
  299.                        " THE OUTER PACKAGE BODY OR IN ITS SPECIFICA" &
  300.                        "TION, OR TO A LABEL IDENTIFIER OR OTHER" &
  301.                        " IDENTIFIER IN THE ENVIRONMENT SURROUNDING" &
  302.                        " THE OUTER PACKAGE BODY" ) ;
  303.  
  304.  
  305.      DECLARE
  306.  
  307.  
  308.           Y1 , Y2 : INTEGER := 100 ;
  309.  
  310.           X2 : INTEGER := 100 ;
  311.  
  312.  
  313.           PROCEDURE  BUMP  IS
  314.           BEGIN
  315.                FLOW_INDEX := FLOW_INDEX + 1 ;
  316.           END BUMP ;
  317.  
  318.  
  319.           PACKAGE  OUTER  IS
  320.  
  321.                Y3 : INTEGER := 100 ;
  322.  
  323.                TYPE  T3  IS  ( D , E , F ) ;
  324.  
  325.                PACKAGE  P  IS
  326.                     AA : BOOLEAN := FALSE ;
  327.                END  P ;
  328.  
  329.           END  OUTER ;
  330.  
  331.  
  332.           PACKAGE BODY  OUTER  IS
  333.  
  334.                Y4 : INTEGER := 200 ;
  335.  
  336.                TYPE  T4  IS  ( G , H , I ) ;
  337.  
  338.                PACKAGE BODY  P  IS
  339.                BEGIN
  340.  
  341.  
  342.                     GOTO  X1 ;
  343.  
  344.                     BUMP ;
  345.                     BUMP ;
  346.  
  347.                     <<X1>>   BUMP ;  GOTO  X2 ;
  348.                     BUMP ;
  349.                     <<T1>>   BUMP ;  GOTO  Z ;
  350.                     BUMP ;
  351.                     <<Y1>>   BUMP ;  GOTO  Y2 ;
  352.                     BUMP ;
  353.                     <<Y2>>   BUMP ;  GOTO  T1 ;
  354.                     BUMP ;
  355.                     <<X2>>   BUMP ;  GOTO  Y1 ;
  356.                     BUMP ;
  357.                     <<Z >>   BUMP ;  GOTO  T3 ;
  358.                     BUMP ;
  359.                     <<T3>>   BUMP ;  GOTO  T4 ;
  360.                     BUMP ;
  361.                     <<LABEL_IN_OUTER>>   BUMP ;  GOTO  LABEL_IN_MAIN ;
  362.                     BUMP ;
  363.                     <<Y3>>   BUMP ;  GOTO  Y4 ;
  364.                     BUMP ;
  365.                     <<Y4>>   BUMP ;  GOTO  LABEL_IN_OUTER ;
  366.                     BUMP ;
  367.                     <<T4>>   BUMP ;  GOTO  Y3 ;
  368.                     BUMP ;
  369.                     <<LABEL_IN_MAIN >>   BUMP ;  GOTO  ENDING ;
  370.                     BUMP ;
  371.  
  372.                     << ENDING >>  NULL;
  373.  
  374.                END P ;
  375.  
  376.           BEGIN
  377.  
  378.                << LABEL_IN_OUTER >>  NULL ;
  379.  
  380.           END OUTER ;
  381.  
  382.  
  383.      BEGIN
  384.  
  385.           << LABEL_IN_MAIN >>
  386.  
  387.           IF  FLOW_INDEX /= 12
  388.           THEN  FAILED( "INCORRECT FLOW OF CONTROL" );
  389.           END IF;
  390.  
  391.      END ;
  392.  
  393.  
  394.      RESULT;   --  POSS. ERROR DURING ELABORATION OF  P
  395.  
  396. END C83F03B;
  397. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  398. --labs5.tst
  399. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  400. -- B83A01C.ADA
  401.  
  402.  
  403. -- CHECK THAT A STATEMENT LABEL INSIDE AN ACCEPT STATEMENT CANNOT BE
  404. --    THE SAME AS A STATEMENT LABEL OUTSIDE IT.
  405.  
  406.  
  407. -- RM 02/05/80
  408.  
  409.  
  410. PROCEDURE  B83A01C  IS
  411.  
  412.      TASK  TASK1  IS
  413.           ENTRY  E1 ;
  414.           ENTRY  E2 ;
  415.      END  TASK1 ;
  416.  
  417.      TASK BODY  TASK1  IS
  418.      BEGIN
  419.  
  420.  
  421.           <<L1>> null;
  422.           if I = 2 then
  423.                I := 7;
  424.       else
  425.                goto L;
  426.           end if;
  427.           goto L1;
  428.           <<L>> null;
  429.  
  430.      END  TASK1 ;
  431.  
  432. BEGIN
  433.  
  434.           <<L1>> null;
  435.           if I = 2 then
  436.                I := 7;
  437.       else
  438.                goto L;
  439.           end if;
  440.           goto L1;
  441.           <<L>> null;
  442.  
  443.      NULL ;
  444.  
  445. END B83A01C ;
  446. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  447. --labs6.tst
  448. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  449. -- B83A01C.ADA
  450.  
  451.  
  452. -- CHECK THAT A STATEMENT LABEL INSIDE AN ACCEPT STATEMENT CANNOT BE
  453. --    THE SAME AS A STATEMENT LABEL OUTSIDE IT.
  454.  
  455.  
  456. -- RM 02/05/80
  457.  
  458.  
  459. PROCEDURE  B83A01C  IS
  460.  
  461. BEGIN
  462.  
  463.           <<l1>> null;
  464.           if I = 2 then
  465.                I := 7;
  466.       else
  467.                goto l;
  468.           end if;
  469.           goto L1;
  470.           <<L>> null;
  471.  
  472.      NULL ;
  473.  
  474. END B83A01C ;
  475. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  476. --loop.tst
  477. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  478. -- C940BBA-B.ADA
  479.  
  480. -- CHECK THAT A TASK WAITING AT AN OPEN TERMINATE ALTERNATIVE
  481. -- DOES  N O T  TERMINATE UNTIL ALL OTHER TASKS DEPENDING ON THE SAME
  482. -- UNIT EITHER ARE TERMINATED OR ARE WAITING AT AN OPEN TERMINATE.
  483.  
  484. -- WEI  3/ 4/82
  485.  
  486. WITH REPORT;
  487.  USE REPORT;
  488. PROCEDURE C940BBA IS
  489. BEGIN
  490.      TEST ("C940BBA", "TERMINATION WHILE WAITING AT AN OPEN TERMINATE");
  491.  
  492. BLOCK1 : 
  493.      DECLARE
  494.  
  495.           TASK TYPE TT1 IS
  496.                ENTRY E1;
  497.           END TT1;
  498.  
  499.           NUMB_TT1 : CONSTANT NATURAL := 3;
  500.           DELAY_TIME : DURATION := 0.0;
  501.           ARRAY_TT1 : ARRAY (1 .. NUMB_TT1) OF TT1;
  502.  
  503.           TASK BODY TT1 IS
  504.           BEGIN
  505.                DELAY_TIME := DELAY_TIME + 1.0;
  506.                DELAY DELAY_TIME;
  507.                FOR I IN 1 .. NUMB_TT1
  508.                LOOP 
  509.                     IF ARRAY_TT1 (I)'TERMINATED THEN
  510.                          FAILED ("TOO EARLY TERMINATION OF " &
  511.                                  "TASK TT1 INDEX" & INTEGER'IMAGE(I));
  512.                     END IF;
  513.                END LOOP;
  514.  
  515.                SELECT
  516.                     WHEN TRUE => TERMINATE;
  517.                  OR WHEN FALSE => ACCEPT E1;
  518.                END SELECT;
  519.           END TT1;
  520.  
  521.      BEGIN  -- BLOCK1.
  522.           FOR I IN 1 .. NUMB_TT1
  523.           LOOP 
  524.                IF ARRAY_TT1 (I)'TERMINATED THEN
  525.                     FAILED ("TERMINATION BEFORE OUTER " &
  526.                             "UNIT HAS BEEN LEFT OF TASK TT1 INDEX " &
  527.                             INTEGER'IMAGE(I));
  528.                END IF;
  529.           END LOOP;
  530.      END BLOCK1;
  531.  
  532.      RESULT;
  533.  
  534. END C940BBA;
  535. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  536. --mlabs.tst
  537. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  538. -- C83F03C1.ADA
  539.  
  540.  
  541. -- SEPARATELY COMPILED PACKAGE FOR USE WITH  C83F03C2M
  542.  
  543. -- THIS PACKAGE IS A FULL-FLEDGED COMPILATION UNIT (AS OPPOSED TO
  544. --    BEING A SUBUNIT; SUBUNITS ARE TESTED IN  C83F03D0M ,
  545. --    C83F03D1 ). THE PRESENT FILE CONTAINS THE BODY OF THE PACKAGE.
  546.  
  547. -- FOR THIS FILE, THE FILE NAME AND THE UNIT NAME ARE NOT THE SAME.
  548.  
  549.  
  550. --    RM    05 SEPTEMBER 1980
  551.  
  552.  
  553. PACKAGE BODY  C83F03C0  IS
  554.  
  555.      Y4 : INTEGER := 200 ;
  556.  
  557.      TYPE  T4  IS  ( G , H , I ) ;
  558.  
  559.      PROCEDURE  BUMP  IS
  560.      BEGIN
  561.           FLOW_INDEX := FLOW_INDEX + 1 ;
  562.      END BUMP ;
  563.  
  564.      PACKAGE BODY  P  IS
  565.      BEGIN
  566.  
  567.           GOTO  T3 ;
  568.  
  569.           BUMP ;
  570.           BUMP ;
  571.  
  572.           <<T3>>   BUMP ;  GOTO  T4 ;
  573.           BUMP ;
  574.           <<LABEL_IN_OUTER>>   BUMP ;  GOTO  ENDING ;
  575.           BUMP ;
  576.           <<Y3>>   BUMP ;  GOTO  Y4 ;
  577.           BUMP ;
  578.           <<Y4>>   BUMP ;  GOTO  LABEL_IN_OUTER ;
  579.           BUMP ;
  580.           <<T4>>   BUMP ;  GOTO  Y3 ;
  581.           BUMP ;
  582.  
  583.           << ENDING >>  NULL;
  584.  
  585.      END P ;
  586.  
  587. BEGIN
  588.  
  589.      << LABEL_IN_OUTER >>  NULL ;
  590.  
  591. END  C83F03C0 ;
  592. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  593. --mlabs5.tst
  594. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  595. -- A83A02A.ADA
  596.  
  597.  
  598. -- CHECK THAT A LABEL IN A NESTED SUBPROGRAM OR PACKAGE CAN BE IDENTICAL
  599. --    TO A LABEL OUTSIDE SUCH CONSTRUCT.  
  600.  
  601.  
  602. -- "INSIDE LABEL":  INSIDE   * PACKAGE                    _PACK        A
  603. --                           * FUNCTION INSIDE PACKAGE    _PACKFUN     B
  604. --                           * PROCEDURE                  _PROC        C
  605. --                           * PROCEDURE INSIDE BLOCK     _BLOCKPROC   D
  606.  
  607. -- "OUTSIDE LABEL": INSIDE   * MAIN                       _MAIN        1
  608. --                           * BLOCK IN MAIN              _BLOCK       2
  609. --                           * LOOP IN BLOCK IN MAIN      _BLOCKLOOP   3
  610. --                           * LOOP IN MAIN               _LOOP        4
  611.  
  612. -- CASES TESTED:  A1  B2  A3  B4                           1 2 3 4
  613. --                D1  C2  C3  D4
  614. --                    D2          AB                  A    X . X .
  615. --                                                    B    . X . X
  616. --                                                    C    . X X .
  617. --                                                    D    X . . X
  618.   
  619.  
  620. -- RM 02/09/80
  621.  
  622.  
  623. WITH REPORT ;
  624. PROCEDURE  A83A02A  IS
  625.  
  626.      USE REPORT ;
  627.  
  628.      PROCEDURE  PROC1  IS
  629.      BEGIN
  630.           << LAB_PROC_BLOCK >>                NULL ;    -- C2   C       
  631.           << LAB_PROC_BLOCKLOOP >>            NULL ;    -- C3
  632.      END  PROC1 ;
  633.  
  634.      PACKAGE  PACK1  IS
  635.           FUNCTION  F  RETURN INTEGER ;
  636.      END  PACK1 ;
  637.  
  638.      PACKAGE BODY  PACK1  IS
  639.           FUNCTION  F  RETURN INTEGER  IS
  640.           BEGIN
  641.                << LAB_PACKFUN_BLOCK >>        NULL ;    -- B2    B
  642.                << LAB_PACKFUN_LOOP >>         NULL ;    -- B4
  643.                << LAB_PACKFUN_PACK >>         NULL ;    -- BA (AB)
  644.                RETURN 7 ;
  645.           END  F ;
  646.      BEGIN
  647.           << LAB_PACK_MAIN >>                 NULL ;    -- A1    A
  648.           << LAB_PACK_BLOCKLOOP >>            NULL ;    -- A3
  649.           << LAB_PACKFUN_PACK >>              NULL ;    -- BA (AB)
  650.      END  PACK1 ;
  651.  
  652. BEGIN                                                       
  653.  
  654.      TEST( "A83A02A" , "CHECK THAT A LABEL IN A NESTED SUBPROGRAM" &
  655.                        " OR PACKAGE CAN BE IDENTICAL TO A LABEL"   &
  656.                        " OUTSIDE SUCH CONSTRUCT" );
  657.  
  658.      << LAB_PACK_MAIN >>                      NULL ;    -- A1          1
  659.      << LAB_BLOCKPROC_MAIN >>                 NULL ;    -- D1
  660.  
  661.  
  662.      DECLARE  -- 
  663.  
  664.           PROCEDURE  PROC2  IS
  665.           BEGIN
  666.                << LAB_BLOCKPROC_MAIN >>       NULL ;    -- D1    D
  667.                << LAB_BLOCKPROC_LOOP >>       NULL ;    -- D4
  668.                << LAB_BLOCKPROC_BLOCK >>      NULL ;    -- D2
  669.           END  PROC2 ;
  670.  
  671.      BEGIN
  672.  
  673.           << LAB_PACKFUN_BLOCK >>             NULL ;    -- B2          2
  674.           << LAB_PROC_BLOCK >>                NULL ;    -- C2
  675.           << LAB_BLOCKPROC_BLOCK >>           NULL ;    -- D2
  676.  
  677.           FOR  I  IN  1..2  LOOP
  678.                << LAB_PACK_BLOCKLOOP >>       NULL ;    -- A3          3
  679.                << LAB_PROC_BLOCKLOOP >>       NULL ;    -- C3
  680.           END LOOP;
  681.  
  682.      END ;
  683.  
  684.      FOR  I  IN  1..2  LOOP
  685.           << LAB_PACKFUN_LOOP >>              NULL ;    -- B4          4
  686.           << LAB_BLOCKPROC_LOOP >>            NULL ;    -- D4
  687.      END LOOP;
  688.  
  689.  
  690.      RESULT ;
  691.  
  692.  
  693. END A83A02A ;
  694.  
  695.  
  696. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  697. --mlabs6.tst
  698. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  699. -- A83A02B.ADA
  700.  
  701.  
  702. -- CHECK THAT A LABEL IN A NESTED TASK CAN BE IDENTICAL TO A LABEL
  703. --    OUTSIDE THE TASK.  
  704.  
  705.  
  706. -- "INSIDE LABEL":  INSIDE   * TASK BODY                  _TASK        A
  707. --                           * BLOCK IN TASK BODY         _TASKBLOCK   B
  708. --                           * LOOP IN BLOCK IN TASK BODY _TASKBLOCKLOOP
  709. --                           * ACCEPT ST. WITHIN TASK BDY _TASKACCEPT  D
  710.  
  711. -- "OUTSIDE LABEL": INSIDE   * MAIN                       _MAIN        1
  712. --                           * BLOCK IN MAIN              _BLOCK       2
  713. --                           * LOOP IN BLOCK IN MAIN      _BLOCKLOOP   3
  714. --                           * LOOP IN MAIN               _LOOP        4
  715.  
  716. -- CASES TESTED:  A1  B2  A3  B4                        |  1 2 3 4
  717. --                D1  C2  C3  D4                     ---+----------
  718. --                                                    A |  X . X .
  719. --                                                    B |  . X . X
  720. --                                                    C |  . X X .
  721. --                                                    D |  X . . X
  722.   
  723.  
  724. -- RM 02/10/80
  725.  
  726.  
  727. WITH REPORT ;
  728. PROCEDURE  A83A02B  IS
  729.  
  730.      USE REPORT ;
  731.  
  732.      TASK TYPE  TASK1  IS
  733.           ENTRY  E1 ;
  734.      END  TASK1 ;
  735.  
  736.      TASK BODY  TASK1  IS
  737.      BEGIN
  738.  
  739.           << LAB_TASK_MAIN >>                    NULL ;  -- A1    A
  740.           << LAB_TASK_BLOCKLOOP >>               NULL ;  -- A3
  741.  
  742.           BEGIN
  743.  
  744.                << LAB_TASKBLOCK_BLOCK >>         NULL ;  -- B2    B
  745.                << LAB_TASKBLOCK_LOOP >>          NULL ;  -- B4
  746.  
  747.                FOR  I  IN  1..2  LOOP
  748.                     << LAB_TASKBLOCKLOOP_BLOCK >>NULL ;  -- C2    C
  749.                     << LAB_TASKBLOCKLOOP_BLOCKLOOP >>
  750.                                                  NULL ;  -- C3        
  751.                END LOOP;
  752.  
  753.           END ;
  754.  
  755.           ACCEPT  E1  DO
  756.                << LAB_TASKACCEPT_MAIN >>         NULL ;  -- D1    D
  757.                << LAB_TASKACCEPT_LOOP >>         NULL ;  -- D4
  758.           END  E1 ;
  759.  
  760.      END  TASK1 ;
  761.  
  762. BEGIN                                                       
  763.  
  764.      TEST( "A83A02B" , "CHECK THAT A LABEL IN A NESTED TASK" &
  765.                        " CAN BE IDENTICAL TO A LABEL"   &
  766.                        " OUTSIDE THE TASK" );
  767.  
  768.      << LAB_TASK_MAIN >>                         NULL ;  -- A1         1
  769.      << LAB_TASKACCEPT_MAIN >>                   NULL ;  -- D1
  770.  
  771.  
  772.      BEGIN
  773.  
  774.           << LAB_TASKBLOCK_BLOCK >>              NULL ;  -- B2         2
  775.           << LAB_TASKBLOCKLOOP_BLOCK >>          NULL ;  -- C2
  776.  
  777.           FOR  I  IN  1..2  LOOP
  778.                << LAB_TASK_BLOCKLOOP >>          NULL ;  -- A3         3
  779.                << LAB_TASKBLOCKLOOP_BLOCKLOOP >> NULL ;  -- C3
  780.           END LOOP;
  781.  
  782.      END ;
  783.  
  784.      FOR  I  IN  1..2  LOOP
  785.           << LAB_TASKBLOCK_LOOP >>               NULL ;  -- B4         4
  786.           << LAB_TASKACCEPT_LOOP >>              NULL ;  -- D4
  787.      END LOOP;
  788.  
  789.  
  790.      RESULT ;
  791.  
  792.  
  793. END A83A02B ;
  794.  
  795.  
  796. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  797. --select.tst
  798. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  799. -- C9A009D-B.ADA
  800.  
  801. -- TEST ABORT DURING RENDEZVOUS
  802.  
  803. -- CALLING TASK IN RENDEVOUS IS NAMED IN ABORT STATEMENT.
  804.  
  805. -- JEAN-PIERRE ROSEN 09 MARCH 1984
  806. -- JBG 6/1/84
  807.  
  808. WITH SYSTEM; USE SYSTEM;
  809. WITH REPORT; USE REPORT;
  810. PROCEDURE C9A009D IS
  811.  
  812. BEGIN 
  813.  
  814.      TEST("C9A009D", "CALLING TASK IS ABORTED DIRECTLY");
  815.  
  816.      DECLARE
  817.      -- T1 CALLS T2, WHICH ABORTS T1 WHILE IN RENDEVOUS
  818.  
  819.           T2_CONTINUED : BOOLEAN := FALSE;
  820.  
  821.           TASK CONTINUED IS
  822.                ENTRY GET (T2_CONTINUED : OUT BOOLEAN);
  823.                ENTRY PUT (T2_CONTINUED : IN  BOOLEAN);
  824.           END CONTINUED;
  825.  
  826.           TASK BODY CONTINUED IS
  827.                CONTINUED : BOOLEAN := FALSE;
  828.           BEGIN
  829.                LOOP
  830.                     SELECT
  831.                          ACCEPT GET (T2_CONTINUED : OUT BOOLEAN) DO
  832.                               T2_CONTINUED := CONTINUED;
  833.                          END GET;
  834.                     OR
  835.                          ACCEPT PUT (T2_CONTINUED : IN BOOLEAN) DO
  836.                               CONTINUED := T2_CONTINUED;
  837.                          END PUT;
  838.                     OR
  839.                          TERMINATE;
  840.                     END SELECT;
  841.                END LOOP;
  842.           END CONTINUED;
  843.  
  844.      BEGIN     -- THIS BLOCK WILL MAKE SURE T2 IS TERMINATED, AND SO,
  845.                -- T2_CONTINUED IS ASSIGNED A VALUE IF T2 CONTINUES
  846.                -- EXECUTION CORRECTLY.
  847.  
  848.           DECLARE
  849.  
  850.                TASK T1;
  851.  
  852.                TASK T2 IS
  853.                     ENTRY E1;
  854.                END T2;
  855.  
  856.                TASK BODY T1 IS
  857.                BEGIN
  858.                     T2.E1;
  859.                     FAILED ("T1 NOT ABORTED");
  860.                EXCEPTION
  861.                     WHEN TASKING_ERROR =>
  862.                          FAILED ("TASKING_ERROR RAISED IN T1");
  863.                     WHEN OTHERS =>
  864.                          FAILED ("OTHER EXCEPTION RAISED - T1");
  865.                END T1;
  866.  
  867.                TASK BODY T2 IS
  868.                BEGIN
  869.                     ACCEPT E1 DO
  870.                          ABORT T1;
  871.                          ABORT T1;
  872.                          ABORT T1; -- WHY NOT?
  873.                          IF T1'TERMINATED THEN
  874.                               FAILED ("T1 PREMATURELY TERMINATED");
  875.                          END IF;
  876.                     END E1;
  877.                     CONTINUED.PUT (T2_CONTINUED => TRUE);
  878.                END T2;
  879.           BEGIN
  880.                NULL;
  881.           END;
  882.      -- T2 NOW TERMINATED
  883.           CONTINUED.GET (T2_CONTINUED);
  884.           IF NOT T2_CONTINUED THEN
  885.                FAILED ("WHEN CALLER WAS ABORTED IN RENDEVOUS, CALLED " &
  886.                        "TASK DID NOT CONTINUE");
  887.           END IF;
  888.      END;
  889.  
  890.      RESULT;
  891.  
  892. END C9A009D;
  893. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  894. --select1.tst
  895. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  896. -- A97106A-AB.ADA
  897.  
  898.  
  899. -- CHECK THAT A SELECTIVE_WAIT MAY HAVE MORE THAN ONE  'DELAY'  ALTER-
  900. --    NATIVE.
  901.  
  902.  
  903. -- RM 4/27/1982
  904.  
  905.  
  906. WITH REPORT;
  907. USE REPORT;
  908. PROCEDURE  A97106A  IS
  909.  
  910.  
  911. BEGIN
  912.  
  913.  
  914.      TEST ( "A97106A" , "CHECK THAT A SELECTIVE_WAIT MAY HAVE" &
  915.                         " MORE THAN ONE  'DELAY'  ALTERNATIVE" );
  916.  
  917.      -------------------------------------------------------------------
  918.  
  919.  
  920.      DECLARE
  921.  
  922.  
  923.           TASK TYPE  TT  IS
  924.                ENTRY  A ;
  925.           END  TT ;
  926.  
  927.  
  928.           TASK BODY  TT  IS
  929.                DUMMY : BOOLEAN := FALSE ;
  930.           BEGIN
  931.                SELECT
  932.                          ACCEPT  A ;
  933.                OR
  934.                          DELAY 2.5 ;
  935.                OR
  936.                          terminate;
  937.                END SELECT ;
  938.           END  TT ;
  939.  
  940.      BEGIN
  941.           NULL ;
  942.      END ;
  943.  
  944.      -------------------------------------------------------------------
  945.  
  946.  
  947.      RESULT;
  948.  
  949.  
  950. END  A97106A ;
  951. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  952. --select3.tst
  953. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  954. -- A97106A-AB.ADA
  955.  
  956.  
  957. -- CHECK THAT A SELECTIVE_WAIT MAY HAVE MORE THAN ONE  'DELAY'  ALTER-
  958. --    NATIVE.
  959.  
  960.  
  961. -- RM 4/27/1982
  962.  
  963.  
  964. WITH REPORT;
  965. USE REPORT;
  966. PROCEDURE  A97106A  IS
  967.  
  968.  
  969. BEGIN
  970.  
  971.  
  972.      TEST ( "A97106A" , "CHECK THAT A SELECTIVE_WAIT MAY HAVE" &
  973.                         " MORE THAN ONE  'DELAY'  ALTERNATIVE" );
  974.  
  975.      -------------------------------------------------------------------
  976.  
  977.  
  978.      DECLARE
  979.  
  980.  
  981.           TASK TYPE  TT  IS
  982.                ENTRY  A ;
  983.           END  TT ;
  984.  
  985.  
  986.           TASK BODY  TT  IS
  987.                DUMMY : BOOLEAN := FALSE ;
  988.           BEGIN
  989.                loop
  990.                SELECT
  991.                          ACCEPT  A ;
  992.                OR
  993.                          DELAY 2.5 ;
  994.                OR
  995.                          ACCEPT  A ;
  996.                OR
  997.                          ACCEPT  A ;
  998.                OR
  999.                          DELAY 2.5 ;  -- MULTIPLE 'DELAY'S PERMITTED (IF
  1000.                OR                     --     AND ONLY IF SINGLE 'DELAY'S
  1001.                          DELAY 2.5 ;  --     ARE PERMITTED).
  1002.                OR
  1003.                          ACCEPT  A ;
  1004.                END SELECT ;
  1005.                end loop; 
  1006.           END  TT ;
  1007.  
  1008.      BEGIN
  1009.           NULL ;
  1010.      END ;
  1011.  
  1012.      -------------------------------------------------------------------
  1013.  
  1014.  
  1015.      RESULT;
  1016.  
  1017.  
  1018. END  A97106A ;
  1019. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1020. --test1.tst
  1021. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1022. procedure Null_Proc is
  1023.     begin
  1024.         null;
  1025.     end Null_Proc;
  1026. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1027. --test2.tst
  1028. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1029. procedure test2 is
  1030.     x : integer;
  1031.     y : integer;
  1032. begin
  1033.     x := 1;
  1034.     y := 2;
  1035.     x := x + y;
  1036. end test2;
  1037. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1038. --test3.tst
  1039. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1040. procedure test3 is
  1041.  
  1042.     begin
  1043.         x := 1;
  1044.         if x = 1 then
  1045.             x := 2;
  1046.         end if;
  1047.     end;
  1048. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1049. --test4.tst
  1050. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1051. procedure test4 is
  1052.  
  1053.     begin
  1054.         x := 1;
  1055.         if x = 1 then
  1056.             x := 2;
  1057.         else
  1058.             x := 3;
  1059.         end if;
  1060.     end;
  1061. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1062. --test5.tst
  1063. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1064. procedure test5 is
  1065.         x : integer;
  1066.     begin
  1067.         x := 1;
  1068.         if x = 1 then
  1069.             x := 2;
  1070.         elsif x = 3 then
  1071.             x :=4;
  1072.         else
  1073.             x := 3;
  1074.         end if;
  1075.     end;
  1076. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1077. --test6.tst
  1078. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1079. procedure test6 is
  1080.  
  1081.     begin
  1082.         case x is
  1083.             when y => foo;
  1084.             when z => bar;
  1085.         end case;
  1086.     end;
  1087. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1088. --test7.tst
  1089. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1090. procedure test7 is
  1091.     begin
  1092.         for i in 1..2 loop
  1093.             foo;
  1094.         end loop;
  1095.     end;
  1096.  
  1097. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1098. --test7a.tst
  1099. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1100.  procedure test7a is
  1101.     begin
  1102.         for i in 1..2 loop
  1103.             if x then
  1104.                 exit;
  1105.             end if;
  1106.         end loop;
  1107.     end;
  1108. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1109. --test8.tst
  1110. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1111. procedure test8 is
  1112.  
  1113.     begin
  1114.  
  1115.         x := 1;
  1116.  
  1117.         if x = 1 then
  1118.             x := 2;
  1119.         end if;
  1120.  
  1121.         x := 1;
  1122.  
  1123.         if x = 1 then
  1124.             x := 2;
  1125.         else
  1126.             x := 3;
  1127.         end if;
  1128.  
  1129.         case x is
  1130.             when y => foo;
  1131.             when z => bar;
  1132.         end case;
  1133.  
  1134.         for i in 1..2 loop
  1135.             foo;
  1136.         end loop;
  1137.  
  1138.     end;
  1139. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1140. --test9.tst
  1141. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1142. procedure test9 is
  1143.  
  1144.     begin
  1145.  
  1146.          if x then
  1147.             return;
  1148.          else
  1149.             return;
  1150.          end if;
  1151.  
  1152.     end;
  1153. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1154. --test10.tst
  1155. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1156. procedure test10 is
  1157.  
  1158.     begin
  1159.  
  1160.         ffo;
  1161.     <<x>> bar;
  1162.         if x then
  1163.             z := 1;
  1164.         else
  1165.             goto y;
  1166.         end if;
  1167.          goto x;
  1168.     <<y>> 
  1169.         if foo then
  1170.             bar;
  1171.         end if;
  1172.     end;
  1173. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1174. --test10a.tst
  1175. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1176. procedure test10 is
  1177.  
  1178.     begin
  1179.  
  1180.         ffo;
  1181.     <<lab>> <<x>> bar;
  1182.         if x then
  1183.             z := 1;
  1184.         else
  1185.             goto y;
  1186.         end if;
  1187.          goto x;
  1188.     <<y>> 
  1189.         if foo then
  1190.             bar;
  1191.         end if;
  1192.         goto lab;
  1193.     end;
  1194. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1195. --test11a.tst
  1196. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1197. procedure test11 is
  1198. begin
  1199.     foo;
  1200.     loop
  1201.         bar;
  1202.         exit when zilch;
  1203.         if x then foobar; end if;
  1204.     end loop;
  1205. end;    
  1206. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1207. --test12.tst
  1208. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1209. procedure test12 is
  1210. begin
  1211.     foo: loop
  1212.         xys;
  1213.         for i in 1..2 loop
  1214.             xyz;
  1215.             exit foo when zilch;
  1216.         end loop;
  1217.         if bar then
  1218.             exit;
  1219.         end if;
  1220.     end loop foo;
  1221. end;
  1222. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1223. --test13.tst
  1224. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1225. procedure test13 is
  1226.   complaint : exception;
  1227. begin
  1228.   if foo then
  1229.     raise complaint;
  1230.   else 
  1231.     raise;
  1232.   end if;
  1233. exception
  1234.   when complaint =>
  1235.     y := 2;
  1236.   when others =>
  1237.     y := 1;
  1238. end;
  1239. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1240. --test17.tst
  1241. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1242. -- A97106A-AB.ADA
  1243.  
  1244.  
  1245. -- CHECK THAT A SELECTIVE_WAIT MAY HAVE MORE THAN ONE  'DELAY'  ALTER-
  1246. --    NATIVE.
  1247.  
  1248.  
  1249. -- RM 4/27/1982
  1250.  
  1251.  
  1252. WITH REPORT;
  1253. USE REPORT;
  1254. PROCEDURE  A97106A  IS
  1255.  
  1256.  
  1257. BEGIN
  1258.  
  1259.  
  1260.      TEST ( "A97106A" , "CHECK THAT A SELECTIVE_WAIT MAY HAVE" &
  1261.                         " MORE THAN ONE  'DELAY'  ALTERNATIVE" );
  1262.  
  1263.      -------------------------------------------------------------------
  1264.  
  1265.  
  1266.      DECLARE
  1267.  
  1268.  
  1269.           TASK TYPE  TT  IS
  1270.                ENTRY  A ;
  1271.           END  TT ;
  1272.  
  1273.  
  1274.           TASK BODY  TT  IS
  1275.                DUMMY : BOOLEAN := FALSE ;
  1276.           BEGIN
  1277.  
  1278.                SELECT
  1279.                          foo;
  1280.                or
  1281.                          DELAY 2.5 ;
  1282.                END SELECT ;
  1283.  
  1284.           END  TT ;
  1285.  
  1286.      BEGIN
  1287.           NULL ;
  1288.      END ;
  1289.  
  1290.      -------------------------------------------------------------------
  1291.  
  1292.  
  1293.      RESULT;
  1294.  
  1295.  
  1296. END  A97106A ;
  1297. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1298. --test18.tst
  1299. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1300.  
  1301. WITH REPORT;
  1302. USE REPORT;
  1303. PROCEDURE  A97106A  IS
  1304.  
  1305. BEGIN
  1306.  
  1307.      TEST ( "A97106A" , "CHECK THAT A SELECTIVE_WAIT MAY HAVE" &
  1308.                         " MORE THAN ONE  'DELAY'  ALTERNATIVE" );
  1309.  
  1310.      DECLARE
  1311.  
  1312.           TASK TYPE  TT  IS
  1313.                ENTRY  A ;
  1314.           END  TT ;
  1315.  
  1316.           TASK BODY  TT  IS
  1317.                DUMMY : BOOLEAN := FALSE ;
  1318.           BEGIN
  1319.  
  1320.                SELECT
  1321.                          foo;
  1322.                else
  1323.                          bar; 
  1324.                          zilch;
  1325.                END SELECT ;
  1326.  
  1327.           END  TT ;
  1328.  
  1329.      BEGIN
  1330.           NULL ;
  1331.      END ;
  1332.  
  1333.      -------------------------------------------------------------------
  1334.  
  1335.  
  1336.      RESULT;
  1337.  
  1338.  
  1339. END  A97106A ;
  1340. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1341. --test21.tst
  1342. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1343. procedure test4 is
  1344.  
  1345.     begin
  1346.         x := 1;
  1347.         if x = 1 then
  1348.             x := 2;
  1349.         else
  1350.             if X = 2 then
  1351.                 X := 2;
  1352.             else
  1353.                 X := 3;
  1354.             end if;
  1355.         end if;
  1356.     end;
  1357. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1358. --test22.tst
  1359. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1360. procedure test4 is
  1361.  
  1362.     begin
  1363.         x := 1;
  1364.         if x = 1 then
  1365.             x := 2;
  1366.             case X is
  1367.                when 3 => X := 7;
  1368.                when 4 => X := 8;
  1369.             end case;
  1370.         else
  1371.             if X = 2 then
  1372.                 X := 2;
  1373.             else
  1374.                 X := 3;
  1375.             end if;
  1376.         end if;
  1377.     end;
  1378. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1379. --test23.tst
  1380. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1381. procedure test11 is
  1382. begin
  1383.     foo;
  1384.     loop
  1385.         bar;
  1386.         if x then zilch; end if;
  1387.     end loop;
  1388. end;    
  1389. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1390. --test24.tst
  1391. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1392. procedure test11 is
  1393. begin
  1394.     foo;
  1395.     loop
  1396.         bar;
  1397.     end loop;
  1398. end;    
  1399. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1400. --except.rpt
  1401. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1402.  
  1403. MCCABE                                             01/23/86  04:30:19   Page   1
  1404.  
  1405. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE EXCEPT.TST - with MAX_COMPLEXITY  20
  1406.  
  1407.       COMPLEXITY      NUMBER OF
  1408.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1409.  
  1410.          3             8      7        test13
  1411.  
  1412.          3             8      7        Total for 1 program units
  1413. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1414. --labs.rpt
  1415. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1416.  
  1417. MCCABE                                             01/23/86  04:30:29   Page   1
  1418.  
  1419. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE LABS.TST - with MAX_COMPLEXITY  20
  1420.  
  1421.       COMPLEXITY      NUMBER OF
  1422.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1423.  
  1424.          9            29     22        B83A01A
  1425.  
  1426.          9            29     22        Total for 1 program units
  1427. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1428. --labs2.rpt
  1429. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1430.  
  1431. MCCABE                                             01/23/86  04:30:39   Page   1
  1432.  
  1433. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE LABS2.TST - with MAX_COMPLEXITY  20
  1434.  
  1435.       COMPLEXITY      NUMBER OF
  1436.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1437.  
  1438.          9            35     28        B83A01C.TASK1
  1439.  
  1440.          2             9      9        B83A01C
  1441.  
  1442.         11            44     37        Total for 2 program units
  1443. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1444. --labs4.rpt
  1445. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1446.  
  1447. MCCABE                                             01/23/86  04:30:53   Page   1
  1448.  
  1449. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE LABS4.TST - with MAX_COMPLEXITY  20
  1450.  
  1451.       COMPLEXITY      NUMBER OF
  1452.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1453.  
  1454.          1             0      1        C83F03B.BUMP
  1455.  
  1456.          1            39     40        C83F03B.OUTER.P
  1457.  
  1458.          1             1      2        C83F03B.OUTER
  1459.  
  1460.          2             5      5        C83F03B
  1461.  
  1462.          5            45     48        Total for 4 program units
  1463. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1464. --labs5.rpt
  1465. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1466.  
  1467. MCCABE                                             01/23/86  04:31:08   Page   1
  1468.  
  1469. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE LABS5.TST - with MAX_COMPLEXITY  20
  1470.  
  1471.       COMPLEXITY      NUMBER OF
  1472.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1473.  
  1474.          2             9      9        B83A01C.TASK1
  1475.  
  1476.          2             9      9        B83A01C
  1477.  
  1478.          4            18     18        Total for 2 program units
  1479. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1480. --labs6.rpt
  1481. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1482.  
  1483. MCCABE                                             01/23/86  04:31:19   Page   1
  1484.  
  1485. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE LABS6.TST - with MAX_COMPLEXITY  20
  1486.  
  1487.       COMPLEXITY      NUMBER OF
  1488.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1489.  
  1490.          2             9      9        B83A01C
  1491.  
  1492.          2             9      9        Total for 1 program units
  1493. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1494. --loop.rpt
  1495. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1496.  
  1497. MCCABE                                             01/23/86  04:31:30   Page   1
  1498.  
  1499. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE LOOP.TST - with MAX_COMPLEXITY  20
  1500.  
  1501.       COMPLEXITY      NUMBER OF
  1502.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1503.  
  1504.          5            18     15        C940BBA.TT1
  1505.  
  1506.          3             7      6        C940BBA
  1507.  
  1508.          8            25     21        Total for 2 program units
  1509. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1510. --mlabs.rpt
  1511. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1512.  
  1513. MCCABE                                             01/23/86  04:31:41   Page   1
  1514.  
  1515. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE MLABS.TST - with MAX_COMPLEXITY  20
  1516.  
  1517.       COMPLEXITY      NUMBER OF
  1518.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1519.  
  1520.          1             0      1        C83F03C0.BUMP
  1521.  
  1522.          1            18     19        C83F03C0.P
  1523.  
  1524.          1             1      2        C83F03C0
  1525.  
  1526.          3            19     22        Total for 3 program units
  1527. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1528. --mlabs5.rpt
  1529. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1530.  
  1531. MCCABE                                             01/23/86  04:31:51   Page   1
  1532.  
  1533. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE MLABS5.TST - with MAX_COMPLEXITY  20
  1534.  
  1535.       COMPLEXITY      NUMBER OF
  1536.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1537.  
  1538.          1             3      4        A83A02A.PROC1
  1539.  
  1540.          1             5      6        A83A02A.PACK1.F
  1541.  
  1542.          1             5      6        A83A02A.PACK1
  1543.  
  1544.          1             5      6        A83A02A.PROC2
  1545.  
  1546.          3            23     22        A83A02A
  1547.  
  1548.          7            41     44        Total for 5 program units
  1549. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1550. --mlabs6.rpt
  1551. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1552.  
  1553. MCCABE                                             01/23/86  04:32:03   Page   1
  1554.  
  1555. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE MLABS6.TST - with MAX_COMPLEXITY  20
  1556.  
  1557.       COMPLEXITY      NUMBER OF
  1558.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1559.  
  1560.          2            18     18        A83A02B.TASK1
  1561.  
  1562.          3            21     20        A83A02B
  1563.  
  1564.          5            39     38        Total for 2 program units
  1565. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1566. --select.rpt
  1567. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1568.  
  1569. MCCABE                                             01/23/86  04:32:14   Page   1
  1570.  
  1571. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE SELECT.TST - with MAX_COMPLEXITY  20
  1572.  
  1573.       COMPLEXITY      NUMBER OF
  1574.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1575.  
  1576.          5            17     14        C9A009D.CONTINUED
  1577.  
  1578.          3             8      7        C9A009D.T1
  1579.  
  1580.          2             6      6        C9A009D.T2
  1581.  
  1582.          2             6      6        C9A009D
  1583.  
  1584.         12            37     33        Total for 4 program units
  1585. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1586. --select1.rpt
  1587. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1588.  
  1589. MCCABE                                             01/23/86  04:32:25   Page   1
  1590.  
  1591. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE SELECT1.TST - with MAX_COMPLEXITY  20
  1592.  
  1593.       COMPLEXITY      NUMBER OF
  1594.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1595.  
  1596.          4            13     11        A97106A.TT
  1597.  
  1598.          1             0      1        A97106A
  1599.  
  1600.          5            13     12        Total for 2 program units
  1601. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1602. --select3.rpt
  1603. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1604.  
  1605. MCCABE                                             01/23/86  04:32:35   Page   1
  1606.  
  1607. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE SELECT3.TST - with MAX_COMPLEXITY  20
  1608.  
  1609.       COMPLEXITY      NUMBER OF
  1610.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1611.  
  1612.          9            35     28        A97106A.TT
  1613.  
  1614.          1             0      1        A97106A
  1615.  
  1616.         10            35     29        Total for 2 program units
  1617. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1618. --test1.rpt
  1619. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1620.  
  1621. MCCABE                                             01/23/86  04:32:44   Page   1
  1622.  
  1623. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE TEST1.TST - with MAX_COMPLEXITY  20
  1624.  
  1625.       COMPLEXITY      NUMBER OF
  1626.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1627.  
  1628.          1             0      1        Null_Proc
  1629.  
  1630.          1             0      1        Total for 1 program units
  1631. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1632. --test2.rpt
  1633. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1634.  
  1635. MCCABE                                             01/23/86  04:33:56   Page   1
  1636.  
  1637. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE TEST2.TST - with MAX_COMPLEXITY  20
  1638.  
  1639.       COMPLEXITY      NUMBER OF
  1640.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1641.  
  1642.          1             0      1        test2
  1643.  
  1644.          1             0      1        Total for 1 program units
  1645. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1646. --test3.rpt
  1647. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1648.  
  1649. MCCABE                                             01/23/86  04:34:42   Page   1
  1650.  
  1651. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE TEST3.TST - with MAX_COMPLEXITY  20
  1652.  
  1653.       COMPLEXITY      NUMBER OF
  1654.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1655.  
  1656.          2             4      4        test3
  1657.  
  1658.          2             4      4        Total for 1 program units
  1659. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1660. --test4.rpt
  1661. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1662.  
  1663. MCCABE                                             01/23/86  04:34:50   Page   1
  1664.  
  1665. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE TEST4.TST - with MAX_COMPLEXITY  20
  1666.  
  1667.       COMPLEXITY      NUMBER OF
  1668.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1669.  
  1670.          2             4      4        test4
  1671.  
  1672.          2             4      4        Total for 1 program units
  1673. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1674. --test5.rpt
  1675. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1676.  
  1677. MCCABE                                             01/23/86  04:34:59   Page   1
  1678.  
  1679. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE TEST5.TST - with MAX_COMPLEXITY  20
  1680.  
  1681.       COMPLEXITY      NUMBER OF
  1682.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1683.  
  1684.          3             8      7        test5
  1685.  
  1686.          3             8      7        Total for 1 program units
  1687. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1688. --test6.rpt
  1689. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1690.  
  1691. MCCABE                                             01/23/86  04:35:15   Page   1
  1692.  
  1693. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE TEST6.TST - with MAX_COMPLEXITY  20
  1694.  
  1695.       COMPLEXITY      NUMBER OF
  1696.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1697.  
  1698.          2             6      6        test6
  1699.  
  1700.          2             6      6        Total for 1 program units
  1701. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1702. --test7.rpt
  1703. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1704.  
  1705. MCCABE                                             01/23/86  04:35:24   Page   1
  1706.  
  1707. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE TEST7.TST - with MAX_COMPLEXITY  20
  1708.  
  1709.       COMPLEXITY      NUMBER OF
  1710.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1711.  
  1712.          2             3      3        test7
  1713.  
  1714.          2             3      3        Total for 1 program units
  1715. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1716. --test7a.rpt
  1717. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1718.  
  1719. MCCABE                                             01/23/86  04:35:33   Page   1
  1720.  
  1721. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE TEST7A.TST - with MAX_COMPLEXITY  20
  1722.  
  1723.       COMPLEXITY      NUMBER OF
  1724.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1725.  
  1726.          3             7      6        test7a
  1727.  
  1728.          3             7      6        Total for 1 program units
  1729. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1730. --test8.rpt
  1731. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1732.  
  1733. MCCABE                                             01/23/86  04:35:43   Page   1
  1734.  
  1735. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE TEST8.TST - with MAX_COMPLEXITY  20
  1736.  
  1737.       COMPLEXITY      NUMBER OF
  1738.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1739.  
  1740.          5            20     17        test8
  1741.  
  1742.          5            20     17        Total for 1 program units
  1743. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1744. --test9.rpt
  1745. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1746.  
  1747. MCCABE                                             01/23/86  04:35:53   Page   1
  1748.  
  1749. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE TEST9.TST - with MAX_COMPLEXITY  20
  1750.  
  1751.       COMPLEXITY      NUMBER OF
  1752.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1753.  
  1754.          2             4      4        test9
  1755.  
  1756.          2             4      4        Total for 1 program units
  1757. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1758. --test10.rpt
  1759. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1760.  
  1761. MCCABE                                             01/23/86  04:32:52   Page   1
  1762.  
  1763. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE TEST10.TST - with MAX_COMPLEXITY  20
  1764.  
  1765.       COMPLEXITY      NUMBER OF
  1766.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1767.  
  1768.          3            13     12        test10
  1769.  
  1770.          3            13     12        Total for 1 program units
  1771. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1772. --test10a.rpt
  1773. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1774.  
  1775. MCCABE                                             01/23/86  04:33:01   Page   1
  1776.  
  1777. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE TEST10A.TST - with MAX_COMPLEXITY  20
  1778.  
  1779.       COMPLEXITY      NUMBER OF
  1780.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1781.  
  1782.          4            16     14        test10
  1783.  
  1784.          4            16     14        Total for 1 program units
  1785. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1786. --test11a.rpt
  1787. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1788.  
  1789. MCCABE                                             01/23/86  04:33:11   Page   1
  1790.  
  1791. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE TEST11A.TST - with MAX_COMPLEXITY  20
  1792.  
  1793.       COMPLEXITY      NUMBER OF
  1794.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1795.  
  1796.          3             8      7        test11
  1797.  
  1798.          3             8      7        Total for 1 program units
  1799. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1800. --test12.rpt
  1801. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1802.  
  1803. MCCABE                                             01/23/86  04:33:19   Page   1
  1804.  
  1805. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE TEST12.TST - with MAX_COMPLEXITY  20
  1806.  
  1807.       COMPLEXITY      NUMBER OF
  1808.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1809.  
  1810.          4            11      9        test12
  1811.  
  1812.          4            11      9        Total for 1 program units
  1813. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1814. --test13.rpt
  1815. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1816.  
  1817. MCCABE                                             01/23/86  04:33:29   Page   1
  1818.  
  1819. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE TEST13.TST - with MAX_COMPLEXITY  20
  1820.  
  1821.       COMPLEXITY      NUMBER OF
  1822.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1823.  
  1824.          4            12     10        test13
  1825.  
  1826.          4            12     10        Total for 1 program units
  1827. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1828. --test17.rpt
  1829. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1830.  
  1831. MCCABE                                             01/23/86  04:33:37   Page   1
  1832.  
  1833. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE TEST17.TST - with MAX_COMPLEXITY  20
  1834.  
  1835.       COMPLEXITY      NUMBER OF
  1836.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1837.  
  1838.          2             4      4        A97106A.TT
  1839.  
  1840.          1             0      1        A97106A
  1841.  
  1842.          3             4      5        Total for 2 program units
  1843. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1844. --test18.rpt
  1845. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1846.  
  1847. MCCABE                                             01/23/86  04:33:47   Page   1
  1848.  
  1849. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE TEST18.TST - with MAX_COMPLEXITY  20
  1850.  
  1851.       COMPLEXITY      NUMBER OF
  1852.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1853.  
  1854.          2             4      4        A97106A.TT
  1855.  
  1856.          1             0      1        A97106A
  1857.  
  1858.          3             4      5        Total for 2 program units
  1859. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1860. --test21.rpt
  1861. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1862.  
  1863. MCCABE                                             01/23/86  04:34:05   Page   1
  1864.  
  1865. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE TEST21.TST - with MAX_COMPLEXITY  20
  1866.  
  1867.       COMPLEXITY      NUMBER OF
  1868.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1869.  
  1870.          3             8      7        test4
  1871.  
  1872.          3             8      7        Total for 1 program units
  1873. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1874. --test22.rpt
  1875. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1876.  
  1877. MCCABE                                             01/23/86  04:34:14   Page   1
  1878.  
  1879. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE TEST22.TST - with MAX_COMPLEXITY  20
  1880.  
  1881.       COMPLEXITY      NUMBER OF
  1882.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1883.  
  1884.          4            14     12        test4
  1885.  
  1886.          4            14     12        Total for 1 program units
  1887. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1888. --test23.rpt
  1889. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1890.  
  1891. MCCABE                                             01/23/86  04:34:24   Page   1
  1892.  
  1893. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE TEST23.TST - with MAX_COMPLEXITY  20
  1894.  
  1895.       COMPLEXITY      NUMBER OF
  1896.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1897.  
  1898.          3             7      6        test11
  1899.  
  1900.          3             7      6        Total for 1 program units
  1901. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1902. --test24.rpt
  1903. --::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  1904.  
  1905. MCCABE                                             01/23/86  04:34:33   Page   1
  1906.  
  1907. MCCABE CYCLOMATIC COMPLEXITY:  SOURCE_FILE TEST24.TST - with MAX_COMPLEXITY  20
  1908.  
  1909.       COMPLEXITY      NUMBER OF
  1910.       CYCLOMATIC     EDGES  NODES   SUBPROGRAM NAME
  1911.  
  1912.          2             3      3        test11
  1913.  
  1914.          2             3      3        Total for 1 program units
  1915.