Blame nptl/tst-cancel-wrappers.sh

Packit Service 82fcde
#!/bin/sh
Packit Service 82fcde
# Test whether all cancelable functions are cancelable.
Packit Service 82fcde
# Copyright (C) 2002-2018 Free Software Foundation, Inc.
Packit Service 82fcde
# This file is part of the GNU C Library.
Packit Service 82fcde
# Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
Packit Service 82fcde
Packit Service 82fcde
# The GNU C Library is free software; you can redistribute it and/or
Packit Service 82fcde
# modify it under the terms of the GNU Lesser General Public
Packit Service 82fcde
# License as published by the Free Software Foundation; either
Packit Service 82fcde
# version 2.1 of the License, or (at your option) any later version.
Packit Service 82fcde
Packit Service 82fcde
# The GNU C Library is distributed in the hope that it will be useful,
Packit Service 82fcde
# but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 82fcde
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 82fcde
# Lesser General Public License for more details.
Packit Service 82fcde
Packit Service 82fcde
# You should have received a copy of the GNU Lesser General Public
Packit Service 82fcde
# License along with the GNU C Library; if not, see
Packit Service 82fcde
# <http://www.gnu.org/licenses/>.
Packit Service 82fcde
Packit Service 82fcde
NM="$1"; shift
Packit Service 82fcde
while [ $# -gt 0 ]; do
Packit Service 82fcde
  ( $NM -P $1; echo 'end[end]:' ) | gawk ' BEGIN {
Packit Service 82fcde
C["accept"]=1
Packit Service 82fcde
C["close"]=1
Packit Service 82fcde
C["connect"]=1
Packit Service 82fcde
C["creat"]=1
Packit Service 82fcde
C["fcntl"]=1
Packit Service 82fcde
C["fdatasync"]=1
Packit Service 82fcde
C["fsync"]=1
Packit Service 82fcde
C["msgrcv"]=1
Packit Service 82fcde
C["msgsnd"]=1
Packit Service 82fcde
C["msync"]=1
Packit Service 82fcde
C["nanosleep"]=1
Packit Service 82fcde
C["open"]=1
Packit Service 82fcde
C["open64"]=1
Packit Service 82fcde
C["pause"]=1
Packit Service 82fcde
C["poll"]=1
Packit Service 82fcde
C["pread"]=1
Packit Service 82fcde
C["pread64"]=1
Packit Service 82fcde
C["pselect"]=1
Packit Service 82fcde
C["pwrite"]=1
Packit Service 82fcde
C["pwrite64"]=1
Packit Service 82fcde
C["read"]=1
Packit Service 82fcde
C["readv"]=1
Packit Service 82fcde
C["recv"]=1
Packit Service 82fcde
C["recvfrom"]=1
Packit Service 82fcde
C["recvmsg"]=1
Packit Service 82fcde
C["select"]=1
Packit Service 82fcde
C["send"]=1
Packit Service 82fcde
C["sendmsg"]=1
Packit Service 82fcde
C["sendto"]=1
Packit Service 82fcde
C["sigpause"]=1
Packit Service 82fcde
C["sigsuspend"]=1
Packit Service 82fcde
C["sigwait"]=1
Packit Service 82fcde
C["sigwaitinfo"]=1
Packit Service 82fcde
C["tcdrain"]=1
Packit Service 82fcde
C["wait"]=1
Packit Service 82fcde
C["waitid"]=1
Packit Service 82fcde
C["waitpid"]=1
Packit Service 82fcde
C["write"]=1
Packit Service 82fcde
C["writev"]=1
Packit Service 82fcde
C["__xpg_sigpause"]=1
Packit Service 82fcde
}
Packit Service 82fcde
/:$/ {
Packit Service 82fcde
  if (seen)
Packit Service 82fcde
    {
Packit Service 82fcde
      if (!seen_enable || !seen_disable)
Packit Service 82fcde
	{
Packit Service 82fcde
	  printf "in '$1'(%s) %s'\''s cancellation missing\n", object, seen
Packit Service 82fcde
	  ret = 1
Packit Service 82fcde
	}
Packit Service 82fcde
    }
Packit Service 82fcde
  seen=""
Packit Service 82fcde
  seen_enable=""
Packit Service 82fcde
  seen_disable=""
Packit Service 82fcde
  object=gensub(/^.*\[(.*)\]:$/, "\\1", 1, $0)
Packit Service 82fcde
  next
Packit Service 82fcde
}
Packit Service 82fcde
{
Packit Service 82fcde
  if (C[$1] && $2 ~ /^[TW]$/)
Packit Service 82fcde
    seen=$1
Packit Service 82fcde
  else if ($1 ~ /^([.]|)__(libc|pthread)_enable_asynccancel$/ && $2 == "U")
Packit Service 82fcde
    seen_enable=1
Packit Service 82fcde
  else if ($1 ~ /^([.]|)__(libc|pthread)_disable_asynccancel$/ && $2 == "U")
Packit Service 82fcde
    seen_disable=1
Packit Service 82fcde
}
Packit Service 82fcde
END {
Packit Service 82fcde
  exit ret
Packit Service 82fcde
}' || exit
Packit Service 82fcde
  shift
Packit Service 82fcde
done