Use test-skeleton.c in tst-sem3 and tst-sem4
[glibc.git] / nptl / tst-cancel-wrappers.sh
blobe41ed512b21abecece6f0120e56d3abd2f903609
1 #! /bin/sh
2 # Test whether all cancelable functions are cancelable.
3 # Copyright (C) 2002-2014 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, see
19 # <http://www.gnu.org/licenses/>.
21 NM="$1"; shift
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["fdatasync"]=1
30 C["fsync"]=1
31 C["msgrcv"]=1
32 C["msgsnd"]=1
33 C["msync"]=1
34 C["nanosleep"]=1
35 C["open"]=1
36 C["open64"]=1
37 C["pause"]=1
38 C["poll"]=1
39 C["pread"]=1
40 C["pread64"]=1
41 C["pselect"]=1
42 C["pwrite"]=1
43 C["pwrite64"]=1
44 C["read"]=1
45 C["readv"]=1
46 C["recv"]=1
47 C["recvfrom"]=1
48 C["recvmsg"]=1
49 C["select"]=1
50 C["send"]=1
51 C["sendmsg"]=1
52 C["sendto"]=1
53 C["sigpause"]=1
54 C["sigsuspend"]=1
55 C["sigwait"]=1
56 C["sigwaitinfo"]=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