diff options
| author | Tristan Gingold <tgingold@free.fr> | 2017-11-15 06:38:05 +0100 | 
|---|---|---|
| committer | Tristan Gingold <tgingold@free.fr> | 2017-11-15 06:38:05 +0100 | 
| commit | 185840b837766c5cbb6082e3f71b2c122541b8ea (patch) | |
| tree | 66532e9551d75ed91c9d93924170f7dd35a8e099 | |
| parent | e973f74ed2b05170ad0ff4fbaca1998a2f70787c (diff) | |
| download | ghdl-185840b837766c5cbb6082e3f71b2c122541b8ea.tar.gz ghdl-185840b837766c5cbb6082e3f71b2c122541b8ea.tar.bz2 ghdl-185840b837766c5cbb6082e3f71b2c122541b8ea.zip  | |
Add reproducer for #458
| -rw-r--r-- | testsuite/gna/issue458/e.vhdl | 40 | ||||
| -rw-r--r-- | testsuite/gna/issue458/repro.vhdl | 20 | ||||
| -rw-r--r-- | testsuite/gna/issue458/repro2.vhdl | 22 | ||||
| -rwxr-xr-x | testsuite/gna/issue458/testsuite.sh | 10 | 
4 files changed, 92 insertions, 0 deletions
diff --git a/testsuite/gna/issue458/e.vhdl b/testsuite/gna/issue458/e.vhdl new file mode 100644 index 000000000..2b07ef763 --- /dev/null +++ b/testsuite/gna/issue458/e.vhdl @@ -0,0 +1,40 @@ +entity E is +end entity; + +architecture A of E is +	signal S1           : bit := '0'; +	signal S2_inertial  : bit; +	signal S2_transport : bit; +	signal S2_delayed   : bit; +	 +	constant LEVEL : severity_level := FAILURE; +begin +	S1 <= '1' after 10 ns, '0' after 20 ns; +	 +	S2_inertial  <= inertial S1 after 100 ns; +	S2_transport <= transport S1 after 100 ns; +	S2_delayed   <= S1'delayed(100 ns); +	 +	CheckInertial: process +	begin +		wait until S2_inertial = '1' for 200 ns; +		assert (S2_inertial = '0') report "Pulse was not rejected!" severity LEVEL; +		wait; +	end process; + +	CheckTransport: process +	begin +		wait until S2_transport = '1' for 115 ns; +		assert (S2_transport = '1') report "Pulse was not transport delayed!" severity LEVEL; +		assert (now = 110 ns)       report "Transport delayed pulse was not received at 110 ns!" severity LEVEL; +		wait; +	end process; +	 +	CheckDelayed: process +	begin +		wait until S2_delayed = '1' for 115 ns; +		assert (S2_delayed = '1') report "Pulse was not delayed!" severity LEVEL; +		assert (now = 110 ns)     report "Delayed pulse was not received at 110 ns!" severity LEVEL; +		wait; +	end process; +end architecture; diff --git a/testsuite/gna/issue458/repro.vhdl b/testsuite/gna/issue458/repro.vhdl new file mode 100644 index 000000000..2e061ad6b --- /dev/null +++ b/testsuite/gna/issue458/repro.vhdl @@ -0,0 +1,20 @@ +entity repro is +end entity; + +architecture A of repro is +	signal S1           : bit := '0'; +	alias S1_delayed   : bit is S1'delayed(100 ns); +begin +	S1 <= '1' after 10 ns, '0' after 20 ns; + +        process (S1) is +        begin +          assert false report "S1 = " & bit'image(S1) severity note; +        end process; + +        process (S1_delayed) is +        begin +          assert false report "S1'delayed = " & bit'image(S1_delayed) +            severity note; +        end process; +end architecture; diff --git a/testsuite/gna/issue458/repro2.vhdl b/testsuite/gna/issue458/repro2.vhdl new file mode 100644 index 000000000..8882aa376 --- /dev/null +++ b/testsuite/gna/issue458/repro2.vhdl @@ -0,0 +1,22 @@ +entity repro is +end entity; + +architecture A of repro is +	signal S1           : bit := '0'; +	signal S2_transport : bit; +	signal S2_delayed   : bit; +begin +	S1 <= '1' after 10 ns, '0' after 20 ns; +	S2_transport <= transport S1 after 100 ns; +	S2_delayed   <= S1'delayed(100 ns); + +        process (S1) is +        begin +          assert false report "S1 = " & bit'image(S1) severity note; +        end process; + +        process (S2_delayed) is +        begin +          assert false report "S1'delayed = " & bit'image(S2_delayed) severity note; +        end process; +end architecture; diff --git a/testsuite/gna/issue458/testsuite.sh b/testsuite/gna/issue458/testsuite.sh new file mode 100755 index 000000000..57536e34f --- /dev/null +++ b/testsuite/gna/issue458/testsuite.sh @@ -0,0 +1,10 @@ +#! /bin/sh + +. ../../testenv.sh + +analyze e.vhdl +elab_simulate e + +clean + +echo "Test successful"  | 
