aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/endfile_5.f90
blob: 90eaa6b2e5b9a51cb568ee1ec1124725e2032b7b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
! { dg-do run }
! PR107031 Check that endfile truncates at end of record 5.
program test_truncate
    integer :: num_rec, tmp, i, nr, j
    open(10, file="in.dat", action='readwrite')

    do i=1,10
      write(10, *) i
    end do

    rewind (10)

    num_rec = 5
    i = 1
    ioerr = 0
    do while (i <= num_rec .and. ioerr == 0)
        read(10, *, iostat=ioerr) tmp
        i = i + 1
    enddo
    endfile(10)
    rewind (10)
    i = 0
    ioerr = 0
    do while (i <= num_rec + 1 .and. ioerr == 0)
      read(10, *, iostat=ioerr) j
      i = i + 1
    end do
    close(10, status='delete')
    if (i - 1 /= 5) stop 1
end program test_truncate