]> granicus.if.org Git - strace/blob - tests/rt_sigaction.awk
Update copyright headers
[strace] / tests / rt_sigaction.awk
1 #!/bin/gawk
2 #
3 # Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
4 # Copyright (c) 2016 Elvira Khabirova <lineprinter0@gmail.com>
5 # Copyright (c) 2016-2017 The strace developers.
6 # All rights reserved.
7 #
8 # Redistribution and use in source and binary forms, with or without
9 # modification, are permitted provided that the following conditions
10 # are met:
11 # 1. Redistributions of source code must retain the above copyright
12 #    notice, this list of conditions and the following disclaimer.
13 # 2. Redistributions in binary form must reproduce the above copyright
14 #    notice, this list of conditions and the following disclaimer in the
15 #    documentation and/or other materials provided with the distribution.
16 # 3. The name of the author may not be used to endorse or promote products
17 #    derived from this software without specific prior written permission.
18 #
19 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22 # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
30 BEGIN {
31         n1[1][1] = n2[1][1] = "SIG_IGN"
32         n1[1][2] = n2[1][2] = "\\[HUP INT\\]"
33         n1[1][3] = "SA_RESTORER\\|SA_RESTART"
34         n2[1][3] = "SA_RESTART"
35         n1[1][4] = ", sa_restorer=0x[0-9a-f]+"
36         n2[1][4] = ""
37
38         n1[2][1] = n2[2][1] = "0x[0-9a-f]+"
39         n1[2][2] = n2[2][2] = "\\[QUIT TERM\\]"
40         n1[2][3] = "SA_RESTORER\\|SA_SIGINFO"
41         n2[2][3] = "SA_SIGINFO"
42         n1[2][4] = ", sa_restorer=0x[0-9a-f]+"
43         n2[2][4] = ""
44
45         n1[3][1] = n2[3][1] = "SIG_DFL"
46         n1[3][2] = n2[3][2] = "\\[\\]"
47         n1[3][3] = "SA_RESTORER"
48         n2[3][3] = "0"
49         n1[3][4] = ", sa_restorer=0x[0-9a-f]+"
50         n2[3][4] = ""
51
52         n1[4][1] = n2[4][1] = "SIG_DFL"
53         n1[4][2] = n2[4][2] = "~\\[HUP( ((RT|SIGRT)[^] ]+|[3-9][0-9]|1[0-9][0-9]))*\\]"
54         n1[4][3] = "SA_RESTORER"
55         n2[4][3] = "0"
56         n1[4][4] = ", sa_restorer=0x[0-9a-f]+"
57         n2[4][4] = ""
58
59         o1[1][1] = o2[1][1] = "SIG_DFL"
60         o1[1][2] = o2[1][2] = "\\[\\]"
61         o1[1][3] = o2[1][3] = "0"
62         o1[1][4] = o2[1][4] = ""
63
64         for (i = 2; i < 5; i++) {
65                 for (j = 1; j < 5; j++) {
66                         o1[i][j] = n1[i - 1][j]
67                         o2[i][j] = n2[i - 1][j]
68                 }
69         }
70
71         a1 = "(0x[0-9a-f]+, )?(4|8|16)"
72         a2 = "(4|8|16)(, 0x[0-9a-f]+)?"
73         a3 = "0x[0-9a-f]+, (4|8|16)"
74
75         for (i = 1; i < 5; i++) {
76                 r[i] = "^rt_sigaction\\(SIGUSR2, (" \
77                         "\\{sa_handler=" n1[i][1] ", sa_mask=" n1[i][2] \
78                         ", sa_flags=" n1[i][3] n1[i][4] "\\}, \\{sa_handler=" \
79                         o1[i][1] ", sa_mask=" o1[i][2] ", sa_flags=" o1[i][3] \
80                         o1[i][4] "\\}, " a1 "|" \
81                         "\\{sa_handler=" n2[i][1] ", sa_mask=" n2[i][2] \
82                         ", sa_flags=" n2[i][3] n2[i][4] "\\}, \\{sa_handler=" \
83                         o2[i][1] ", sa_mask=" o2[i][2] ", sa_flags=" o2[i][3] \
84                         o2[i][4] "\\}, " a2 "|" \
85                         "\\{sa_handler=" n2[i][1] ", sa_mask=" n2[i][2] \
86                         ", sa_flags=" n2[i][3] n2[i][4] "\\}, \\{sa_handler=" \
87                         o2[i][1] ", sa_mask=" o2[i][2] ", sa_flags=" o2[i][3] \
88                         o2[i][4] "\\}, " a3 ")\\) = 0$"
89         }
90         s[5] = "+++ exited with 0 +++"
91
92         lines = 5
93         fail = 0
94 }
95
96 @include "match.awk"