diff options
Diffstat (limited to 'testsuite')
-rw-r--r-- | testsuite/gna/deb573721/573721_deb.vhd | 51 | ||||
-rwxr-xr-x | testsuite/gna/deb573721/testsuite.sh | 9 | ||||
-rw-r--r-- | testsuite/gna/deb585748/585748_deb.vhd | 24 | ||||
-rwxr-xr-x | testsuite/gna/deb585748/testsuite.sh | 10 | ||||
-rwxr-xr-x | testsuite/gna/testsuite.sh | 2 |
5 files changed, 95 insertions, 1 deletions
diff --git a/testsuite/gna/deb573721/573721_deb.vhd b/testsuite/gna/deb573721/573721_deb.vhd new file mode 100644 index 0000000..de8fe0b --- /dev/null +++ b/testsuite/gna/deb573721/573721_deb.vhd @@ -0,0 +1,51 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity test is end entity; + +architecture a_test of test is + signal a, b : std_logic; + signal i1 : integer := 1; + constant i2 : integer := 1; + signal t1 : time := 1 ns; + constant t2 : time := 1 ns; +begin + process + variable m : boolean; + variable ip1 : integer := 1; + constant ip2 : integer := 1; + variable tp1 : time := 1 ns; + constant tp2 : time := 1 ns; + begin + m := a'stable(1 ns); --works ... literal + m := a'stable(i1 * ns); --works ... signal * unit + m := a'stable(i2 * ns); --works ... constant * unit + m := a'stable(t1); --works ... signal (time) + m := a'stable(t2); --works ... constant (time) + m := a'stable(ip1 * ns); --crashs ... LOCAL variable * unit + m := a'stable(ip2 * ns); --works ... LOCAL constant * unit + m := a'stable(tp1); --crashs ... LOCAL variable (time) + m := a'stable(tp2); --crashs ... LOCAL constant (time) + -- + m := a'quiet(1 ns); --works + m := a'quiet(i1 * ns); --works + m := a'quiet(i2 * ns); --works + m := a'quiet(t1); --works + m := a'quiet(t2); --works + m := a'quiet(ip1 * ns); --crashs + m := a'quiet(ip2 * ns); --works + m := a'quiet(tp1); --crashs + m := a'quiet(tp2); --crashs + -- + b <= a'delayed(1 ns); --works + b <= a'delayed(i1 * ns); --works + b <= a'delayed(i2 * ns); --works + b <= a'delayed(t1); --works + b <= a'delayed(t2); --works + b <= a'delayed(ip1 * ns); --crashs + b <= a'delayed(ip2 * ns); --works + b <= a'delayed(tp1); --crashs + b <= a'delayed(tp2); --crashs + end process; +end architecture; diff --git a/testsuite/gna/deb573721/testsuite.sh b/testsuite/gna/deb573721/testsuite.sh new file mode 100755 index 0000000..96991a7 --- /dev/null +++ b/testsuite/gna/deb573721/testsuite.sh @@ -0,0 +1,9 @@ +#! /bin/sh + +. ../../testenv.sh + +analyze_failure 573721_deb.vhd + +clean + +echo "Test successful" diff --git a/testsuite/gna/deb585748/585748_deb.vhd b/testsuite/gna/deb585748/585748_deb.vhd new file mode 100644 index 0000000..9098e8d --- /dev/null +++ b/testsuite/gna/deb585748/585748_deb.vhd @@ -0,0 +1,24 @@ + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity tb_test is end; + +architecture arch_tb of tb_test is +-- signal reset_s, clk_s : std_logic; + signal i_s : integer := -1; +-- signal j_s : integer := -2; + -- Here, as it should, an error will be raised during compilation +-- signal u_s : unsigned(7 downto 0) := to_unsigned(-1, 8); + -- + signal v_s : unsigned(7 downto 0); +-- signal w_s : unsigned(7 downto 0); +begin + -- Here, as it should, a bound check failure will be raised during simulation +-- w_s <= to_unsigned(j_s, 8); + -- + -- Here it won't have any error during simulation, but it should + v_s <= to_unsigned(i_s, 8); + -- +end architecture arch_tb; diff --git a/testsuite/gna/deb585748/testsuite.sh b/testsuite/gna/deb585748/testsuite.sh new file mode 100755 index 0000000..7fb5e81 --- /dev/null +++ b/testsuite/gna/deb585748/testsuite.sh @@ -0,0 +1,10 @@ +#! /bin/sh + +. ../../testenv.sh + +analyze 585748_deb.vhd +elab_simulate_failure tb_test + +clean + +echo "Test successful" diff --git a/testsuite/gna/testsuite.sh b/testsuite/gna/testsuite.sh index 3f14c5d..acc895a 100755 --- a/testsuite/gna/testsuite.sh +++ b/testsuite/gna/testsuite.sh @@ -6,7 +6,7 @@ set -e -dirs="bug* sr*" +dirs="bug* sr* deb*" failures="" full=n |