OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [ada/] [acats/] [tests/] [ca/] [ca11022.a] - Diff between revs 294 and 338

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

Rev 294 Rev 338
-- CA11022.A
-- CA11022.A
--
--
--                             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.
--*
--*
--
--
-- OBJECTIVE:
-- OBJECTIVE:
--      Check that body of a child unit can instantiate its generic sibling.
--      Check that body of a child unit can instantiate its generic sibling.
--
--
-- TEST DESCRIPTION:
-- TEST DESCRIPTION:
--      Declare a package that provides some types for the graphic
--      Declare a package that provides some types for the graphic
--      application.  Add a generic child package with a subprogram parameter
--      application.  Add a generic child package with a subprogram parameter
--      to provide algorithms that can be used by different terminal types
--      to provide algorithms that can be used by different terminal types
--      but that have to be customized to the specific terminal. Add child
--      but that have to be customized to the specific terminal. Add child
--      packages to take advantage of the parent types and to provide a
--      packages to take advantage of the parent types and to provide a
--      customized operation for each of the different terminals.  The
--      customized operation for each of the different terminals.  The
--      customized operation will be passed as a generic subprogram parameter
--      customized operation will be passed as a generic subprogram parameter
--      to the child package's sibling.
--      to the child package's sibling.
--
--
--      The main program "with"s the child packages.  Check that the
--      The main program "with"s the child packages.  Check that the
--      operations in child units perform as expected.
--      operations in child units perform as expected.
--
--
--
--
-- CHANGE HISTORY:
-- CHANGE HISTORY:
--      06 Dec 94   SAIC    ACVC 2.0
--      06 Dec 94   SAIC    ACVC 2.0
--
--
--!
--!
package CA11022_0 is    -- Graphic Manager
package CA11022_0 is    -- Graphic Manager
   type Row is range 1 .. 66;
   type Row is range 1 .. 66;
   type Column is range 1 .. 80;
   type Column is range 1 .. 80;
   type Radius is range 1 .. 3;
   type Radius is range 1 .. 3;
   type Length is range 5 .. 10;
   type Length is range 5 .. 10;
   -- Testing artifice.
   -- Testing artifice.
   TC_Screen : array (Row, Column) of boolean := (others => (others => false));
   TC_Screen : array (Row, Column) of boolean := (others => (others => false));
   TC_Draw_Circle : boolean := false;
   TC_Draw_Circle : boolean := false;
   TC_Draw_Square : boolean := false;
   TC_Draw_Square : boolean := false;
   -- ... and other complicated ones.
   -- ... and other complicated ones.
end CA11022_0;
end CA11022_0;
-- No bodies required for CA11022_0.
-- No bodies required for CA11022_0.
     --==================================================================--
     --==================================================================--
-- Child package to provide general graphic functionalities.
-- Child package to provide general graphic functionalities.
generic
generic
   with procedure Put_Dot (X : in Column;
   with procedure Put_Dot (X : in Column;
                           Y : in Row);
                           Y : in Row);
package CA11022_0.CA11022_1 is
package CA11022_0.CA11022_1 is
   procedure Draw_Square (At_Col : in Column;
   procedure Draw_Square (At_Col : in Column;
                          At_Row : in Row;
                          At_Row : in Row;
                          Len    : in Length);
                          Len    : in Length);
   procedure Draw_Circle (At_Col : in Column;
   procedure Draw_Circle (At_Col : in Column;
                          At_Row : in Row;
                          At_Row : in Row;
                          Rad    : in Radius);
                          Rad    : in Radius);
   -- procedure Draw_Ellipse ...
   -- procedure Draw_Ellipse ...
   -- and other drawings ...
   -- and other drawings ...
end CA11022_0.CA11022_1;
end CA11022_0.CA11022_1;
     --==================================================================--
     --==================================================================--
