diff options
Diffstat (limited to 'testsuite/vests/vhdl-93/billowitch/compliant/tc522.vhd')
-rw-r--r-- | testsuite/vests/vhdl-93/billowitch/compliant/tc522.vhd | 217 |
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 0000000..1226d5f --- /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; |