From 185840b837766c5cbb6082e3f71b2c122541b8ea Mon Sep 17 00:00:00 2001
From: Tristan Gingold <tgingold@free.fr>
Date: Wed, 15 Nov 2017 06:38:05 +0100
Subject: Add reproducer for #458

---
 testsuite/gna/issue458/e.vhdl | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)
 create mode 100644 testsuite/gna/issue458/e.vhdl

(limited to 'testsuite/gna/issue458/e.vhdl')

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;
-- 
cgit v1.2.3