package body CA11022_0.CA11022_1 is
package body CA11022_0.CA11022_1 is
   procedure Draw_Square (At_Col : in Column;
   procedure Draw_Square (At_Col : in Column;
                          At_Row : in Row;
                          At_Row : in Row;
                          Len    : in Length) is
                          Len    : in Length) is
   begin
   begin
      -- use square drawing algorithm
      -- use square drawing algorithm
      -- call
      -- call
      Put_Dot (At_Col + Column (Len), At_Row + Row(Len));
      Put_Dot (At_Col + Column (Len), At_Row + Row(Len));
      -- as needed in the algorithm.
      -- as needed in the algorithm.
      TC_Draw_Square := true;
      TC_Draw_Square := true;
   end Draw_Square;
   end Draw_Square;
   -------------------------------------------------------
   -------------------------------------------------------
   procedure Draw_Circle (At_Col : in Column;
   procedure Draw_Circle (At_Col : in Column;
                          At_Row : in Row;
                          At_Row : in Row;
                          Rad    : in Radius) is
                          Rad    : in Radius) is
   begin
   begin
      -- use circle drawing algorithm
      -- use circle drawing algorithm
      -- call
      -- call
      for I in 1 .. Rad loop
      for I in 1 .. Rad loop
         Put_Dot (At_Col + Column(I), At_Row + Row(I));
         Put_Dot (At_Col + Column(I), At_Row + Row(I));
      end loop;
      end loop;
      -- as needed in the algorithm.
      -- as needed in the algorithm.
      TC_Draw_Circle := true;
      TC_Draw_Circle := true;
   end Draw_Circle;
   end Draw_Circle;
end CA11022_0.CA11022_1;
end CA11022_0.CA11022_1;
     --==================================================================--
     --==================================================================--
with CA11022_0.CA11022_1;                -- Generic sibling.
with CA11022_0.CA11022_1;                -- Generic sibling.
-- Child package to provide customized graphic functions for the
-- Child package to provide customized graphic functions for the
-- VT100.
-- VT100.
package CA11022_0.CA11022_2 is           -- VT100 Graphic.
package CA11022_0.CA11022_2 is           -- VT100 Graphic.
   X : Column := 8;
   X : Column := 8;
   Y : Row    := 3;
   Y : Row    := 3;
   R : Radius := 2;
   R : Radius := 2;
   L : Length := 6;
   L : Length := 6;
   procedure VT100_Graphic;
   procedure VT100_Graphic;
end CA11022_0.CA11022_2;
end CA11022_0.CA11022_2;
     --==================================================================--
     --==================================================================--
package body CA11022_0.CA11022_2 is
package body CA11022_0.CA11022_2 is
   procedure VT100_Graphic is
   procedure VT100_Graphic is
      procedure VT100_Putdot (X : in Column;
      procedure VT100_Putdot (X : in Column;
                              Y : in Row) is
                              Y : in Row) is
      begin
      begin
         -- Light a pixel at location (X, Y);
         -- Light a pixel at location (X, Y);
         TC_Screen (Y, X) := true;
         TC_Screen (Y, X) := true;
      end VT100_Putdot;
      end VT100_Putdot;
                  ------------------------------------
                  ------------------------------------
      -- Declare instance of the generic sibling package to draw a circle,
      -- Declare instance of the generic sibling package to draw a circle,
      -- a square, or an ellipse customized for the VT100.
      -- a square, or an ellipse customized for the VT100.
      package VT100_Graphic is new CA11022_0.CA11022_1 (VT100_Putdot);
      package VT100_Graphic is new CA11022_0.CA11022_1 (VT100_Putdot);
   begin
   begin
      VT100_Graphic.Draw_Circle (X, Y, R);
      VT100_Graphic.Draw_Circle (X, Y, R);
      VT100_Graphic.Draw_Square (X, Y, L);
      VT100_Graphic.Draw_Square (X, Y, L);
   end VT100_Graphic;
   end VT100_Graphic;
end CA11022_0.CA11022_2;
end CA11022_0.CA11022_2;
     --==================================================================--
     --==================================================================--
with CA11022_0.CA11022_1;                -- Generic sibling.
with CA11022_0.CA11022_1;                -- Generic sibling.
-- Child package to provide customized graphic functions for the
-- Child package to provide customized graphic functions for the
-- IBM3270.
-- IBM3270.
package CA11022_0.CA11022_3 is           -- IBM3270 Graphic.
package CA11022_0.CA11022_3 is           -- IBM3270 Graphic.
   X : Column := 39;
   X : Column := 39;
   Y : Row    := 11;
   Y : Row    := 11;
   R : Radius := 3;
   R : Radius := 3;
   L : Length := 7;
   L : Length := 7;
   procedure IBM3270_Graphic;
   procedure IBM3270_Graphic;
end CA11022_0.CA11022_3;
end CA11022_0.CA11022_3;
     --==================================================================--
     --==================================================================--
