URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [gfortran.dg/] [fseek.f90] - Rev 302
Compare with Previous | Blame | View Log
! { dg-do run }PROGRAM test_fseekINTEGER, PARAMETER :: SEEK_SET = 0, SEEK_CUR = 1, SEEK_END = 2, fd=10INTEGER :: ierr = 0INTEGER :: newline_length! We first need to determine if a newline is one or two charactersopen (911,status="scratch")write(911,"()")newline_length = ftell(911)close (911)if (newline_length < 1 .or. newline_length > 2) call abort()open(fd, status="scratch")! expected position: one leading blank + 10 + newlineWRITE(fd, *) "1234567890"IF (FTELL(fd) /= 11 + newline_length) CALL abort()! move backward from current positionCALL FSEEK(fd, -11 - newline_length, SEEK_CUR, ierr)IF (ierr /= 0 .OR. FTELL(fd) /= 0) CALL abort()! move to negative position (error)CALL FSEEK(fd, -1, SEEK_SET, ierr)IF (ierr == 0 .OR. FTELL(fd) /= 0) CALL abort()! move forward from end (11 + 10 + newline)CALL FSEEK(fd, 10, SEEK_END, ierr)IF (ierr /= 0 .OR. FTELL(fd) /= 21 + newline_length) CALL abort()! set position (0)CALL FSEEK(fd, 0, SEEK_SET, ierr)IF (ierr /= 0 .OR. FTELL(fd) /= 0) CALL abort()! move forward from current positionCALL FSEEK(fd, 5, SEEK_CUR, ierr)IF (ierr /= 0 .OR. FTELL(fd) /= 5) CALL abort()CALL FSEEK(fd, HUGE(0_1), SEEK_SET, ierr)IF (ierr /= 0 .OR. FTELL(fd) /= HUGE(0_1)) CALL abort()CALL FSEEK(fd, HUGE(0_2), SEEK_SET, ierr)IF (ierr /= 0 .OR. FTELL(fd) /= HUGE(0_2)) CALL abort()CALL FSEEK(fd, HUGE(0_4), SEEK_SET, ierr)IF (ierr /= 0 .OR. FTELL(fd) /= HUGE(0_4)) CALL abort()CALL FSEEK(fd, -HUGE(0_4), SEEK_CUR, ierr)IF (ierr /= 0 .OR. FTELL(fd) /= 0) CALL abort()END PROGRAM
