130bcb792cf3d26f915c88317d687a8ae838ecf0cDmitry V. Levin#!/bin/sh
238a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin#
330bcb792cf3d26f915c88317d687a8ae838ecf0cDmitry V. Levin# Check rt_sigprocmask and sigreturn/rt_sigreturn decoding.
438a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin#
58df07e10395552076ab1ebb9c806f0c47c5c7bedDmitry V. Levin# Copyright (c) 2015-2016 Dmitry V. Levin <ldv@altlinux.org>
638a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin# All rights reserved.
738a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin#
838a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin# Redistribution and use in source and binary forms, with or without
938a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin# modification, are permitted provided that the following conditions
1038a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin# are met:
1138a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin# 1. Redistributions of source code must retain the above copyright
1238a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin#    notice, this list of conditions and the following disclaimer.
1338a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin# 2. Redistributions in binary form must reproduce the above copyright
1438a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin#    notice, this list of conditions and the following disclaimer in the
1538a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin#    documentation and/or other materials provided with the distribution.
1638a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin# 3. The name of the author may not be used to endorse or promote products
1738a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin#    derived from this software without specific prior written permission.
1838a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin#
1938a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
2038a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
2138a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
2238a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
2338a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
2438a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2538a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2638a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2738a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
2838a34c9349267c99ce1ddbd0b6e985147415d355Dmitry V. Levin# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2930bcb792cf3d26f915c88317d687a8ae838ecf0cDmitry V. Levin
3030bcb792cf3d26f915c88317d687a8ae838ecf0cDmitry V. Levin. "${srcdir=.}/init.sh"
3130bcb792cf3d26f915c88317d687a8ae838ecf0cDmitry V. Levin
328f54664d68f5f39098e448815fefe69762b4672aDmitry V. Levinrun_prog
338f54664d68f5f39098e448815fefe69762b4672aDmitry V. Levinrun_strace -esignal $args
3430bcb792cf3d26f915c88317d687a8ae838ecf0cDmitry V. Levin
358df07e10395552076ab1ebb9c806f0c47c5c7bedDmitry V. Levinmask='\[(USR2 CHLD|CHLD USR2) RT_3 RT_4 RT_5 RT_26 RT_27\]'
3630bcb792cf3d26f915c88317d687a8ae838ecf0cDmitry V. Levinrt_sigprocmask='rt_sigprocmask\(SIG_SETMASK, '"$mask"', NULL, [[:digit:]]+\) += 0'
3730bcb792cf3d26f915c88317d687a8ae838ecf0cDmitry V. Levinosf_sigprocmask='osf_sigprocmask\(SIG_SETMASK, '"$mask"'\) += 0 +\(old mask \[[^]]*\]\)'
388f54664d68f5f39098e448815fefe69762b4672aDmitry V. LevinEXPECTED="$LOG.expected"
398f54664d68f5f39098e448815fefe69762b4672aDmitry V. Levin
408f54664d68f5f39098e448815fefe69762b4672aDmitry V. Levincat > "$EXPECTED" << __EOF__
418f54664d68f5f39098e448815fefe69762b4672aDmitry V. Levin$rt_sigprocmask|$osf_sigprocmask
428f54664d68f5f39098e448815fefe69762b4672aDmitry V. Levin(rt_)?sigreturn\\((\\{mask=$mask\\})?\\) += 0
438f54664d68f5f39098e448815fefe69762b4672aDmitry V. Levin__EOF__
4430bcb792cf3d26f915c88317d687a8ae838ecf0cDmitry V. Levin
458f54664d68f5f39098e448815fefe69762b4672aDmitry V. Levinmatch_grep "$LOG" "$EXPECTED"
468f54664d68f5f39098e448815fefe69762b4672aDmitry V. Levinrm -f "$EXPECTED"
4730bcb792cf3d26f915c88317d687a8ae838ecf0cDmitry V. Levin
4830bcb792cf3d26f915c88317d687a8ae838ecf0cDmitry V. Levinexit 0
49