OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [testsuite/] [ada/] [acats/] [tests/] [c9/] [c95022b.ada] - Diff between revs 154 and 816

Only display areas with differences | Details | Blame | View Log

Rev 154 Rev 816
-- C95022B.ADA
-- C95022B.ADA
 
 
--                             Grant of Unlimited Rights
--                             Grant of Unlimited Rights
--
--
--     Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
--     Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
--     F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained 
--     F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained 
--     unlimited rights in the software and documentation contained herein.
--     unlimited rights in the software and documentation contained herein.
--     Unlimited rights are defined in DFAR 252.227-7013(a)(19).  By making 
--     Unlimited rights are defined in DFAR 252.227-7013(a)(19).  By making 
--     this public release, the Government intends to confer upon all 
--     this public release, the Government intends to confer upon all 
--     recipients unlimited rights  equal to those held by the Government.  
--     recipients unlimited rights  equal to those held by the Government.  
--     These rights include rights to use, duplicate, release or disclose the 
--     These rights include rights to use, duplicate, release or disclose the 
--     released technical data and computer software in whole or in part, in 
--     released technical data and computer software in whole or in part, in 
--     any manner and for any purpose whatsoever, and to have or permit others 
--     any manner and for any purpose whatsoever, and to have or permit others 
--     to do so.
--     to do so.
--
--
--                                    DISCLAIMER
--                                    DISCLAIMER
--
--
--     ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
--     ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
--     DISCLOSED ARE AS IS.  THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED 
--     DISCLOSED ARE AS IS.  THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED 
--     WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
--     WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
--     SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE 
--     SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE 
--     OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
--     OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
--     PARTICULAR PURPOSE OF SAID MATERIAL.
--     PARTICULAR PURPOSE OF SAID MATERIAL.
--*
--*
-- CHECK THAT IT IS POSSIBLE TO ACCEPT AN ENTRY CALL FROM INSIDE
-- CHECK THAT IT IS POSSIBLE TO ACCEPT AN ENTRY CALL FROM INSIDE
-- THE BODY OF AN ACCEPT STATEMENT.
-- THE BODY OF AN ACCEPT STATEMENT.
 
 
-- CHECK THE CASE OF ABORT DURING THE INNERMOST ACCEPT.
-- CHECK THE CASE OF ABORT DURING THE INNERMOST ACCEPT.
 
 
-- JEAN-PIERRE ROSEN 25-FEB-1984
-- JEAN-PIERRE ROSEN 25-FEB-1984
-- JBG 6/1/84
-- JBG 6/1/84
 
 
WITH REPORT; USE REPORT;
WITH REPORT; USE REPORT;
PROCEDURE C95022B IS
PROCEDURE C95022B IS
 
 
BEGIN
BEGIN
 
 
     TEST("C95022B", "CHECK THAT EMBEDDED RENDEZVOUS ARE PROCESSED " &
     TEST("C95022B", "CHECK THAT EMBEDDED RENDEZVOUS ARE PROCESSED " &
                     "CORRECTLY (ABORT CASE)");
                     "CORRECTLY (ABORT CASE)");
     DECLARE
     DECLARE
          TASK TYPE CLIENT IS
          TASK TYPE CLIENT IS
               ENTRY GET_ID (I : INTEGER);
               ENTRY GET_ID (I : INTEGER);
          END CLIENT;
          END CLIENT;
 
 
          T_ARR : ARRAY (1..4) OF CLIENT;
          T_ARR : ARRAY (1..4) OF CLIENT;
 
 
          TASK KILL IS
          TASK KILL IS
               ENTRY ME;
               ENTRY ME;
          END KILL;
          END KILL;
 
 
          TASK SERVER IS
          TASK SERVER IS
               ENTRY E1;
               ENTRY E1;
               ENTRY E2;
               ENTRY E2;
               ENTRY E3;
               ENTRY E3;
               ENTRY E4;
               ENTRY E4;
          END SERVER;
          END SERVER;
 
 
          TASK BODY SERVER IS
          TASK BODY SERVER IS
          BEGIN
          BEGIN
 
 
               ACCEPT E1 DO
               ACCEPT E1 DO
                    ACCEPT E2 DO
                    ACCEPT E2 DO
                         ACCEPT E3 DO
                         ACCEPT E3 DO
                              ACCEPT E4 DO
                              ACCEPT E4 DO
                                   KILL.ME;
                                   KILL.ME;
                                   E1;  -- WILL DEADLOCK UNTIL ABORT.
                                   E1;  -- WILL DEADLOCK UNTIL ABORT.
                              END E4;
                              END E4;
                         END E3;
                         END E3;
                    END E2;
                    END E2;
               END E1;
               END E1;
 
 
          END SERVER;
          END SERVER;
 
 
          TASK BODY KILL IS
          TASK BODY KILL IS
          BEGIN
          BEGIN
               ACCEPT ME;
               ACCEPT ME;
               ABORT SERVER;
               ABORT SERVER;
          END;
          END;
 
 
          TASK BODY CLIENT IS
          TASK BODY CLIENT IS
               ID : INTEGER;
               ID : INTEGER;
          BEGIN
          BEGIN
               ACCEPT GET_ID( I : INTEGER) DO
               ACCEPT GET_ID( I : INTEGER) DO
                    ID := I;
                    ID := I;
               END GET_ID;
               END GET_ID;
 
 
               CASE ID IS
               CASE ID IS
                    WHEN 1      => SERVER.E1;
                    WHEN 1      => SERVER.E1;
                    WHEN 2      => SERVER.E2;
                    WHEN 2      => SERVER.E2;
                    WHEN 3      => SERVER.E3;
                    WHEN 3      => SERVER.E3;
                    WHEN 4      => SERVER.E4;
                    WHEN 4      => SERVER.E4;
                    WHEN OTHERS => FAILED ("INCORRECT ID");
                    WHEN OTHERS => FAILED ("INCORRECT ID");
               END CASE;
               END CASE;
 
 
               FAILED ("TASKING_ERROR NOT RAISED IN CLIENT" &
               FAILED ("TASKING_ERROR NOT RAISED IN CLIENT" &
                       INTEGER'IMAGE(ID));
                       INTEGER'IMAGE(ID));
 
 
          EXCEPTION
          EXCEPTION
               WHEN TASKING_ERROR =>
               WHEN TASKING_ERROR =>
                    NULL;
                    NULL;
               WHEN OTHERS =>
               WHEN OTHERS =>
                    FAILED("EXCEPTION IN CLIENT" & INTEGER'IMAGE(ID));
                    FAILED("EXCEPTION IN CLIENT" & INTEGER'IMAGE(ID));
          END CLIENT;
          END CLIENT;
     BEGIN
     BEGIN
          FOR I IN 1 .. 4 LOOP
          FOR I IN 1 .. 4 LOOP
               T_ARR(I).GET_ID(I);
               T_ARR(I).GET_ID(I);
          END LOOP;
          END LOOP;
     END;
     END;
 
 
     RESULT;
     RESULT;
 
 
END C95022B;
END C95022B;
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.