aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/vests/vhdl-93/billowitch/compliant/tc522.vhd
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2013-12-20 04:48:54 +0100
committerTristan Gingold <tgingold@free.fr>2013-12-20 04:48:54 +0100
commit6c3f709174e8e4d5411f851cedb7d84c38d3b04a (patch)
treebd12c79c71a2ee65899a9ade9919ec2045addef8 /testsuite/vests/vhdl-93/billowitch/compliant/tc522.vhd
parentbd4aff0f670351c0652cf24e9b04361dc0e3a01c (diff)
downloadghdl-6c3f709174e8e4d5411f851cedb7d84c38d3b04a.tar.gz
ghdl-6c3f709174e8e4d5411f851cedb7d84c38d3b04a.tar.bz2
ghdl-6c3f709174e8e4d5411f851cedb7d84c38d3b04a.zip
Import vests testsuite
Diffstat (limited to 'testsuite/vests/vhdl-93/billowitch/compliant/tc522.vhd')
-rw-r--r--testsuite/vests/vhdl-93/billowitch/compliant/tc522.vhd217
1 files changed, 217 insertions, 0 deletions
diff --git a/testsuite/vests/vhdl-93/billowitch/compliant/tc522.vhd b/testsuite/vests/vhdl-93/billowitch/compliant/tc522.vhd
new file mode 100644
index 000000000..1226d5f33
--- /dev/null
+++ b/testsuite/vests/vhdl-93/billowitch/compliant/tc522.vhd
@@ -0,0 +1,217 @@
+
+-- Copyright (C) 2001 Bill Billowitch.
+
+-- Some of the work to develop this test suite was done with Air Force
+-- support. The Air Force and Bill Billowitch assume no
+-- responsibilities for this software.
+
+-- This file is part of VESTs (Vhdl tESTs).
+
+-- VESTs is free software; you can redistribute it and/or modify it
+-- under the terms of the GNU General Public License as published by the
+-- Free Software Foundation; either version 2 of the License, or (at
+-- your option) any later version.
+
+-- VESTs is distributed in the hope that it will be useful, but WITHOUT
+-- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+-- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+-- for more details.
+
+-- You should have received a copy of the GNU General Public License
+-- along with VESTs; if not, write to the Free Software Foundation,
+-- Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+-- ---------------------------------------------------------------------
+--
+-- $Id: tc522.vhd,v 1.2 2001-10-26 16:29:56 paw Exp $
+-- $Revision: 1.2 $
+--
+-- ---------------------------------------------------------------------
+
+ENTITY c03s03b00x00p03n01i00522ent IS
+END c03s03b00x00p03n01i00522ent;
+
+ARCHITECTURE c03s03b00x00p03n01i00522arch OF c03s03b00x00p03n01i00522ent IS
+
+BEGIN
+ TESTING: PROCESS
+ -- Declare access types and access objects everywhere.
+ -- Enumerated types.
+ type SWITCH_LEVEL is ('0', '1', 'X');
+ type AC1 is access SWITCH_LEVEL;
+
+ subtype LOGIC_SWITCH is SWITCH_LEVEL range '0' to '1';
+ type AC2 is access LOGIC_SWITCH;
+
+ -- Access types.
+ type AC3 is access AC2;
+
+ -- array types. Constrained.
+ type WORD is array(0 to 31) of BIT;
+ type AC4 is access WORD;
+
+ -- record types.
+ type DATE is
+ record
+ DAY : INTEGER range 1 to 31;
+ MONTH : INTEGER range 1 to 12;
+ YEAR : INTEGER range -10000 to 1988;
+ end record;
+ type AC5 is access DATE;
+
+ -- INTEGER types.
+ type AC6 is access INTEGER;
+
+ type POSITIVE is range 0 to INTEGER'HIGH;
+ type AC7 is access POSITIVE;
+
+ -- Physical types.
+ type AC8 is access TIME;
+
+ type DISTANCE is range 0 to 1E9
+ units
+ -- Base units.
+ A; -- angstrom
+
+ -- Metric lengths.
+ nm = 10 A; -- nanometer
+ um = 1000 nm; -- micrometer (or micron)
+ mm = 1000 um; -- millimeter
+ cm = 10 mm; -- centimeter
+
+ -- English lengths.
+ mil = 254000 A; -- mil
+ inch = 1000 mil; -- inch
+ end units;
+ type AC10 is access DISTANCE;
+
+ -- floating point types.
+ type AC11 is access REAL;
+
+ type POSITIVE_R is range 0.0 to REAL'HIGH;
+ type AC12 is access POSITIVE_R;
+ -- Predefined enumerated types.
+ type AC13 is access BIT;
+
+ type AC14 is access SEVERITY_LEVEL;
+
+ type AC15 is access BOOLEAN;
+
+ type AC16 is access CHARACTER;
+
+ -- Other predefined types.
+ type AC17 is access NATURAL;
+
+ type AC18 is access STRING;
+
+ type AC19 is access BIT_VECTOR;
+
+ type MEMORY is array(0 to 64) of WORD;
+ type AC20 is access MEMORY;
+
+ -- Declare all the variables.
+ variable VAR1 : AC1;
+ variable VAR2 : AC2;
+ variable VAR3 : AC3;
+ variable VAR4 : AC4;
+ variable VAR5 : AC5;
+ variable VAR6 : AC6;
+ variable VAR7 : AC7;
+ variable VAR8 : AC8;
+ variable VAR10: AC10;
+ variable VAR11: AC11;
+ variable VAR12: AC12;
+ variable VAR13: AC13;
+ variable VAR14: AC14;
+ variable VAR15: AC15;
+ variable VAR16: AC16;
+ variable VAR17: AC17;
+ variable VAR18: AC18;
+ variable VAR19: AC19;
+ variable VAR20: AC20;
+ BEGIN
+ -- Assert that all variables are initially NULL.
+ assert (VAR1 = null)
+ report "VAR1 has not been set to NULL.";
+ assert (VAR2 = null)
+ report "VAR2 has not been set to NULL.";
+ assert (VAR3 = null)
+ report "VAR3 has not been set to NULL.";
+ assert (VAR4 = null)
+ report "VAR4 has not been set to NULL.";
+ assert (VAR5 = null)
+ report "VAR5 has not been set to NULL.";
+ assert (VAR6 = null)
+ report "VAR6 has not been set to NULL.";
+ assert (VAR7 = null)
+ report "VAR7 has not been set to NULL.";
+ assert (VAR8 = null)
+ report "VAR8 has not been set to NULL.";
+ assert (VAR10 = null)
+ report "VAR10 has not been set to NULL.";
+ assert (VAR11 = null)
+ report "VAR11 has not been set to NULL.";
+ assert (VAR12 = null)
+ report "VAR12 has not been set to NULL.";
+ assert (VAR13 = null)
+ report "VAR13 has not been set to NULL.";
+ assert (VAR14 = null)
+ report "VAR14 has not been set to NULL.";
+ assert (VAR15 = null)
+ report "VAR15 has not been set to NULL.";
+ assert (VAR16 = null)
+ report "VAR16 has not been set to NULL.";
+ assert (VAR17 = null)
+ report "VAR17 has not been set to NULL.";
+ assert (VAR18 = null)
+ report "VAR18 has not been set to NULL.";
+ assert (VAR19 = null)
+ report "VAR19 has not been set to NULL.";
+ assert (VAR20 = null)
+ report "VAR20 has not been set to NULL.";
+ assert NOT( (VAR1 = null)
+ and (VAR2 = null)
+ and (VAR3 = null)
+ and (VAR4 = null)
+ and (VAR5 = null)
+ and (VAR6 = null)
+ and (VAR7 = null)
+ and (VAR8 = null)
+ and (VAR10 = null)
+ and (VAR11 = null)
+ and (VAR12 = null)
+ and (VAR13 = null)
+ and (VAR14 = null)
+ and (VAR15 = null)
+ and (VAR16 = null)
+ and (VAR17 = null)
+ and (VAR18 = null)
+ and (VAR19 = null)
+ and (VAR20 = null))
+ report "***PASSED TEST: c03s03b00x00p03n01i00522"
+ severity NOTE;
+ assert ( (VAR1 = null)
+ and (VAR2 = null)
+ and (VAR3 = null)
+ and (VAR4 = null)
+ and (VAR5 = null)
+ and (VAR6 = null)
+ and (VAR7 = null)
+ and (VAR8 = null)
+ and (VAR10 = null)
+ and (VAR11 = null)
+ and (VAR12 = null)
+ and (VAR13 = null)
+ and (VAR14 = null)
+ and (VAR15 = null)
+ and (VAR16 = null)
+ and (VAR17 = null)
+ and (VAR18 = null)
+ and (VAR19 = null)
+ and (VAR20 = null))
+ report "***FAILED TEST: c03s03b00x00p03n01i00522 - The null value of an access type is the default initial value of the type."
+ severity ERROR;
+ wait;
+ END PROCESS TESTING;
+
+END c03s03b00x00p03n01i00522arch;