OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gfortran.dg/] [fseek.f90] - Blame information for rev 694

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 694 jeremybenn
! { dg-do run }
2
 
3
PROGRAM test_fseek
4
  INTEGER, PARAMETER :: SEEK_SET = 0, SEEK_CUR = 1, SEEK_END = 2, fd=10
5
  INTEGER :: ierr = 0
6
  INTEGER :: newline_length
7
 
8
  ! We first need to determine if a newline is one or two characters
9
  open (911,status="scratch")
10
  write(911,"()")
11
  newline_length = ftell(911)
12
  close (911)
13
  if (newline_length < 1 .or. newline_length > 2) call abort()
14
 
15
  open(fd, status="scratch")
16
  ! expected position: one leading blank + 10 + newline
17
  WRITE(fd, *) "1234567890"
18
  IF (FTELL(fd) /= 11 + newline_length) CALL abort()
19
 
20
  ! move backward from current position
21
  CALL FSEEK(fd, -11 - newline_length, SEEK_CUR, ierr)
22
  IF (ierr /= 0 .OR. FTELL(fd) /= 0) CALL abort()
23
 
24
  ! move to negative position (error)
25
  CALL FSEEK(fd, -1, SEEK_SET, ierr)
26
  IF (ierr == 0 .OR. FTELL(fd) /= 0) CALL abort()
27
 
28
  ! move forward from end (11 + 10 + newline)
29
  CALL FSEEK(fd, 10, SEEK_END, ierr)
30
  IF (ierr /= 0 .OR. FTELL(fd) /= 21 + newline_length) CALL abort()
31
 
32
  ! set position (0)
33
  CALL FSEEK(fd, 0, SEEK_SET, ierr)
34
  IF (ierr /= 0 .OR. FTELL(fd) /= 0) CALL abort()
35
 
36
  ! move forward from current position
37
  CALL FSEEK(fd, 5, SEEK_CUR, ierr)
38
  IF (ierr /= 0 .OR. FTELL(fd) /= 5) CALL abort()
39
 
40
  CALL FSEEK(fd, HUGE(0_1), SEEK_SET, ierr)
41
  IF (ierr /= 0 .OR. FTELL(fd) /= HUGE(0_1)) CALL abort()
42
 
43
  CALL FSEEK(fd, HUGE(0_2), SEEK_SET, ierr)
44
  IF (ierr /= 0 .OR. FTELL(fd) /= HUGE(0_2)) CALL abort()
45
 
46
  CALL FSEEK(fd, HUGE(0_4), SEEK_SET, ierr)
47
  IF (ierr /= 0 .OR. FTELL(fd) /= HUGE(0_4)) CALL abort()
48
 
49
  CALL FSEEK(fd, -HUGE(0_4), SEEK_CUR, ierr)
50
  IF (ierr /= 0 .OR. FTELL(fd) /= 0) CALL abort()
51
END PROGRAM
52
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.