diff options
| author | Tristan Gingold <tgingold@free.fr> | 2022-09-30 06:16:39 +0200 | 
|---|---|---|
| committer | Tristan Gingold <tgingold@free.fr> | 2022-09-30 06:16:39 +0200 | 
| commit | 91a072a3795dd2533d13f8434aa03cc06000ff7a (patch) | |
| tree | 0f947aa38734ad710896b858dd531c7fc14c8af5 | |
| parent | 4747007bf70c88ac77ff6dc274e8f3b3b7459658 (diff) | |
| download | ghdl-91a072a3795dd2533d13f8434aa03cc06000ff7a.tar.gz ghdl-91a072a3795dd2533d13f8434aa03cc06000ff7a.tar.bz2 ghdl-91a072a3795dd2533d13f8434aa03cc06000ff7a.zip | |
testsuite/gna: add a test for #2193
close #2193
| -rw-r--r-- | testsuite/gna/issue2193/demo.vhdl | 35 | ||||
| -rw-r--r-- | testsuite/gna/issue2193/demo2.vhdl | 35 | ||||
| -rwxr-xr-x | testsuite/gna/issue2193/testsuite.sh | 14 | 
3 files changed, 84 insertions, 0 deletions
| diff --git a/testsuite/gna/issue2193/demo.vhdl b/testsuite/gna/issue2193/demo.vhdl new file mode 100644 index 000000000..3b797e559 --- /dev/null +++ b/testsuite/gna/issue2193/demo.vhdl @@ -0,0 +1,35 @@ +library ieee; +use ieee.std_logic_1164.all; +use std.textio.all; + +entity demo is +end demo; + +architecture behavioral of demo is +    signal clk  : std_logic := '0'; +    signal i    : integer   := 0; +begin + +  clk <= not clk after 5 ns; + +  process(clk) +    variable l : line; +    variable s : string(1 to 4) := "    "; +  begin +    if rising_edge(clk) then +      if i = 1 then +        std.env.finish; +      end if; +      l := new string(1 to 13); +      l.all := "hereisastring"; +      report l.all; -- fine +      report l.all(1 to 4); -- fine +      read(l, s); -- fine if commented out +      report s; +      report l.all; -- fine +      report l.all(1 to 4); -- overflow detected +      i <= i+1; +    end if; +  end process; + +end behavioral; diff --git a/testsuite/gna/issue2193/demo2.vhdl b/testsuite/gna/issue2193/demo2.vhdl new file mode 100644 index 000000000..aaffdb30b --- /dev/null +++ b/testsuite/gna/issue2193/demo2.vhdl @@ -0,0 +1,35 @@ +library ieee; +use ieee.std_logic_1164.all; +use std.textio.all; + +entity demo2 is +end demo2; + +architecture behavioral of demo2 is +    signal clk  : std_logic := '0'; +    signal i    : integer   := 0; +begin + +  clk <= not clk after 5 ns; + +  process(clk) +    variable l : line; +    variable s : string(1 to 4) := "    "; +  begin +    if rising_edge(clk) then +      if i = 1 then +        std.env.finish; +      end if; +      l := new string(1 to 13); +      l.all := "hereisastring"; +      report l.all; -- fine +      report l.all(1 to 4); -- fine +      read(l, s); -- fine if commented out +      report s; +      report l.all; -- fine +      report l.all(5 to 13); -- overflow detected +      i <= i+1; +    end if; +  end process; + +end behavioral; diff --git a/testsuite/gna/issue2193/testsuite.sh b/testsuite/gna/issue2193/testsuite.sh new file mode 100755 index 000000000..068140bc7 --- /dev/null +++ b/testsuite/gna/issue2193/testsuite.sh @@ -0,0 +1,14 @@ +#! /bin/sh + +. ../../testenv.sh + +export GHDL_STD_FLAGS=--std=08 +analyze demo2.vhdl +elab_simulate demo2 + +analyze demo.vhdl +elab_simulate_failure demo + +clean + +echo "Test successful" | 
