annotate gcc/testsuite/gfortran.dg/chmod_2.f90 @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children 84e7813d76e9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ! { dg-do run { target { ! { *-*-mingw* *-*-cygwin* spu-*-* } } } }
kono
parents:
diff changeset
2 ! { dg-options "-std=gnu" }
kono
parents:
diff changeset
3 ! See PR38956. Test fails on cygwin when user has Administrator rights
kono
parents:
diff changeset
4 implicit none
kono
parents:
diff changeset
5 character(len=*), parameter :: n = "foobar_file_chmod_2"
kono
parents:
diff changeset
6 integer :: i
kono
parents:
diff changeset
7
kono
parents:
diff changeset
8 open (10,file=n)
kono
parents:
diff changeset
9 close (10,status="delete")
kono
parents:
diff changeset
10
kono
parents:
diff changeset
11 open (10,file=n)
kono
parents:
diff changeset
12 close (10,status="keep")
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 if (access(n,"") /= 0 .or. access(n," ") /= 0 .or. access(n,"r") /= 0 .or. &
kono
parents:
diff changeset
15 access(n,"R") /= 0 .or. access(n,"w") /= 0 .or. access(n,"W") /= 0) &
kono
parents:
diff changeset
16 call abort
kono
parents:
diff changeset
17
kono
parents:
diff changeset
18 i = chmod (n, "a+x")
kono
parents:
diff changeset
19 if (i == 0) then
kono
parents:
diff changeset
20 if (access(n,"x") /= 0 .or. access(n,"X") /= 0) call abort
kono
parents:
diff changeset
21 end if
kono
parents:
diff changeset
22
kono
parents:
diff changeset
23 i = chmod (n, "a-w")
kono
parents:
diff changeset
24 if (i == 0 .and. getuid() /= 0) then
kono
parents:
diff changeset
25 if (access(n,"w") == 0 .or. access(n,"W") == 0) call abort
kono
parents:
diff changeset
26 end if
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 open (10,file=n)
kono
parents:
diff changeset
29 close (10,status="delete")
kono
parents:
diff changeset
30
kono
parents:
diff changeset
31 if (access(n,"") == 0 .or. access(n," ") == 0 .or. access(n,"r") == 0 .or. &
kono
parents:
diff changeset
32 access(n,"R") == 0 .or. access(n,"w") == 0 .or. access(n,"W") == 0) &
kono
parents:
diff changeset
33 call abort
kono
parents:
diff changeset
34
kono
parents:
diff changeset
35 end