aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/testsuite/ChangeLog11
-rw-r--r--gcc/testsuite/gfortran.dg/advance_4.f9010
-rw-r--r--gcc/testsuite/gfortran.dg/advance_5.f9017
-rw-r--r--gcc/testsuite/gfortran.dg/direct_io_6.f9016
4 files changed, 54 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b524f7b..c04ae81 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,14 @@
+2007-04-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libgfortran/31366
+ * gfortran.dg/direct_io_6.f90: New test.
+
+2007-04-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libgfortran/31207
+ * gfortran.dg/advance_5.f90: New test.
+ * gfortran.dg/advance_6.f90: New test.
+
2007-04-01 Danny Smith <dannysmith@users.sourceforge.net>
* g++.dg/ext/dllimport6.C: Remove extra ';'.
diff --git a/gcc/testsuite/gfortran.dg/advance_4.f90 b/gcc/testsuite/gfortran.dg/advance_4.f90
new file mode 100644
index 0000000..ab22311
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/advance_4.f90
@@ -0,0 +1,10 @@
+! { dg-do run }
+! PR31207 Last record truncated for read after short write
+program main
+ character(10) :: answer
+ write (12,'(A,T2,A)',advance="no") 'XXXXXX','ABCD'
+ close (12)
+ read (12, '(6A)') answer
+ close (12, status="delete")
+ if (answer /= "XABCDX") call abort()
+end program main \ No newline at end of file
diff --git a/gcc/testsuite/gfortran.dg/advance_5.f90 b/gcc/testsuite/gfortran.dg/advance_5.f90
new file mode 100644
index 0000000..3a48e53
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/advance_5.f90
@@ -0,0 +1,17 @@
+! { dg-do run }
+! PR31207 Last record truncated for read after short write.
+character(len=20) :: b
+! write something no advance
+open(10,file="fort.10",position="rewind")
+write(10, '(a,t1,a)',advance='no') 'xxxxxx', 'abc'
+close(10)
+! append some data
+open(10,file="fort.10",position="append")
+write(10, '(a)') 'def'
+close(10)
+! check what is in the first record
+open(10,file="fort.10",position="rewind")
+read(10,'(a)') b
+close(10, status="delete")
+if (b.ne."abcxxx") call abort()
+end
diff --git a/gcc/testsuite/gfortran.dg/direct_io_6.f90 b/gcc/testsuite/gfortran.dg/direct_io_6.f90
new file mode 100644
index 0000000..d090704
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/direct_io_6.f90
@@ -0,0 +1,16 @@
+! { dg-do run }
+! pr31366 last record truncated for read after short write, direct access file.
+! test case derived from pr, submitted by jerry delisle <jvdelisle@gcc.gnu.org
+ program test
+ character(len=8) :: as_written, as_read
+ character(1) :: byte
+ as_written = "12345678"
+ open (76, access="direct", recl=12, status="scratch")
+ write(76, rec=1) as_written
+ write(76, rec=2) as_written
+ read(76, rec=1) as_read, byte, byte, byte, byte
+ read(76, rec=2, err=3) as_read, byte, byte, byte, byte
+ stop
+ 3 call abort()
+ end program test
+