diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/streamio_11.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/streamio_11.f90 | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/streamio_11.f90 b/gcc/testsuite/gfortran.dg/streamio_11.f90 new file mode 100644 index 000000000..2084a2315 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/streamio_11.f90 @@ -0,0 +1,43 @@ +! { dg-do run } +! PR29277 Stream IO test 11, tests formatted form. +! Contributed by Tobias Burnas. +program stream_test + implicit none + character(len=*), parameter :: rec1 = 'record1' + character(len=*), parameter :: rec2 = 'record2' + character(len=50) :: str1,str2 + integer :: len, i + real :: r + + open(10,form='formatted',access='stream',& + status='scratch',position='rewind') + write(10,'(a)') rec1//new_line('a')//rec2 + rewind(10) + read(10,*) str1 + read(10,*) str2 + if(str1 /= rec1 .or. str2 /= rec2) call abort() + rewind(10) + read(10,'(a)') str1 + read(10,'(a)') str2 + if(str1 /= rec1 .or. str2 /= rec2) call abort() + close(10) + + open(10,form='formatted',access='stream',& + status='scratch',position='rewind') + write(10,*) '123 '//trim(rec1)//' 1e-12' + write(10,*) '12345.6789' + rewind(10) + read(10,*) i,str1 + read(10,*) r + if(i /= 123 .or. str1 /= rec1 .or. r /= 12345.6789) & + call abort() + close(10) + + open(unit=10,form='unformatted',access='stream', & + status='scratch',position='rewind') + write(10) rec1//new_line('a')//rec2 + len = len_trim(rec1//new_line('a')//rec2) + rewind(10) + read(10) str1(1:len) + if(str1 /= rec1//new_line('a')//rec2) call abort() +end program stream_test |