package body CA11022_0.CA11022_3 is
package body CA11022_0.CA11022_3 is
   procedure IBM3270_Graphic is
   procedure IBM3270_Graphic is
      procedure IBM3270_Putdot (X : in Column;
      procedure IBM3270_Putdot (X : in Column;
                             Y : in Row) is
                             Y : in Row) is
      begin
      begin
         -- Light a pixel at location (X + 2, Y);
         -- Light a pixel at location (X + 2, Y);
         TC_Screen (Y, X + Column(2)) := true;
         TC_Screen (Y, X + Column(2)) := true;
      end IBM3270_Putdot;
      end IBM3270_Putdot;
                  ------------------------------------
                  ------------------------------------
      -- Declare instance of the generic sibling package to draw a circle,
      -- Declare instance of the generic sibling package to draw a circle,
      -- a square, or an ellipse customized for the IBM3270.
      -- a square, or an ellipse customized for the IBM3270.
      package IBM3270_Graphic is new CA11022_0.CA11022_1 (IBM3270_Putdot);
      package IBM3270_Graphic is new CA11022_0.CA11022_1 (IBM3270_Putdot);
   begin
   begin
      IBM3270_Graphic.Draw_Circle (X, Y, R);
      IBM3270_Graphic.Draw_Circle (X, Y, R);
      IBM3270_Graphic.Draw_Square (X, Y, L);
      IBM3270_Graphic.Draw_Square (X, Y, L);
   end IBM3270_Graphic;
   end IBM3270_Graphic;
end CA11022_0.CA11022_3;
end CA11022_0.CA11022_3;
     --==================================================================--
     --==================================================================--
with CA11022_0.CA11022_2;              -- VT100 Graphic, implicitly with
with CA11022_0.CA11022_2;              -- VT100 Graphic, implicitly with
                                       -- CA11022_0, Graphic Manager.
                                       -- CA11022_0, Graphic Manager.
with CA11022_0.CA11022_3;              -- IBM3270 Graphic.
with CA11022_0.CA11022_3;              -- IBM3270 Graphic.
with Report;
with Report;
procedure CA11022 is
procedure CA11022 is
begin
begin
   Report.Test ("CA11022", "Check that body of a child unit can depend on " &
   Report.Test ("CA11022", "Check that body of a child unit can depend on " &
                "its generic sibling");
                "its generic sibling");
   -- Customized graphic functions for the VT100 terminal.
   -- Customized graphic functions for the VT100 terminal.
   CA11022_0.CA11022_2.VT100_Graphic;
   CA11022_0.CA11022_2.VT100_Graphic;
   if not CA11022_0.TC_Screen (4,9) and not CA11022_0.TC_Screen (5,10)
   if not CA11022_0.TC_Screen (4,9) and not CA11022_0.TC_Screen (5,10)
     and not CA11022_0.TC_Screen (9,14) and not CA11022_0.TC_Draw_Circle
     and not CA11022_0.TC_Screen (9,14) and not CA11022_0.TC_Draw_Circle
       and not CA11022_0.TC_Draw_Square then
       and not CA11022_0.TC_Draw_Square then
          Report.Failed ("Wrong results for the VT100");
          Report.Failed ("Wrong results for the VT100");
   end if;
   end if;
   CA11022_0.TC_Draw_Circle := false;
   CA11022_0.TC_Draw_Circle := false;
   CA11022_0.TC_Draw_Square := false;
   CA11022_0.TC_Draw_Square := false;
   -- Customized graphic functions for the IBM3270 terminal.
   -- Customized graphic functions for the IBM3270 terminal.
   CA11022_0.CA11022_3.IBM3270_Graphic;
   CA11022_0.CA11022_3.IBM3270_Graphic;
   if not CA11022_0.TC_Screen (12,42) and not CA11022_0.TC_Screen (13,43)
   if not CA11022_0.TC_Screen (12,42) and not CA11022_0.TC_Screen (13,43)
     and not CA11022_0.TC_Screen (14,44) and not CA11022_0.TC_Screen (46,18)
     and not CA11022_0.TC_Screen (14,44) and not CA11022_0.TC_Screen (46,18)
       and not CA11022_0.TC_Draw_Circle and not CA11022_0.TC_Draw_Square then
       and not CA11022_0.TC_Draw_Circle and not CA11022_0.TC_Draw_Square then
          Report.Failed ("Wrong results for the IBM3270");
          Report.Failed ("Wrong results for the IBM3270");
   end if;
   end if;
   Report.Result;
   Report.Result;
end CA11022;
end CA11022;
 
 

powered by: WebSVN 2.1.0

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