blob: 0395e8250044053eae6976801c55f80683f5986b [file] [log] [blame]
Dmitry V. Levin30bcb792015-03-04 12:31:18 +00001#!/bin/sh
2
3# Check rt_sigprocmask and sigreturn/rt_sigreturn decoding.
4
5. "${srcdir=.}/init.sh"
6
7check_prog grep
8
9./sigreturn ||
10 fail_ 'sigreturn failed'
11
12args='-esignal ./sigreturn'
13$STRACE -o "$LOG" $args ||
14 fail_ "$STRACE $args does not work"
15
16grep_log()
17{
18 LC_ALL=C grep -E -x -e "$*" < "$LOG" > /dev/null || {
19 cat "$LOG"
20 fail_ "$STRACE $args output mismatch"
21 }
22}
23
24mask='\[(USR2 CHLD|CHLD USR2) RT_2 RT_3 RT_4 RT_31 RT_32\]'
25rt_sigprocmask='rt_sigprocmask\(SIG_SETMASK, '"$mask"', NULL, [[:digit:]]+\) += 0'
26osf_sigprocmask='osf_sigprocmask\(SIG_SETMASK, '"$mask"'\) += 0 +\(old mask \[[^]]*\]\)'
27grep_log "$rt_sigprocmask|$osf_sigprocmask"
28grep_log '(rt_)?sigreturn\((\{mask='"$mask"'\})?\) += 0'
29
30
31exit 0