aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/seq_io.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/seq_io.f90')
-rw-r--r--gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/seq_io.f9081
1 files changed, 81 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/seq_io.f90 b/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/seq_io.f90
new file mode 100644
index 000000000..e16888829
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/seq_io.f90
@@ -0,0 +1,81 @@
+! pr 15472
+! sequential access files
+!
+! this test verifies the most basic sequential unformatted I/O
+! write 3 records of various sizes
+! then read them back
+! and compare with what was written
+!
+ implicit none
+ integer size
+ parameter(size=100)
+ logical debug
+ data debug /.FALSE./
+! set debug to true for help in debugging failures.
+ integer m(2)
+ integer n
+ real*4 r(size)
+ integer i
+ m(1) = Z'11111111'
+ m(2) = Z'22222222'
+ n = Z'33333333'
+ do i = 1,size
+ r(i) = i
+ end do
+ write(9)m ! an array of 2
+ write(9)n ! an integer
+ write(9)r ! an array of reals
+! zero all the results so we can compare after they are read back
+ do i = 1,size
+ r(i) = 0
+ end do
+ m(1) = 0
+ m(2) = 0
+ n = 0
+
+ rewind(9)
+ read(9)m
+ read(9)n
+ read(9)r
+!
+! check results
+ if (m(1).ne.Z'11111111') then
+ if (debug) then
+ print '(A,Z8)','m(1) incorrect. m(1) = ',m(1)
+ else
+ call abort
+ endif
+ endif
+
+ if (m(2).ne.Z'22222222') then
+ if (debug) then
+ print '(A,Z8)','m(2) incorrect. m(2) = ',m(2)
+ else
+ call abort
+ endif
+ endif
+
+ if (n.ne.Z'33333333') then
+ if (debug) then
+ print '(A,Z8)','n incorrect. n = ',n
+ else
+ call abort
+ endif
+ endif
+
+ do i = 1,size
+ if (int(r(i)).ne.i) then
+ if (debug) then
+ print*,'element ',i,' was ',r(i),' should be ',i
+ else
+ call abort
+ endif
+ endif
+ end do
+! use hexdump to look at the file "fort.9"
+ if (debug) then
+ close(9)
+ else
+ close(9,status='DELETE')
+ endif
+ end