]> git.ipfire.org Git - thirdparty/glibc.git/blame - nptl/tst-cancel-wrappers.sh
[BZ #2510, BZ #2830, BZ #3137, BZ #3313, BZ #3426, BZ #3465, BZ #3480, BZ #3483,...
[thirdparty/glibc.git] / nptl / tst-cancel-wrappers.sh
CommitLineData
f077a4a9 1#! /bin/sh
211d90c5 2# Test whether all cancelable functions are cancelable.
11bf311e 3# Copyright (C) 2002, 2003 Free Software Foundation, Inc.
f077a4a9
UD
4# This file is part of the GNU C Library.
5# Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
6
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.
11
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.
16
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.
21
22while [ $# -gt 0 ]; do
a73ab6df 23 ( nm -P $1; echo 'end[end]:' ) | gawk ' BEGIN {
f077a4a9
UD
24C["accept"]=1
25C["close"]=1
26C["connect"]=1
27C["creat"]=1
28C["fcntl"]=1
29C["fsync"]=1
f077a4a9
UD
30C["msgrcv"]=1
31C["msgsnd"]=1
32C["msync"]=1
33C["nanosleep"]=1
34C["open"]=1
35C["open64"]=1
36C["pause"]=1
37C["poll"]=1
38C["pread"]=1
39C["pread64"]=1
40C["pselect"]=1
41C["pwrite"]=1
42C["pwrite64"]=1
43C["read"]=1
44C["readv"]=1
45C["recv"]=1
46C["recvfrom"]=1
47C["recvmsg"]=1
48C["select"]=1
49C["send"]=1
50C["sendmsg"]=1
51C["sendto"]=1
52C["sigpause"]=1
53C["sigsuspend"]=1
54C["sigwait"]=1
55C["sigwaitinfo"]=1
56C["system"]=1
57C["tcdrain"]=1
58C["wait"]=1
59C["waitid"]=1
60C["waitpid"]=1
61C["write"]=1
62C["writev"]=1
63C["__xpg_sigpause"]=1
64}
65/:$/ {
66 if (seen)
67 {
52f3d213 68 if (!seen_enable || !seen_disable)
f077a4a9
UD
69 {
70 printf "in '$1'(%s) %s'\''s cancellation missing\n", object, seen
71 ret = 1
72 }
73 }
74 seen=""
75 seen_enable=""
76 seen_disable=""
77 object=gensub(/^.*\[(.*)\]:$/,"\\1","",$0)
78 next
79}
80{
81 if (C[$1] && $2 ~ /^[TW]$/)
82 seen=$1
211d90c5 83 else if ($1 ~ /^([.]|)__(libc|pthread)_enable_asynccancel$/ && $2 == "U")
f077a4a9 84 seen_enable=1
211d90c5 85 else if ($1 ~ /^([.]|)__(libc|pthread)_disable_asynccancel$/ && $2 == "U")
f077a4a9
UD
86 seen_disable=1
87}
88END {
89 exit ret
90}' || exit
91 shift
92done