diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gfortran.dg/unf_read_corrupted_1.f90')
-rw-r--r-- | gcc-4.9/gcc/testsuite/gfortran.dg/unf_read_corrupted_1.f90 | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gfortran.dg/unf_read_corrupted_1.f90 b/gcc-4.9/gcc/testsuite/gfortran.dg/unf_read_corrupted_1.f90 new file mode 100644 index 000000000..e7bb441e9 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gfortran.dg/unf_read_corrupted_1.f90 @@ -0,0 +1,27 @@ +! { dg-do run } +! Test the error message when an unformatted file has become +! corrupted. +program main + implicit none + integer(kind=4) :: i1, i2 + integer :: ios + character(len=50) :: msg + + ! Write out a truncated unformatted sequential file by + ! using unformatted stream. + + open (10, form="unformatted", access="stream", file="foo.dat", & + status="unknown") + write (10) 16_4, 1_4 + close (10, status="keep") + + ! Try to read + open (10, file="foo.dat", form="unformatted", access="sequential") + i1 = 0 + i2 = 0 + read (10, iostat=ios, iomsg=msg) i1, i2 + if (ios == 0) call abort + if (i1 /= 1) call abort + if (msg /= "Unformatted file structure has been corrupted") call abort + close (10, status="delete") +end program main |