From 391c91e95f1fe6958e06a1b2ddd314b9952ff6b3 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Tue, 18 Apr 2017 06:45:04 +0200 Subject: Add testcase for #20 Close #20 --- testsuite/gna/issue20/fp_write_read_issue.vhdl | 32 ++++++++++++++++++++++++++ testsuite/gna/issue20/testsuite.sh | 12 ++++++++++ 2 files changed, 44 insertions(+) create mode 100644 testsuite/gna/issue20/fp_write_read_issue.vhdl create mode 100755 testsuite/gna/issue20/testsuite.sh (limited to 'testsuite') diff --git a/testsuite/gna/issue20/fp_write_read_issue.vhdl b/testsuite/gna/issue20/fp_write_read_issue.vhdl new file mode 100644 index 000000000..b83bc51eb --- /dev/null +++ b/testsuite/gna/issue20/fp_write_read_issue.vhdl @@ -0,0 +1,32 @@ +entity fp_write_read_issue is +end entity fp_write_read_issue ; +architecture doit of fp_write_read_issue is + use std.textio.all ; + file MyFile : text ; +begin + process + variable A, B : real ; + variable buf : line ; + begin + file_open(MyFile, "./fp_write_read_file_A.txt", WRITE_MODE) ; + A := 5.0 / 7.0 ; + write(buf, A) ; + writeline(MyFile, buf) ; + file_close(MyFile) ; + swrite(buf, "A = ") ; + write(buf, A) ; + writeline(OUTPUT, buf) ; + file_close(MyFile) ; + file_open(MyFile, "./fp_write_read_file_A.txt", READ_MODE) ; + readline(MyFile, buf) ; + read(buf, B); + file_close(MyFile) ; + swrite(buf, "B = ") ; + write(buf, B) ; + writeline(OUTPUT, buf) ; + Assert A = B report "Read value differs from write value" severity failure ; + + std.env.stop ; + wait ; + end process ; +end architecture doit ; diff --git a/testsuite/gna/issue20/testsuite.sh b/testsuite/gna/issue20/testsuite.sh new file mode 100755 index 000000000..5bfed4bfe --- /dev/null +++ b/testsuite/gna/issue20/testsuite.sh @@ -0,0 +1,12 @@ +#! /bin/sh + +. ../../testenv.sh + +export GHDL_STD_FLAGS=--std=08 +analyze fp_write_read_issue.vhdl +elab_simulate fp_write_read_issue + +rm -f fp_write_read_file_A.txt +clean + +echo "Test successful" -- cgit v1.2.3