aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/vests/vhdl-93/billowitch/compliant/tc91.vhd
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/vests/vhdl-93/billowitch/compliant/tc91.vhd')
-rw-r--r--testsuite/vests/vhdl-93/billowitch/compliant/tc91.vhd300
1 files changed, 300 insertions, 0 deletions
diff --git a/testsuite/vests/vhdl-93/billowitch/compliant/tc91.vhd b/testsuite/vests/vhdl-93/billowitch/compliant/tc91.vhd
new file mode 100644
index 000000000..00b9aaea7
--- /dev/null
+++ b/testsuite/vests/vhdl-93/billowitch/compliant/tc91.vhd
@@ -0,0 +1,300 @@
+
+-- 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: tc91.vhd,v 1.2 2001-10-26 16:30:02 paw Exp $
+-- $Revision: 1.2 $
+--
+-- ---------------------------------------------------------------------
+
+PACKAGE c04s03b02x00p01n01i00091pkg IS
+--
+--
+-- Declaration of composite types
+-- - array types and subtypes
+--
+ TYPE ut_chary IS ARRAY (CHARACTER RANGE <>) OF INTEGER; --unconstrained array type
+
+ TYPE ct_word IS ARRAY (0 TO 15) OF BIT; --constrained array type
+
+ SUBTYPE ust_subchary IS ut_chary; --unconstrained array subtype
+
+ SUBTYPE cst_str10 IS STRING ( 1 TO 10 ); --constrained array subtype
+
+ SUBTYPE cst_digit IS ut_chary ('0' TO '9'); --constrained array subtype
+
+--
+-- Declaration of composite types
+-- - records types and subtypes
+--
+ TYPE month_name IS (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec );
+
+ TYPE rt_date IS
+ RECORD
+ day : INTEGER RANGE 0 TO 31;
+ month : month_name;
+ year : INTEGER RANGE 0 TO 4000;
+ END RECORD;
+--
+ SUBTYPE rst_date IS rt_date;
+
+END c04s03b02x00p01n01i00091pkg;
+
+
+USE WORK.c04s03b02x00p01n01i00091pkg.ALL;
+ENTITY c04s03b02x00p01n01i00091ent_a IS
+ PORT (
+ SIGNAL STRING_prt : IN STRING (1 TO 7);
+ SIGNAL BIT_VECTOR_prt : IN BIT_VECTOR (0 TO 7);
+ SIGNAL ut_chary_prt : IN ut_chary (NUL TO ENQ);
+ SIGNAL ct_word_prt : IN ct_word;
+ SIGNAL cst_str10_prt : IN cst_str10;
+ SIGNAL cst_digit_prt : IN cst_digit;
+ SIGNAL rt_date_prt : IN rt_date;
+ SIGNAL rst_date_prt : IN rst_date
+ );
+END c04s03b02x00p01n01i00091ent_a;
+
+
+
+ARCHITECTURE c04s03b02x00p01n01i00091arch_a OF c04s03b02x00p01n01i00091ent_a IS
+
+BEGIN
+ PROCESS
+ BEGIN
+--
+ FOR I IN 1 TO 7
+ LOOP
+ ASSERT STRING_prt(I) = NUL REPORT "STRING_prt not properly intialized" SEVERITY FAILURE;
+ END LOOP;
+
+ FOR I IN 0 TO 7
+ LOOP
+ ASSERT BIT_VECTOR_prt(I) = '0' REPORT "BIT_VECTOR_prt not properly intialized" SEVERITY FAILURE;
+ END LOOP;
+
+ FOR I IN NUL TO ENQ
+ LOOP
+ ASSERT ut_chary_prt(I) = INTEGER'LEFT
+ REPORT "ut_chary_prt not properly intialized" SEVERITY FAILURE;
+ END LOOP;
+
+ FOR I IN 0 TO 15
+ LOOP
+ ASSERT ct_word_prt(I) = '0' REPORT "ct_word_prt not properly intialized" SEVERITY FAILURE;
+ END LOOP;
+ FOR I IN 1 TO 10
+ LOOP
+ ASSERT cst_str10_prt(I) = NUL REPORT "cst_str10_prt not properly intialized" SEVERITY FAILURE;
+ END LOOP;
+
+ FOR I IN '0' TO '9'
+ LOOP
+ ASSERT cst_digit_prt(I) = INTEGER'LEFT
+ REPORT "cst_digit_prt not properly intialized" SEVERITY FAILURE; END LOOP;
+
+ ASSERT rt_date_prt.day = 0 REPORT " rt_date_prt.day not properly intialized" SEVERITY FAILURE;
+ ASSERT rt_date_prt.month = Jan REPORT " rt_date_prt.month not properly intialized" SEVERITY FAILURE;
+ ASSERT rt_date_prt.year = 0 REPORT " rt_date_prt.year not properly intialized" SEVERITY FAILURE;
+
+ ASSERT rst_date_prt.day = 0 REPORT "rst_date_prt.day not properly intialized" SEVERITY FAILURE;
+ ASSERT rst_date_prt.month = Jan REPORT "rst_date_prt.month not properly intialized" SEVERITY FAILURE;
+ ASSERT rst_date_prt.year = 0 REPORT "rst_date_prt.year not properly intialized" SEVERITY FAILURE;
+
+
+ assert NOT( STRING_prt(1) = NUL and
+ STRING_prt(2) = NUL and
+ STRING_prt(3) = NUL and
+ STRING_prt(4) = NUL and
+ STRING_prt(5) = NUL and
+ STRING_prt(6) = NUL and
+ STRING_prt(7) = NUL and
+ BIT_VECTOR_prt(1) = '0' and
+ BIT_VECTOR_prt(2) = '0' and
+ BIT_VECTOR_prt(3) = '0' and
+ BIT_VECTOR_prt(4) = '0' and
+ BIT_VECTOR_prt(5) = '0' and
+ BIT_VECTOR_prt(6) = '0' and
+ BIT_VECTOR_prt(7) = '0' and
+ ut_chary_prt(NUL) = integer'left and
+ ut_chary_prt(SOH) = integer'left and
+ ut_chary_prt(STX) = integer'left and
+ ut_chary_prt(ETX) = integer'left and
+ ut_chary_prt(EOT) = integer'left and
+ ut_chary_prt(ENQ) = integer'left and
+ ct_word_prt( 0) = '0' and
+ ct_word_prt( 1) = '0' and
+ ct_word_prt( 2) = '0' and
+ ct_word_prt( 3) = '0' and
+ ct_word_prt( 4) = '0' and
+ ct_word_prt( 5) = '0' and
+ ct_word_prt( 6) = '0' and
+ ct_word_prt( 7) = '0' and
+ ct_word_prt( 8) = '0' and
+ ct_word_prt( 9) = '0' and
+ ct_word_prt(10) = '0' and
+ ct_word_prt(11) = '0' and
+ ct_word_prt(12) = '0' and
+ ct_word_prt(13) = '0' and
+ ct_word_prt(14) = '0' and
+ ct_word_prt(15) = '0' and
+ cst_str10_prt( 1) = NUL and
+ cst_str10_prt( 2) = NUL and
+ cst_str10_prt( 3) = NUL and
+ cst_str10_prt( 4) = NUL and
+ cst_str10_prt( 5) = NUL and
+ cst_str10_prt( 6) = NUL and
+ cst_str10_prt( 7) = NUL and
+ cst_str10_prt( 8) = NUL and
+ cst_str10_prt( 9) = NUL and
+ cst_str10_prt(10) = NUL and
+ cst_digit_prt('0') = integer'left and
+ cst_digit_prt('1') = integer'left and
+ cst_digit_prt('2') = integer'left and
+ cst_digit_prt('3') = integer'left and
+ cst_digit_prt('4') = integer'left and
+ cst_digit_prt('5') = integer'left and
+ cst_digit_prt('6') = integer'left and
+ cst_digit_prt('7') = integer'left and
+ cst_digit_prt('8') = integer'left and
+ cst_digit_prt('9') = integer'left and
+ rt_date_prt.day = 0 and
+ rt_date_prt.month = Jan and
+ rt_date_prt.year = 0 and
+ rst_date_prt.day = 0 and
+ rst_date_prt.month = Jan and
+ rst_date_prt.year = 0 )
+ report "***PASSED TEST: c04s03b02x00p01n01i00091"
+ severity NOTE;
+ assert ( STRING_prt(1) = NUL and
+ STRING_prt(2) = NUL and
+ STRING_prt(3) = NUL and
+ STRING_prt(4) = NUL and
+ STRING_prt(5) = NUL and
+ STRING_prt(6) = NUL and
+ STRING_prt(7) = NUL and
+ BIT_VECTOR_prt(1) = '0' and
+ BIT_VECTOR_prt(2) = '0' and
+ BIT_VECTOR_prt(3) = '0' and
+ BIT_VECTOR_prt(4) = '0' and
+ BIT_VECTOR_prt(5) = '0' and
+ BIT_VECTOR_prt(6) = '0' and
+ BIT_VECTOR_prt(7) = '0' and
+ ut_chary_prt(NUL) = integer'left and
+ ut_chary_prt(SOH) = integer'left and
+ ut_chary_prt(STX) = integer'left and
+ ut_chary_prt(ETX) = integer'left and
+ ut_chary_prt(EOT) = integer'left and
+ ut_chary_prt(ENQ) = integer'left and
+ ct_word_prt( 0) = '0' and
+ ct_word_prt( 1) = '0' and
+ ct_word_prt( 2) = '0' and
+ ct_word_prt( 3) = '0' and
+ ct_word_prt( 4) = '0' and
+ ct_word_prt( 5) = '0' and
+ ct_word_prt( 6) = '0' and
+ ct_word_prt( 7) = '0' and
+ ct_word_prt( 8) = '0' and
+ ct_word_prt( 9) = '0' and
+ ct_word_prt(10) = '0' and
+ ct_word_prt(11) = '0' and
+ ct_word_prt(12) = '0' and
+ ct_word_prt(13) = '0' and
+ ct_word_prt(14) = '0' and
+ ct_word_prt(15) = '0' and
+ cst_str10_prt( 1) = NUL and
+ cst_str10_prt( 2) = NUL and
+ cst_str10_prt( 3) = NUL and
+ cst_str10_prt( 4) = NUL and
+ cst_str10_prt( 5) = NUL and
+ cst_str10_prt( 6) = NUL and
+ cst_str10_prt( 7) = NUL and
+ cst_str10_prt( 8) = NUL and
+ cst_str10_prt( 9) = NUL and
+ cst_str10_prt(10) = NUL and
+ cst_digit_prt('0') = integer'left and
+ cst_digit_prt('1') = integer'left and
+ cst_digit_prt('2') = integer'left and
+ cst_digit_prt('3') = integer'left and
+ cst_digit_prt('4') = integer'left and
+ cst_digit_prt('5') = integer'left and
+ cst_digit_prt('6') = integer'left and
+ cst_digit_prt('7') = integer'left and
+ cst_digit_prt('8') = integer'left and
+ cst_digit_prt('9') = integer'left and
+ rt_date_prt.day = 0 and
+ rt_date_prt.month = Jan and
+ rt_date_prt.year = 0 and
+ rst_date_prt.day = 0 and
+ rst_date_prt.month = Jan and
+ rst_date_prt.year = 0 )
+ report "***FAILED TEST: c04s03b02x00p01n01i00091 - Variables as the interface objects that appear as variable parameters of subprogram."
+ severity ERROR;
+ wait;
+ END PROCESS;
+
+END c04s03b02x00p01n01i00091arch_a;
+
+
+USE WORK.c04s03b02x00p01n01i00091pkg.ALL;
+ENTITY c04s03b02x00p01n01i00091ent IS
+END c04s03b02x00p01n01i00091ent;
+
+ARCHITECTURE c04s03b02x00p01n01i00091arch OF c04s03b02x00p01n01i00091ent IS
+ COMPONENT c04s03b02x00p01n01i00091ent_a
+ PORT (
+ SIGNAL STRING_prt : IN STRING (1 TO 7);
+ SIGNAL BIT_VECTOR_prt : IN BIT_VECTOR (0 TO 7);
+ SIGNAL ut_chary_prt : IN ut_chary (NUL TO ENQ);
+ SIGNAL ct_word_prt : IN ct_word;
+ SIGNAL cst_str10_prt : IN cst_str10;
+ SIGNAL cst_digit_prt : IN cst_digit;
+ SIGNAL rt_date_prt : IN rt_date;
+ SIGNAL rst_date_prt : IN rst_date
+ );
+ END COMPONENT;
+ for c : c04s03b02x00p01n01i00091ent_a use entity work.c04s03b02x00p01n01i00091ent_a(c04s03b02x00p01n01i00091arch_a);
+
+ SIGNAL STRING_prt : STRING (1 TO 7);
+ SIGNAL BIT_VECTOR_prt : BIT_VECTOR (0 TO 7);
+ SIGNAL ut_chary_prt : ut_chary (NUL TO ENQ);
+ SIGNAL ct_word_prt : ct_word;
+ SIGNAL cst_str10_prt : cst_str10;
+ SIGNAL cst_digit_prt : cst_digit;
+ SIGNAL rt_date_prt : rt_date;
+ SIGNAL rst_date_prt : rst_date;
+
+BEGIN
+ C : c04s03b02x00p01n01i00091ent_a
+ PORT MAP ( STRING_prt,
+ BIT_VECTOR_prt,
+ ut_chary_prt,
+ ct_word_prt,
+ cst_str10_prt,
+ cst_digit_prt,
+ rt_date_prt,
+ rst_date_prt );
+
+
+END c04s03b02x00p01n01i00091arch;