diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/endfile.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/endfile.f90 | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/endfile.f90 b/gcc/testsuite/gfortran.dg/endfile.f90 new file mode 100644 index 000000000..60875ce23 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/endfile.f90 @@ -0,0 +1,31 @@ +! { dg-do run { target fd_truncate } } +! pr18364 endfile does not truncate file. +! write out 20 records +! rewind +! read 10 records +! endfile +! close file +! open file +! detect file has only 10 records + implicit none + integer i,j + open(unit=10,file='test.dat',access='sequential',status='replace') + do i=1, 20 + write (10,'(I4)') i + end do + rewind(10) + do i=1,10 + read (10,'(I4)') j + end do + endfile(10) + close(10) + open(unit=10,file='test.dat',access='sequential',status='old') + do i=1,20 + read (10,'(I4)',end=99) j + end do + ! should never get here + call abort + 99 continue ! end of file + if (j.ne.10) call abort + close(10,status='delete') + end |