summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/write_rewind_2.f
blob: 501995c6eb53ddf129199d64618f11238e77fd0f (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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
! { dg-do run }
! PR 26499  Test write with rewind sequences to make sure buffering and
! end-of-file conditions are handled correctly.  Derived from test case by Dale
! Ranta.  Submitted by Jerry DeLisle <jvdelisle@gcc.gnu.org>.
      program test
      dimension idata(1011)
      idata = -42
      open(unit=11,form='unformatted')
        idata(1)   = -705
        idata(  1011)   = -706
       write(11)idata
        idata(1)   = -706
        idata(  1011)   = -707
       write(11)idata
        idata(1)   = -707
        idata(  1011)   = -708
       write(11)idata
       read(11,end=        1000 )idata
       call abort()
 1000  continue
       rewind 11
       read(11,end=        1001 )idata
        if(idata(1).ne. -705.or.idata(  1011).ne. -706)call abort()
 1001  continue
       close(11,status='keep')        
      open(unit=11,form='unformatted')
      rewind 11
      read(11)idata
      if(idata(1).ne.-705)then
      call abort()
      endif
      read(11)idata
      if(idata(1).ne.-706)then
      call abort()
      endif
      read(11)idata
      if(idata(1).ne.-707)then
      call abort()
      endif
      close(11,status='delete')  
      stop
      end