]> git.ipfire.org Git - thirdparty/glibc.git/blame - nptl/tst-cancel-wrappers.sh
Update copyright dates with scripts/update-copyrights.
[thirdparty/glibc.git] / nptl / tst-cancel-wrappers.sh
CommitLineData
48d0341c 1#!/bin/sh
211d90c5 2# Test whether all cancelable functions are cancelable.
04277e02 3# Copyright (C) 2002-2019 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
59ba27a6
PE
18# License along with the GNU C Library; if not, see
19# <http://www.gnu.org/licenses/>.
f077a4a9 20
aba75984 21NM="$1"; shift
f077a4a9 22while [ $# -gt 0 ]; do
aba75984 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
aa75f64c 29C["fdatasync"]=1
f077a4a9 30C["fsync"]=1
f077a4a9
UD
31C["msgrcv"]=1
32C["msgsnd"]=1
33C["msync"]=1
34C["nanosleep"]=1
35C["open"]=1
36C["open64"]=1
37C["pause"]=1
38C["poll"]=1
39C["pread"]=1
40C["pread64"]=1
41C["pselect"]=1
42C["pwrite"]=1
43C["pwrite64"]=1
44C["read"]=1
45C["readv"]=1
46C["recv"]=1
47C["recvfrom"]=1
48C["recvmsg"]=1
49C["select"]=1
50C["send"]=1
51C["sendmsg"]=1
52C["sendto"]=1
53C["sigpause"]=1
54C["sigsuspend"]=1
55C["sigwait"]=1
56C["sigwaitinfo"]=1
f077a4a9
UD
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=""
d6d20de8 77 object=gensub(/^.*\[(.*)\]:$/, "\\1", 1, $0)
f077a4a9
UD
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