blob: 01133d29e8e020b17485827bb7b2bb0b16d00664 [file] [log] [blame]
Dmitry V. Levin66a15a52014-01-07 19:32:32 +00001# rt_sigaction on ALPHA has 5 args: sig, act, oact, sigsetsize, restorer.
2# rt_sigaction on SPARC has 5 args: sig, act, oact, restorer, sigsetsize.
3# rt_sigaction on other architectures has 4 args: sig, act, oact, sigsetsize.
4# Some architectures have SA_RESTORER, some don't;
5# in particular, SPARC has and ALPHA hasn't.
6#
7# There are two regexps for each test:
8# the 1st is for any architecture with SA_RESTORER, including SPARC;
Mike Frysinger0189ff92014-08-09 09:32:20 -04009# the 2nd is for any architecture without SA_RESTORER, including ALPHA;
10# the 3rd is for any architecture without SA_RESTORER and swapped args.
Dmitry V. Levin66a15a52014-01-07 19:32:32 +000011
Dmitry V. Levin38593e92014-02-26 16:51:28 +000012BEGIN {
13 lines = 5
14 fail = 0
15}
16
Dmitry V. Levin66a15a52014-01-07 19:32:32 +000017# Test 1.
Dmitry V. Levined7ada22015-01-13 00:06:09 +000018NR == 1 && /^rt_sigaction\(SIGUSR2, \{SIG_IGN, \[HUP INT\], SA_RESTORER\|SA_RESTART, 0x[0-9a-f]+\}, \{SIG_DFL, \[\], 0\}, (0x[0-9a-f]+, )?(4|8|16)\) = 0$/ {next}
19NR == 1 && /^rt_sigaction\(SIGUSR2, \{SIG_IGN, \[HUP INT\], SA_RESTART\}, \{SIG_DFL, \[\], 0\}, (4|8|16)(, 0x[0-9a-f]+)?\) = 0$/ {next}
20NR == 1 && /^rt_sigaction\(SIGUSR2, \{SIG_IGN, \[HUP INT\], SA_RESTART\}, \{SIG_DFL, \[\], 0\}, 0x[0-9a-f]+, (4|8|16)\) = 0$/ {next}
Dmitry V. Levin66a15a52014-01-07 19:32:32 +000021
22# Test 2.
Dmitry V. Levined7ada22015-01-13 00:06:09 +000023NR == 2 && /^rt_sigaction\(SIGUSR2, \{0x[0-9a-f]+, \[QUIT TERM\], SA_RESTORER\|SA_SIGINFO, 0x[0-9a-f]+\}, \{SIG_IGN, \[HUP INT\], SA_RESTORER\|SA_RESTART, 0x[0-9a-f]+\}, (0x[0-9a-f]+, )?(4|8|16)\) = 0$/ {next}
24NR == 2 && /^rt_sigaction\(SIGUSR2, \{0x[0-9a-f]+, \[QUIT TERM\], SA_SIGINFO\}, \{SIG_IGN, \[HUP INT\], SA_RESTART\}, (4|8|16)(, 0x[0-9a-f]+)?\) = 0$/ {next}
25NR == 2 && /^rt_sigaction\(SIGUSR2, \{0x[0-9a-f]+, \[QUIT TERM\], SA_SIGINFO\}, \{SIG_IGN, \[HUP INT\], SA_RESTART\}, 0x[0-9a-f]+, (4|8|16)\) = 0$/ {next}
Dmitry V. Levin66a15a52014-01-07 19:32:32 +000026
27# Test 3.
Dmitry V. Levined7ada22015-01-13 00:06:09 +000028NR == 3 && /^rt_sigaction\(SIGUSR2, \{SIG_DFL, \[\], SA_RESTORER, 0x[0-9a-f]+\}, \{0x[0-9a-f]+, \[QUIT TERM\], SA_RESTORER\|SA_SIGINFO, 0x[0-9a-f]+\}, (0x[0-9a-f]+, )?(4|8|16)\) = 0$/ {next}
29NR == 3 && /^rt_sigaction\(SIGUSR2, \{SIG_DFL, \[\], 0\}, \{0x[0-9a-f]+, \[QUIT TERM\], SA_SIGINFO\}, (4|8|16)(, 0x[0-9a-f]+)?\) = 0$/ {next}
30NR == 3 && /^rt_sigaction\(SIGUSR2, \{SIG_DFL, \[\], 0\}, \{0x[0-9a-f]+, \[QUIT TERM\], SA_SIGINFO\}, 0x[0-9a-f]+, (4|8|16)\) = 0$/ {next}
Dmitry V. Levin66a15a52014-01-07 19:32:32 +000031
Dmitry V. Levin38593e92014-02-26 16:51:28 +000032# Test 4.
Dmitry V. Levined7ada22015-01-13 00:06:09 +000033NR == 4 && /^rt_sigaction\(SIGUSR2, \{SIG_DFL, ~\[HUP( ((RT|SIGRT)[^] ]+|[3-9][0-9]|1[0-9][0-9]))*\], SA_RESTORER, 0x[0-9a-f]+\}, \{SIG_DFL, \[\], SA_RESTORER, 0x[0-9a-f]+\}, (0x[0-9a-f]+, )?(4|8|16)\) = 0$/ {next}
34NR == 4 && /^rt_sigaction\(SIGUSR2, \{SIG_DFL, ~\[HUP( ((RT|SIGRT)[^] ]+|[3-9][0-9]|1[0-9][0-9]))*\], 0\}, \{SIG_DFL, \[\], 0\}, (4|8|16)(, 0x[0-9a-f]+)?\) = 0$/ {next}
35NR == 4 && /^rt_sigaction\(SIGUSR2, \{SIG_DFL, ~\[HUP( ((RT|SIGRT)[^] ]+|[3-9][0-9]|1[0-9][0-9]))*\], 0\}, \{SIG_DFL, \[\], 0\}, 0x[0-9a-f]+, (4|8|16)\) = 0$/ {next}
Dmitry V. Levin38593e92014-02-26 16:51:28 +000036
Dmitry V. Levin66a15a52014-01-07 19:32:32 +000037# The last line.
Dmitry V. Levin38593e92014-02-26 16:51:28 +000038NR == lines && /^\+\+\+ exited with 0 \+\+\+$/ {next}
Dmitry V. Levin66a15a52014-01-07 19:32:32 +000039
40{
Dmitry V. Levinb0c2a9d2014-02-08 00:37:48 +000041 print "Line " NR " does not match: " $0
Dmitry V. Levin38593e92014-02-26 16:51:28 +000042 fail=1
Dmitry V. Levin66a15a52014-01-07 19:32:32 +000043}
Dmitry V. Levinb0c2a9d2014-02-08 00:37:48 +000044
45END {
Dmitry V. Levin38593e92014-02-26 16:51:28 +000046 if (NR != lines) {
47 print "Expected " lines " lines, found " NR " line(s)."
48 print ""
49 exit 1
50 }
51 if (fail) {
52 print ""
Dmitry V. Levinb0c2a9d2014-02-08 00:37:48 +000053 exit 1
54 }
55}