* sysdeps/unix/closedir.c: Outside libc don't use locking.
[glibc.git] / nptl / tst-cancel-wrappers.sh
blobd6f16d1ed2d52a7e4d747399f2b2d644bffde60c
1 #! /bin/sh
2 # Test whether all cancelable functions are cancelable.
3 # Copyright (C) 2002, 2003 Free Software Foundation, Inc.
4 # This file is part of the GNU C Library.
5 # Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
7 # The GNU C Library is free software; you can redistribute it and/or
8 # modify it under the terms of the GNU Lesser General Public
9 # License as published by the Free Software Foundation; either
10 # version 2.1 of the License, or (at your option) any later version.
12 # The GNU C Library is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 # Lesser General Public License for more details.
17 # You should have received a copy of the GNU Lesser General Public
18 # License along with the GNU C Library; if not, write to the Free
19 # Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
20 # 02111-1307 USA.
22 while [ $# -gt 0 ]; do
23 ( nm -P $1; echo 'end[end]:' ) | gawk ' BEGIN {
24 C["accept"]=1
25 C["close"]=1
26 C["connect"]=1
27 C["creat"]=1
28 C["fcntl"]=1
29 C["fsync"]=1
30 C["msgrcv"]=1
31 C["msgsnd"]=1
32 C["msync"]=1
33 C["nanosleep"]=1
34 C["open"]=1
35 C["open64"]=1
36 C["pause"]=1
37 C["poll"]=1
38 C["pread"]=1
39 C["pread64"]=1
40 C["pselect"]=1
41 C["pwrite"]=1
42 C["pwrite64"]=1
43 C["read"]=1
44 C["readv"]=1
45 C["recv"]=1
46 C["recvfrom"]=1
47 C["recvmsg"]=1
48 C["select"]=1
49 C["send"]=1
50 C["sendmsg"]=1
51 C["sendto"]=1
52 C["sigpause"]=1
53 C["sigsuspend"]=1
54 C["sigwait"]=1
55 C["sigwaitinfo"]=1
56 C["system"]=1
57 C["tcdrain"]=1
58 C["wait"]=1
59 C["waitid"]=1
60 C["waitpid"]=1
61 C["write"]=1
62 C["writev"]=1
63 C["__xpg_sigpause"]=1
65 /:$/ {
66 if (seen)
68 if (!seen_enable || !seen_disable)
70 printf "in '$1'(%s) %s'\''s cancellation missing\n", object, seen
71 ret = 1
74 seen=""
75 seen_enable=""
76 seen_disable=""
77 object=gensub(/^.*\[(.*)\]:$/,"\\1","",$0)
78 next
81 if (C[$1] && $2 ~ /^[TW]$/)
82 seen=$1
83 else if ($1 ~ /^([.]|)__(libc|pthread)_enable_asynccancel$/ && $2 == "U")
84 seen_enable=1
85 else if ($1 ~ /^([.]|)__(libc|pthread)_disable_asynccancel$/ && $2 == "U")
86 seen_disable=1
88 END {
89 exit ret
90 }' || exit
91 shift
92 done