aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types')
-rw-r--r--testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/character-index-constant.vhdl15
-rw-r--r--testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/colors_2d_array.vhdl29
-rw-r--r--testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/integer-array-using-tick-range.vhdl21
-rw-r--r--testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/simple-integer-array.vhdl22
-rw-r--r--testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/subprogram-dynamic-type.vhdl20
-rw-r--r--testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/unconstrained_argument.vhdl21
-rw-r--r--testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/enumeration-types/std-enums-test.vhdl151
-rw-r--r--testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/integer-types/resolved-integer-type.vhdl44
-rw-r--r--testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/integer-types/subprogram-dynamic-type.vhdl26
-rw-r--r--testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/record-types/date-record.vhdl25
-rw-r--r--testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/record-types/integer-record-aggregate-init.vhdl21
-rw-r--r--testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/record-types/simple-integer-record.vhdl22
-rw-r--r--testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/simple-subtypes.vhdl41
13 files changed, 458 insertions, 0 deletions
diff --git a/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/character-index-constant.vhdl b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/character-index-constant.vhdl
new file mode 100644
index 000000000..6c031dd8f
--- /dev/null
+++ b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/character-index-constant.vhdl
@@ -0,0 +1,15 @@
+entity test is
+end test;
+
+architecture only of test is
+ type int_array_char_index_unconstrained is array (character range <>) of integer;
+ subtype int_array_char_index_constrained is int_array_char_index_unconstrained('0' to '9');
+ CONSTANT my_constant : int_array_char_index_constrained := ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 );
+begin -- only
+ p: process
+ begin -- process p
+ assert my_constant('0') = 0 report "TEST FAILED" severity FAILURE;
+ report "TEST PASSED" severity NOTE;
+ wait;
+ end process p;
+end only;
diff --git a/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/colors_2d_array.vhdl b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/colors_2d_array.vhdl
new file mode 100644
index 000000000..c3da438e1
--- /dev/null
+++ b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/colors_2d_array.vhdl
@@ -0,0 +1,29 @@
+entity test is
+end test;
+
+architecture only of test is
+ type colors is ( 'R', 'O', 'Y', 'G', 'B', 'I', 'V', 'X' );
+ type color_table_t is array ( 1 to 3, 1 to 3 ) of colors;
+ CONSTANT primary_table : color_table_t := (
+ -- 'R' 'B' 'Y'
+ ( 'R', 'V', 'O' ), -- 'R'
+ ( 'V', 'B', 'G' ), -- 'B'
+ ( 'O', 'G', 'Y' ) -- 'Y'
+ );
+begin -- only
+ test: process
+ begin -- process test
+ assert primary_table( 1, 1 ) = 'R' report "TEST FAILED" severity failure;
+ assert primary_table( 1, 2 ) = 'V' report "TEST FAILED" severity failure;
+ assert primary_table( 1, 3 ) = 'O' report "TEST FAILED" severity failure;
+ assert primary_table( 2, 1 ) = 'V' report "TEST FAILED" severity failure;
+ assert primary_table( 2, 2 ) = 'B' report "TEST FAILED" severity failure;
+ assert primary_table( 2, 3 ) = 'G' report "TEST FAILED" severity failure;
+ assert primary_table( 3, 1 ) = 'O' report "TEST FAILED" severity failure;
+ assert primary_table( 3, 2 ) = 'G' report "TEST FAILED" severity failure;
+ assert primary_table( 3, 3 ) = 'Y' report "TEST FAILED" severity failure;
+
+ report "TEST PASSED";
+ wait;
+ end process test;
+end only;
diff --git a/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/integer-array-using-tick-range.vhdl b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/integer-array-using-tick-range.vhdl
new file mode 100644
index 000000000..1e8b0abe5
--- /dev/null
+++ b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/integer-array-using-tick-range.vhdl
@@ -0,0 +1,21 @@
+entity test is
+end test;
+
+architecture only of test is
+begin -- only
+p: process
+ type integerArray is array (0 to 9) of integer;
+ variable myArray : integerArray;
+begin -- process p
+ for i in myArray'range loop
+ myArray(i) := i;
+ end loop; -- i
+ for i in myArray'range loop
+ assert myArray(i) = i report "TEST FAILED myArray(i) = " &
+ integer'image(myArray(i)) & " - was supposed to be " &
+ integer'image(i) severity FAILURE;
+ end loop; -- i
+ report "TEST PASSED" severity NOTE;
+ wait;
+end process p;
+end only;
diff --git a/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/simple-integer-array.vhdl b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/simple-integer-array.vhdl
new file mode 100644
index 000000000..f5bc596e4
--- /dev/null
+++ b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/simple-integer-array.vhdl
@@ -0,0 +1,22 @@
+entity test is
+end test;
+
+architecture only of test is
+begin -- only
+p: process
+ type integerArray is array (0 to 2) of integer;
+ variable myArray : integerArray;
+begin -- process p
+ myArray(0) := 0;
+ myArray(1) := 1;
+ myArray(2) := 2;
+
+ assert myArray(0) = 0 report "TEST FAILED" severity FAILURE;
+ assert myArray(1) = 1 report "TEST FAILED" severity FAILURE;
+ assert myArray(2) = 2 report "TEST FAILED" severity FAILURE;
+
+ report "TEST PASSED" severity NOTE;
+
+ wait;
+end process p;
+end only;
diff --git a/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/subprogram-dynamic-type.vhdl b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/subprogram-dynamic-type.vhdl
new file mode 100644
index 000000000..a2f537174
--- /dev/null
+++ b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/subprogram-dynamic-type.vhdl
@@ -0,0 +1,20 @@
+entity test is
+end test;
+
+architecture only of test is
+ procedure proc (
+ constant a : in bit_vector;
+ constant l : in integer ) is
+ type dyn is range a'left downto 0;
+ begin
+ assert dyn'left = l report "TEST FAILED" severity FAILURE;
+ end proc;
+begin -- only
+ doit: process
+ begin -- process doit
+ proc( "0000", 3 );
+ proc( "00000", 4 );
+ report "TEST PASSED";
+ wait;
+ end process doit;
+end only;
diff --git a/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/unconstrained_argument.vhdl b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/unconstrained_argument.vhdl
new file mode 100644
index 000000000..d530af926
--- /dev/null
+++ b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/array-types/unconstrained_argument.vhdl
@@ -0,0 +1,21 @@
+entity test is
+end test;
+
+architecture only of test is
+ function get_left (
+ constant input_array : bit_vector)
+ return bit is
+ begin
+ return input_array(input_array'left);
+ end get_left;
+begin -- only
+ process
+ constant argument1 : bit_vector( 0 to 3 ) := "0000";
+ constant argument2 : bit_vector( 0 to 4 ) := "11111";
+ begin -- process
+ assert get_left( argument1 ) = '0' report "TEST FAILED" severity failure;
+ assert get_left( argument2 ) = '1' report "TEST FAILED" severity failure;
+ report "TEST PASSED";
+ wait;
+ end process;
+end only;
diff --git a/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/enumeration-types/std-enums-test.vhdl b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/enumeration-types/std-enums-test.vhdl
new file mode 100644
index 000000000..9350a98d3
--- /dev/null
+++ b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/enumeration-types/std-enums-test.vhdl
@@ -0,0 +1,151 @@
+entity test is
+end test;
+
+architecture only of test is
+begin -- only
+ doit: process
+ begin -- process
+ assert( character'pos(NUL) = 0 ) report "TEST FAILED" severity failure;
+ assert ( character'pos(SOH) = 1) report "TEST FAILED" severity failure;
+ assert ( character'pos(STX) = 2) report "TEST FAILED" severity failure;
+ assert ( character'pos(ETX) = 3) report "TEST FAILED" severity failure;
+ assert ( character'pos(EOT) = 4) report "TEST FAILED" severity failure;
+ assert ( character'pos(ENQ) = 5) report "TEST FAILED" severity failure;
+ assert ( character'pos(ACK) = 6) report "TEST FAILED" severity failure;
+ assert ( character'pos(BEL) = 7) report "TEST FAILED" severity failure;
+ assert ( character'pos(BS ) = 8) report "TEST FAILED" severity failure;
+ assert ( character'pos(HT ) = 9) report "TEST FAILED" severity failure;
+ assert ( character'pos(LF ) = 10) report "TEST FAILED" severity failure;
+ assert ( character'pos(VT ) = 11) report "TEST FAILED" severity failure;
+ assert ( character'pos(FF ) = 12) report "TEST FAILED" severity failure;
+ assert ( character'pos(CR ) = 13) report "TEST FAILED" severity failure;
+ assert ( character'pos(SO ) = 14) report "TEST FAILED" severity failure;
+ assert ( character'pos(SI ) = 15) report "TEST FAILED" severity failure;
+ assert ( character'pos(DLE) = 16) report "TEST FAILED" severity failure;
+ assert ( character'pos(DC1) = 17) report "TEST FAILED" severity failure;
+ assert ( character'pos(DC2) = 18) report "TEST FAILED" severity failure;
+ assert ( character'pos(DC3) = 19) report "TEST FAILED" severity failure;
+ assert ( character'pos(DC4) = 20) report "TEST FAILED" severity failure;
+ assert ( character'pos(NAK) = 21) report "TEST FAILED" severity failure;
+ assert ( character'pos(SYN) = 22) report "TEST FAILED" severity failure;
+ assert ( character'pos(ETB) = 23) report "TEST FAILED" severity failure;
+ assert ( character'pos(CAN) = 24) report "TEST FAILED" severity failure;
+ assert ( character'pos(EM ) = 25) report "TEST FAILED" severity failure;
+ assert ( character'pos(SUB) = 26) report "TEST FAILED" severity failure;
+ assert ( character'pos(ESC) = 27) report "TEST FAILED" severity failure;
+ assert ( character'pos(FSP) = 28) report "TEST FAILED" severity failure;
+ assert ( character'pos(GSP) = 29) report "TEST FAILED" severity failure;
+ assert ( character'pos(RSP) = 30) report "TEST FAILED" severity failure;
+ assert ( character'pos(USP) = 31) report "TEST FAILED" severity failure;
+ assert ( character'pos(' ') = 32) report "TEST FAILED" severity failure;
+ assert ( character'pos('!') = 33) report "TEST FAILED" severity failure;
+ assert ( character'pos('"') = 34) report "TEST FAILED" severity failure;
+ assert ( character'pos('#') = 35) report "TEST FAILED" severity failure;
+ assert ( character'pos('$') = 36) report "TEST FAILED" severity failure;
+ assert ( character'pos('%') = 37) report "TEST FAILED" severity failure;
+ assert ( character'pos('&') = 38) report "TEST FAILED" severity failure;
+ assert ( character'pos(''') = 39) report "TEST FAILED" severity failure;
+ assert ( character'pos('(') = 40) report "TEST FAILED" severity failure;
+ assert ( character'pos(')') = 41) report "TEST FAILED" severity failure;
+ assert ( character'pos('*') = 42) report "TEST FAILED" severity failure;
+ assert ( character'pos('+') = 43) report "TEST FAILED" severity failure;
+ assert ( character'pos(',') = 44) report "TEST FAILED" severity failure;
+ assert ( character'pos('-') = 45) report "TEST FAILED" severity failure;
+ assert ( character'pos('.') = 46) report "TEST FAILED" severity failure;
+ assert ( character'pos('/') = 47) report "TEST FAILED" severity failure;
+ assert ( character'pos('0') = 48) report "TEST FAILED" severity failure;
+ assert ( character'pos('1') = 49) report "TEST FAILED" severity failure;
+ assert ( character'pos('2') = 50) report "TEST FAILED" severity failure;
+ assert ( character'pos('3') = 51) report "TEST FAILED" severity failure;
+ assert ( character'pos('4') = 52) report "TEST FAILED" severity failure;
+ assert ( character'pos('5') = 53) report "TEST FAILED" severity failure;
+ assert ( character'pos('6') = 54) report "TEST FAILED" severity failure;
+ assert ( character'pos('7') = 55) report "TEST FAILED" severity failure;
+ assert ( character'pos('8') = 56) report "TEST FAILED" severity failure;
+ assert ( character'pos('9') = 57) report "TEST FAILED" severity failure;
+ assert ( character'pos(':') = 58) report "TEST FAILED" severity failure;
+ assert ( character'pos(';') = 59) report "TEST FAILED" severity failure;
+ assert ( character'pos('<') = 60) report "TEST FAILED" severity failure;
+ assert ( character'pos('=') = 61) report "TEST FAILED" severity failure;
+ assert ( character'pos('>') = 62) report "TEST FAILED" severity failure;
+ assert ( character'pos('?') = 63) report "TEST FAILED" severity failure;
+ assert ( character'pos('@') = 64) report "TEST FAILED" severity failure;
+ assert ( character'pos('A') = 65) report "TEST FAILED" severity failure;
+ assert ( character'pos('B') = 66) report "TEST FAILED" severity failure;
+ assert ( character'pos('C') = 67) report "TEST FAILED" severity failure;
+ assert ( character'pos('D') = 68) report "TEST FAILED" severity failure;
+ assert ( character'pos('E') = 69) report "TEST FAILED" severity failure;
+ assert ( character'pos('F') = 70) report "TEST FAILED" severity failure;
+ assert ( character'pos('G') = 71) report "TEST FAILED" severity failure;
+ assert ( character'pos('H') = 72) report "TEST FAILED" severity failure;
+ assert ( character'pos('I') = 73) report "TEST FAILED" severity failure;
+ assert ( character'pos('J') = 74) report "TEST FAILED" severity failure;
+ assert ( character'pos('K') = 75) report "TEST FAILED" severity failure;
+ assert ( character'pos('L') = 76) report "TEST FAILED" severity failure;
+ assert ( character'pos('M') = 77) report "TEST FAILED" severity failure;
+ assert ( character'pos('N') = 78) report "TEST FAILED" severity failure;
+ assert ( character'pos('O') = 79) report "TEST FAILED" severity failure;
+ assert ( character'pos('P') = 80) report "TEST FAILED" severity failure;
+ assert ( character'pos('Q') = 81) report "TEST FAILED" severity failure;
+ assert ( character'pos('R') = 82) report "TEST FAILED" severity failure;
+ assert ( character'pos('S') = 83) report "TEST FAILED" severity failure;
+ assert ( character'pos('T') = 84) report "TEST FAILED" severity failure;
+ assert ( character'pos('U') = 85) report "TEST FAILED" severity failure;
+ assert ( character'pos('V') = 86) report "TEST FAILED" severity failure;
+ assert ( character'pos('W') = 87) report "TEST FAILED" severity failure;
+ assert ( character'pos('X') = 88) report "TEST FAILED" severity failure;
+ assert ( character'pos('Y') = 89) report "TEST FAILED" severity failure;
+ assert ( character'pos('Z') = 90) report "TEST FAILED" severity failure;
+ assert ( character'pos('[') = 91) report "TEST FAILED" severity failure;
+ assert ( character'pos('\') = 92) report "TEST FAILED" severity failure;
+ assert ( character'pos(']') = 93) report "TEST FAILED" severity failure;
+ assert ( character'pos('^') = 94) report "TEST FAILED" severity failure;
+ assert ( character'pos('_') = 95) report "TEST FAILED" severity failure;
+ assert ( character'pos('`') = 96) report "TEST FAILED" severity failure;
+ assert ( character'pos('a') = 97) report "TEST FAILED" severity failure;
+ assert ( character'pos('b') = 98) report "TEST FAILED" severity failure;
+ assert ( character'pos('c') = 99) report "TEST FAILED" severity failure;
+ assert ( character'pos('d') = 100) report "TEST FAILED" severity failure;
+ assert ( character'pos('e') = 101) report "TEST FAILED" severity failure;
+ assert ( character'pos('f') = 102) report "TEST FAILED" severity failure;
+ assert ( character'pos('g') = 103) report "TEST FAILED" severity failure;
+ assert ( character'pos('h') = 104) report "TEST FAILED" severity failure;
+ assert ( character'pos('i') = 105) report "TEST FAILED" severity failure;
+ assert ( character'pos('j') = 106) report "TEST FAILED" severity failure;
+ assert ( character'pos('k') = 107) report "TEST FAILED" severity failure;
+ assert ( character'pos('l') = 108) report "TEST FAILED" severity failure;
+ assert ( character'pos('m') = 109) report "TEST FAILED" severity failure;
+ assert ( character'pos('n') = 110) report "TEST FAILED" severity failure;
+ assert ( character'pos('o') = 111) report "TEST FAILED" severity failure;
+ assert ( character'pos('p') = 112) report "TEST FAILED" severity failure;
+ assert ( character'pos('q') = 113) report "TEST FAILED" severity failure;
+ assert ( character'pos('r') = 114) report "TEST FAILED" severity failure;
+ assert ( character'pos('s') = 115) report "TEST FAILED" severity failure;
+ assert ( character'pos('t') = 116) report "TEST FAILED" severity failure;
+ assert ( character'pos('u') = 117) report "TEST FAILED" severity failure;
+ assert ( character'pos('v') = 118) report "TEST FAILED" severity failure;
+ assert ( character'pos('w') = 119) report "TEST FAILED" severity failure;
+ assert ( character'pos('x') = 120) report "TEST FAILED" severity failure;
+ assert ( character'pos('y') = 121) report "TEST FAILED" severity failure;
+ assert ( character'pos('z') = 122) report "TEST FAILED" severity failure;
+ assert ( character'pos('{') = 123) report "TEST FAILED" severity failure;
+ assert ( character'pos('|') = 124) report "TEST FAILED" severity failure;
+ assert ( character'pos('}') = 125) report "TEST FAILED" severity failure;
+ assert ( character'pos('~') = 126) report "TEST FAILED" severity failure;
+ assert ( character'pos(DEL) = 127) report "TEST FAILED" severity failure;
+ assert ( character'pos(character'right) = 255) report "TEST FAILED" severity failure;
+ assert (bit'pos('0') = 0) report "TEST FAILED" severity failure;
+ assert (bit'pos('1') = 1) report "TEST FAILED" severity failure;
+ assert (bit'pos(bit'right) = 1) report "TEST FAILED" severity failure;
+ assert (boolean'pos(false) = 0) report "TEST FAILED" severity failure;
+ assert (boolean'pos(true) = 1) report "TEST FAILED" severity failure;
+ assert (boolean'pos(boolean'right) = 1) report "TEST FAILED" severity failure;
+ assert (severity_level'pos(NOTE) = 0) report "TEST FAILED" severity failure;
+ assert (severity_level'pos(WARNING) = 1) report "TEST FAILED" severity failure;
+ assert (severity_level'pos(ERROR) = 2) report "TEST FAILED" severity failure;
+ assert (severity_level'pos(FAILURE) = 3) report "TEST FAILED" severity failure;
+ assert ( severity_level'pos(severity_level'right) = 3 ) report "TEST FAILED" severity failure;
+ report "TEST PASSED";
+ wait;
+ end process;
+end only;
diff --git a/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/integer-types/resolved-integer-type.vhdl b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/integer-types/resolved-integer-type.vhdl
new file mode 100644
index 000000000..2a55fe20a
--- /dev/null
+++ b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/integer-types/resolved-integer-type.vhdl
@@ -0,0 +1,44 @@
+entity test is
+end test;
+
+architecture only of test is
+ type integer_array is array ( natural range <> ) of integer;
+
+ function return_biggest ( inputs : integer_array )
+ return integer is
+ variable retval : integer := integer'left;
+ begin
+ for i in inputs'range loop
+ if inputs(i) > retval then
+ retval := inputs(i);
+ end if;
+ end loop; -- i
+ return retval;
+ end return_biggest;
+
+ subtype biggest_wins is return_biggest integer;
+
+ signal common : biggest_wins;
+
+begin -- only
+
+ p1 : process
+ begin
+ common <= 1 after 1 ns;
+ wait;
+ end process;
+
+ p2 : process
+ begin
+ common <= 1 after 1 ns;
+ wait;
+ end process;
+
+ test: process
+ begin
+ wait for 2 ns;
+ assert common = 1 report "TEST FAILED" severity failure;
+ wait;
+ end process;
+
+end only;
diff --git a/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/integer-types/subprogram-dynamic-type.vhdl b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/integer-types/subprogram-dynamic-type.vhdl
new file mode 100644
index 000000000..92f5347ac
--- /dev/null
+++ b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/integer-types/subprogram-dynamic-type.vhdl
@@ -0,0 +1,26 @@
+entity test is
+end test;
+
+architecture only of test is
+ procedure proc ( constant l : in integer;
+ constant r : in integer ) is
+ type dyn is range l to r;
+ constant x : dyn;
+ begin
+
+ if r = 3 then
+ assert x = 1 report "TEST FAILED" severity FAILURE;
+ elsif r = 42 then
+ assert x = 0 report "TEST FAILED" severity FAILURE;
+ end if;
+
+ end proc;
+begin -- only
+ doit: process
+ begin -- process doit
+ proc( 1, 3 );
+ proc( 0, 42 );
+ report "TEST PASSED";
+ wait;
+ end process doit;
+end only;
diff --git a/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/record-types/date-record.vhdl b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/record-types/date-record.vhdl
new file mode 100644
index 000000000..ea7b08995
--- /dev/null
+++ b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/record-types/date-record.vhdl
@@ -0,0 +1,25 @@
+entity test is
+end test;
+
+
+architecture only of test is
+
+ type month_name IS (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec );
+ type date IS
+ record
+ day : integer range 1 to 31;
+ month : month_name;
+ year : integer range 0 to 4000;
+ end record;
+
+begin -- only
+ p: process
+ constant christmas : date := ( 25, Dec, 0 );
+ begin -- process p
+ assert christmas.day = 25 report "TEST FAILED" severity FAILURE;
+ assert christmas.month = Dec report "TEST FAILED" severity FAILURE;
+ assert christmas.year = 0 report "TEST FAILED" severity FAILURE;
+ report "TEST PASSED" severity NOTE;
+ wait;
+ end process p;
+end only;
diff --git a/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/record-types/integer-record-aggregate-init.vhdl b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/record-types/integer-record-aggregate-init.vhdl
new file mode 100644
index 000000000..dbd517043
--- /dev/null
+++ b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/record-types/integer-record-aggregate-init.vhdl
@@ -0,0 +1,21 @@
+entity test is
+end test;
+
+architecture only of test is
+begin -- only
+p: process
+ type integerRecord is record
+ foo : integer;
+ bar : integer;
+ end record;
+ variable myRecord : integerRecord;
+begin -- process p
+ myRecord := ( 0, 1 );
+
+ assert myRecord.foo = 0 report "TEST FAILED - 0" severity FAILURE;
+ assert myRecord.bar = 1 report "TEST FAILED - 1" severity FAILURE;
+ report "TEST PASSED" severity NOTE;
+
+ wait;
+end process p;
+end only;
diff --git a/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/record-types/simple-integer-record.vhdl b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/record-types/simple-integer-record.vhdl
new file mode 100644
index 000000000..b040eb853
--- /dev/null
+++ b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/record-types/simple-integer-record.vhdl
@@ -0,0 +1,22 @@
+entity test is
+end test;
+
+architecture only of test is
+begin -- only
+p: process
+ type integerRecord is record
+ foo : integer;
+ bar : integer;
+ end record;
+ variable myRecord : integerRecord;
+begin -- process p
+ myRecord.foo := 0;
+ myRecord.bar := 1;
+
+ assert myRecord.foo = 0 report "TEST FAILED" severity FAILURE;
+ assert myRecord.bar = 1 report "TEST FAILED" severity FAILURE;
+ report "TEST PASSED" severity NOTE;
+
+ wait;
+end process p;
+end only;
diff --git a/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/simple-subtypes.vhdl b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/simple-subtypes.vhdl
new file mode 100644
index 000000000..a3e127e83
--- /dev/null
+++ b/testsuite/vests/vhdl-93/clifton-labs/compliant/functional/types/simple-subtypes.vhdl
@@ -0,0 +1,41 @@
+entity test is
+end test;
+
+architecture only of test is
+
+begin -- only
+ doit: process
+ subtype tboolean is boolean range FALSE to TRUE;
+ subtype tbit is bit range '0' to '1';
+ subtype tcharacter is character range 'A' to 'Z';
+ subtype tseverity_level is severity_level range NOTE to ERROR;
+ subtype tinteger is integer range 1111 to 2222;
+ subtype treal is real range 1.11 to 2.22;
+ subtype ttime is time range 1 ns to 1 hr;
+ subtype tnatural is natural range 100 to 200;
+ subtype tpositive is positive range 1000 to 2000;
+
+ variable k1 : tboolean;
+ variable k2 : tbit;
+ variable k3 : tcharacter;
+ variable k4 : tseverity_level;
+ variable k5 : tinteger;
+ variable k6 : treal;
+ variable k7 : ttime;
+ variable k8 : tnatural;
+ variable k9 : tpositive;
+
+ begin -- process doit
+ assert( k1 = tboolean'left ) report "TEST FAILED" severity failure;
+ assert( k2 = tbit'left ) report "TEST FAILED" severity FAILURE;
+ assert( k3 = tcharacter'left ) report "TEST FAILED" severity FAILURE;
+ assert( k4 = tseverity_level'left ) report "TEST FAILED" severity FAILURE;
+ assert( k5 = tinteger'left ) report "TEST FAILED" severity FAILURE;
+ assert( k6 = treal'left ) report "TEST FAILED" severity FAILURE;
+ assert( k7 = ttime'left ) report "TEST FAILED" severity FAILURE;
+ assert( k8 = tnatural'left ) report "TEST FAILED" severity FAILURE;
+ assert( k9 = tpositive'left ) report "TEST FAILED" severity FAILURE;
+ report "TEST PASSED";
+ wait;
+ end process doit;
+end only;