diff options
Diffstat (limited to 'testsuite/vests/vhdl-93/billowitch/compliant/tc91.vhd')
-rw-r--r-- | testsuite/vests/vhdl-93/billowitch/compliant/tc91.vhd | 300 |
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 0000000..00b9aae --- /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; |