! { dg-do run { target fd_truncate } }
! { dg-options "-fdec" }
!
! Run-time tests for values of DEC I/O parameters (doesn't test functionality).
!

subroutine check_cc (fd, cc)
  implicit none
  character(*), intent(in) :: cc
  integer, intent(in) :: fd
  character(20) :: cc_inq
  inquire(unit=fd, carriagecontrol=cc_inq)
  if (cc_inq .ne. cc) then
    print *, '(', fd, ') cc expected ', cc, ' was ', cc_inq
    STOP 1
  endif
endsubroutine

subroutine check_share (fd, share)
  implicit none
  character(*), intent(in) :: share
  integer, intent(in) :: fd
  character(20) :: share_inq
  inquire(unit=fd, share=share_inq)
  if (share_inq .ne. share) then
    print *, '(', fd, ') share expected ', share, ' was ', share_inq
    STOP 2
  endif
endsubroutine

subroutine check_action (fd, acc)
  implicit none
  character(*), intent(in) :: acc
  integer, intent(in) :: fd
  character(20) acc_inq
  inquire(unit=fd, action=acc_inq)
  if (acc_inq .ne. acc) then
    print *, '(', fd, ') access expected ', acc, ' was ', acc_inq
    STOP 3
  endif
endsubroutine

implicit none

integer, parameter :: fd=3
character(*), parameter :: fname  = 'dec_io_1.txt'

!!!! <default>

open(unit=fd,  file=fname, action='WRITE')
call check_cc(fd, 'LIST')
call check_share(fd, 'NODENY')
write (fd,*) 'test'
close(unit=fd)

!!!! READONLY

open (unit=fd, file=fname, readonly)
call check_action(fd, 'READ')
close (unit=fd)

!!!! SHARED / SHARE='DENYNONE'

open (unit=fd, file=fname, action='read', shared)
call check_share(fd, 'DENYNONE')
close (unit=fd)

open (unit=fd, file=fname, action='read', share='DENYNONE')
call check_share(fd, 'DENYNONE')
close (unit=fd)

!!!! NOSHARED / SHARE='DENYRW'

open (unit=fd, file=fname, action='write', noshared)
call check_share(fd, 'DENYRW')
close (unit=fd)

open (unit=fd, file=fname, action='write', share='DENYRW')
call check_share(fd, 'DENYRW')
close (unit=fd)

!!!! CC=FORTRAN

open(unit=fd,  file=fname, action ='WRITE', carriagecontrol='FORTRAN')
call check_cc(fd, 'FORTRAN')
close(unit=fd)

!!!! CC=LIST

open(unit=fd,  file=fname, action ='WRITE', carriagecontrol='LIST')
call check_cc(fd, 'LIST')
close(unit=fd)

!!!! CC=NONE

open(unit=fd,  file=fname, action ='WRITE', carriagecontrol='NONE')
call check_cc(fd, 'NONE')
close(unit=fd, status='delete') ! cleanup temp file


end
