提交 9c6fcc2c 编写于 作者: D dhy308

Fix codeCheck errors

Issue: I6AEEI
Test: Build & Boot Devices
Signed-off-by: Ndhy308 <tony.gan@huawei.com>
上级 f8a2eb1e
......@@ -13,7 +13,7 @@
* limitations under the License.
*/
#define SIGCHIAN_TEST_SET_MASK(set, fun, signo, num) do{ \
#define SIGCHAIN_TEST_SET_MASK(set, fun, signo, num) do{ \
int result = sigemptyset(&set); \
if (result != 0) { \
EXPECT_FALSE(fun, (result == 0)); \
......@@ -29,3 +29,14 @@
EXPECT_FALSE(fun, (result == 0)); \
} \
} while (0)
#define SIGCHIAN_TEST_SIGNAL_NUM_1 1
#define SIGCHIAN_TEST_SIGNAL_NUM_2 2
#define SIGCHIAN_TEST_SIGNAL_NUM_10 10
#define SIGCHAIN_SIGNAL_37 37
#define SIGCHAIN_SIGNAL_43 43
#define SIGCHAIN_SIGNAL_50 50
#define SIGCHAIN_SIGNAL_56 56
#define SIGCHAIN_SIGNAL_64 64
#define SIGCHAIN_SIGNAL_65 65
\ No newline at end of file
......@@ -45,8 +45,8 @@ static void sigchain_add_special_handler_001()
add_special_signal_handler(SIGSEGV, &sigsegv);
sigset_t set = {0};
int signo[1] = {SIGSEGV};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_add_special_handler_001", signo, 1);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_1] = {SIGSEGV};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_add_special_handler_001", signo, SIGCHIAN_TEST_SIGNAL_NUM_1);
}
int main(void)
......
......@@ -56,8 +56,8 @@ static void sigchain_add_special_handler_002()
add_special_signal_handler(SIGSEGV, &sigsegv);
sigset_t set = {0};
int signo[1] = {SIGSEGV};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_add_special_handler_002", signo, 1);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_1] = {SIGSEGV};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_add_special_handler_002", signo, SIGCHIAN_TEST_SIGNAL_NUM_1);
}
int main(void)
......
......@@ -58,8 +58,8 @@ static void sigchain_add_special_handler_003()
add_special_signal_handler(SIGSEGV, &sigsegv);
sigset_t set = {0};
int signo[1] = {SIGSEGV};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_add_special_handler_003", signo, 1);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_1] = {SIGSEGV};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_add_special_handler_003", signo, SIGCHIAN_TEST_SIGNAL_NUM_1);
}
int main(void)
......
......@@ -77,8 +77,8 @@ static void sigchain_add_special_handler_004()
add_special_signal_handler(SIGSEGV, &sigsegv2);
sigset_t set = {0};
int signo[1] = {SIGSEGV};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_add_special_handler_004", signo, 1);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_1] = {SIGSEGV};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_add_special_handler_004", signo, SIGCHIAN_TEST_SIGNAL_NUM_1);
}
int main(void)
......
......@@ -87,8 +87,8 @@ static void sigchain_add_special_handler_005()
add_special_signal_handler(SIGSEGV, &sigsegv2);
sigset_t set = {0};
int signo[1] = {SIGSEGV};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_add_special_handler_005", signo, 1);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_1] = {SIGSEGV};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_add_special_handler_005", signo, SIGCHIAN_TEST_SIGNAL_NUM_1);
}
int main(void)
......
......@@ -90,8 +90,8 @@ static void sigchain_add_special_handler_006()
add_special_signal_handler(SIGSEGV, &sigsegv3);
sigset_t set = {0};
int signo[1] = {SIGSEGV};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_add_special_handler_006", signo, 1);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_1] = {SIGSEGV};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_add_special_handler_006", signo, SIGCHIAN_TEST_SIGNAL_NUM_1);
}
int main(void)
......
......@@ -61,8 +61,8 @@ static void sigchain_add_special_handler_007()
add_special_signal_handler(SIGHUP, &sigsegv1);
sigset_t set = {0};
int signo[2] = {SIGSEGV, SIGHUP};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_add_special_handler_007", signo, 2);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_2] = {SIGSEGV, SIGHUP};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_add_special_handler_007", signo, SIGCHIAN_TEST_SIGNAL_NUM_2);
}
int main(void)
......
......@@ -75,8 +75,8 @@ static void sigchain_add_special_handler_008()
add_special_signal_handler(SIGHUP, &sigsegv1);
sigset_t set = {0};
int signo[2] = {SIGSEGV, SIGHUP};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_add_special_handler_008", signo, 2);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_2] = {SIGSEGV, SIGHUP};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_add_special_handler_008", signo, SIGCHIAN_TEST_SIGNAL_NUM_2);
}
int main(void)
......
......@@ -78,8 +78,8 @@ static void sigchain_add_special_handler_009()
add_special_signal_handler(SIGHUP, &sigsegv2);
sigset_t set = {0};
int signo[2] = {SIGSEGV, SIGHUP};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_add_special_handler_009", signo, 2);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_2] = {SIGSEGV, SIGHUP};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_add_special_handler_009", signo, SIGCHIAN_TEST_SIGNAL_NUM_2);
}
int main(void)
......
......@@ -70,7 +70,7 @@ static bool sigchain_special_handler5(int signo, siginfo_t *siginfo, void *ucont
*/
static bool sigchain_special_handler6(int signo, siginfo_t *siginfo, void *ucontext_raw)
{
EXPECT_EQ("sigchain_add_special_handler_010", signo, 37);
EXPECT_EQ("sigchain_add_special_handler_010", signo, SIGCHAIN_SIGNAL_37);
return false;
}
......@@ -79,7 +79,7 @@ static bool sigchain_special_handler6(int signo, siginfo_t *siginfo, void *ucont
*/
static bool sigchain_special_handler7(int signo, siginfo_t *siginfo, void *ucontext_raw)
{
EXPECT_EQ("sigchain_add_special_handler_010", signo, 43);
EXPECT_EQ("sigchain_add_special_handler_010", signo, SIGCHAIN_SIGNAL_43);
return false;
}
......@@ -88,7 +88,7 @@ static bool sigchain_special_handler7(int signo, siginfo_t *siginfo, void *ucont
*/
static bool sigchain_special_handler8(int signo, siginfo_t *siginfo, void *ucontext_raw)
{
EXPECT_EQ("sigchain_add_special_handler_010", signo, 50);
EXPECT_EQ("sigchain_add_special_handler_010", signo, SIGCHAIN_SIGNAL_50);
return false;
}
......@@ -97,7 +97,7 @@ static bool sigchain_special_handler8(int signo, siginfo_t *siginfo, void *ucont
*/
static bool sigchain_special_handler9(int signo, siginfo_t *siginfo, void *ucontext_raw)
{
EXPECT_EQ("sigchain_add_special_handler_010", signo, 56);
EXPECT_EQ("sigchain_add_special_handler_010", signo, SIGCHAIN_SIGNAL_56);
return false;
}
......@@ -106,7 +106,7 @@ static bool sigchain_special_handler9(int signo, siginfo_t *siginfo, void *ucont
*/
static bool sigchain_special_handler10(int signo, siginfo_t *siginfo, void *ucontext_raw)
{
EXPECT_EQ("sigchain_add_special_handler_010", signo, 64);
EXPECT_EQ("sigchain_add_special_handler_010", signo, SIGCHAIN_SIGNAL_64);
return false;
}
......@@ -158,39 +158,45 @@ static void sigchain_add_special_handler_010()
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(37, &sigsegv5);
add_special_signal_handler(SIGCHAIN_SIGNAL_37, &sigsegv5);
struct signal_chain_action sigsegv6 = {
.sca_sigaction = sigchain_special_handler7,
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(43, &sigsegv6);
add_special_signal_handler(SIGCHAIN_SIGNAL_43, &sigsegv6);
struct signal_chain_action sigsegv7 = {
.sca_sigaction = sigchain_special_handler8,
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(50, &sigsegv7);
add_special_signal_handler(SIGCHAIN_SIGNAL_50, &sigsegv7);
struct signal_chain_action sigsegv8 = {
.sca_sigaction = sigchain_special_handler9,
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(56, &sigsegv8);
add_special_signal_handler(SIGCHAIN_SIGNAL_56, &sigsegv8);
struct signal_chain_action sigsegv9 = {
.sca_sigaction = sigchain_special_handler10,
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(64, &sigsegv9);
add_special_signal_handler(SIGCHAIN_SIGNAL_64, &sigsegv9);
sigset_t set = {0};
int signo[10] = {SIGHUP, SIGABRT, SIGSEGV, SIGURG, SIGSYS, 37, 43, 50, 56, 64};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_add_special_handler_010", signo, 10);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_10] = {SIGHUP, SIGABRT,
SIGSEGV, SIGURG, SIGSYS,
SIGCHAIN_SIGNAL_37,
SIGCHAIN_SIGNAL_43,
SIGCHAIN_SIGNAL_50,
SIGCHAIN_SIGNAL_56,
SIGCHAIN_SIGNAL_64};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_add_special_handler_010", signo, SIGCHIAN_TEST_SIGNAL_NUM_10);
}
int main(void)
......@@ -201,10 +207,10 @@ int main(void)
raise(SIGSEGV);
raise(SIGURG);
raise(SIGSYS);
raise(37);
raise(43);
raise(50);
raise(56);
raise(64);
raise(SIGCHAIN_SIGNAL_37);
raise(SIGCHAIN_SIGNAL_43);
raise(SIGCHAIN_SIGNAL_50);
raise(SIGCHAIN_SIGNAL_56);
raise(SIGCHAIN_SIGNAL_64);
return t_status;
}
\ No newline at end of file
......@@ -70,7 +70,7 @@ static bool sigchain_special_handler5(int signo, siginfo_t *siginfo, void *ucont
*/
static bool sigchain_special_handler6(int signo, siginfo_t *siginfo, void *ucontext_raw)
{
EXPECT_EQ("sigchain_add_special_handler_011", signo, 37);
EXPECT_EQ("sigchain_add_special_handler_011", signo, SIGCHAIN_SIGNAL_37);
return false;
}
......@@ -79,7 +79,7 @@ static bool sigchain_special_handler6(int signo, siginfo_t *siginfo, void *ucont
*/
static bool sigchain_special_handler7(int signo, siginfo_t *siginfo, void *ucontext_raw)
{
EXPECT_EQ("sigchain_add_special_handler_011", signo, 43);
EXPECT_EQ("sigchain_add_special_handler_011", signo, SIGCHAIN_SIGNAL_43);
return false;
}
......@@ -88,7 +88,7 @@ static bool sigchain_special_handler7(int signo, siginfo_t *siginfo, void *ucont
*/
static bool sigchain_special_handler8(int signo, siginfo_t *siginfo, void *ucontext_raw)
{
EXPECT_EQ("sigchain_add_special_handler_011", signo, 50);
EXPECT_EQ("sigchain_add_special_handler_011", signo, SIGCHAIN_SIGNAL_50);
return false;
}
......@@ -97,7 +97,7 @@ static bool sigchain_special_handler8(int signo, siginfo_t *siginfo, void *ucont
*/
static bool sigchain_special_handler9(int signo, siginfo_t *siginfo, void *ucontext_raw)
{
EXPECT_EQ("sigchain_add_special_handler_011", signo, 56);
EXPECT_EQ("sigchain_add_special_handler_011", signo, SIGCHAIN_SIGNAL_56);
return false;
}
......@@ -106,7 +106,7 @@ static bool sigchain_special_handler9(int signo, siginfo_t *siginfo, void *ucont
*/
static bool sigchain_special_handler10(int signo, siginfo_t *siginfo, void *ucontext_raw)
{
EXPECT_EQ("sigchain_add_special_handler_011", signo, 64);
EXPECT_EQ("sigchain_add_special_handler_011", signo, SIGCHAIN_SIGNAL_64);
return false;
}
......@@ -125,16 +125,16 @@ static void signal_handler(int signo)
EXPECT_EQ("sigchain_add_special_handler_011", signo, SIGURG);
} else if (signo == SIGSYS) {
EXPECT_EQ("sigchain_add_special_handler_011", signo, SIGSYS);
} else if (signo == 37) {
EXPECT_EQ("sigchain_add_special_handler_011", signo, 37);
} else if (signo == 43) {
EXPECT_EQ("sigchain_add_special_handler_011", signo, 43);
} else if (signo == 50) {
EXPECT_EQ("sigchain_add_special_handler_011", signo, 50);
} else if (signo ==56) {
EXPECT_EQ("sigchain_add_special_handler_011", signo, 56);
} else if (signo == SIGCHAIN_SIGNAL_37) {
EXPECT_EQ("sigchain_add_special_handler_011", signo, SIGCHAIN_SIGNAL_37);
} else if (signo == SIGCHAIN_SIGNAL_43) {
EXPECT_EQ("sigchain_add_special_handler_011", signo, SIGCHAIN_SIGNAL_43);
} else if (signo == SIGCHAIN_SIGNAL_50) {
EXPECT_EQ("sigchain_add_special_handler_011", signo, SIGCHAIN_SIGNAL_50);
} else if (signo ==SIGCHAIN_SIGNAL_56) {
EXPECT_EQ("sigchain_add_special_handler_011", signo, SIGCHAIN_SIGNAL_56);
} else {
EXPECT_EQ("sigchain_add_special_handler_011", signo, 64);
EXPECT_EQ("sigchain_add_special_handler_011", signo, SIGCHAIN_SIGNAL_64);
}
}
......@@ -151,11 +151,11 @@ static void sigchain_add_special_handler_011()
signal(SIGSEGV, signal_handler);
signal(SIGURG, signal_handler);
signal(SIGSYS, signal_handler);
signal(37, signal_handler);
signal(43, signal_handler);
signal(50, signal_handler);
signal(56, signal_handler);
signal(64, signal_handler);
signal(SIGCHAIN_SIGNAL_37, signal_handler);
signal(SIGCHAIN_SIGNAL_43, signal_handler);
signal(SIGCHAIN_SIGNAL_50, signal_handler);
signal(SIGCHAIN_SIGNAL_56, signal_handler);
signal(SIGCHAIN_SIGNAL_64, signal_handler);
struct signal_chain_action sigsegv = {
.sca_sigaction = sigchain_special_handler1,
......@@ -197,39 +197,45 @@ static void sigchain_add_special_handler_011()
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(37, &sigsegv5);
add_special_signal_handler(SIGCHAIN_SIGNAL_37, &sigsegv5);
struct signal_chain_action sigsegv6 = {
.sca_sigaction = sigchain_special_handler7,
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(43, &sigsegv6);
add_special_signal_handler(SIGCHAIN_SIGNAL_43, &sigsegv6);
struct signal_chain_action sigsegv7 = {
.sca_sigaction = sigchain_special_handler8,
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(50, &sigsegv7);
add_special_signal_handler(SIGCHAIN_SIGNAL_50, &sigsegv7);
struct signal_chain_action sigsegv8 = {
.sca_sigaction = sigchain_special_handler9,
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(56, &sigsegv8);
add_special_signal_handler(SIGCHAIN_SIGNAL_56, &sigsegv8);
struct signal_chain_action sigsegv9 = {
.sca_sigaction = sigchain_special_handler10,
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(64, &sigsegv9);
add_special_signal_handler(SIGCHAIN_SIGNAL_64, &sigsegv9);
sigset_t set = {0};
int signo[10] = {SIGHUP, SIGABRT, SIGSEGV, SIGURG, SIGSYS, 37, 43, 50, 56, 64};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_add_special_handler_011", signo, 10);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_10] = {SIGHUP, SIGABRT, SIGSEGV,
SIGURG, SIGSYS,
SIGCHAIN_SIGNAL_37,
SIGCHAIN_SIGNAL_43,
SIGCHAIN_SIGNAL_50,
SIGCHAIN_SIGNAL_56,
SIGCHAIN_SIGNAL_64};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_add_special_handler_011", signo, SIGCHIAN_TEST_SIGNAL_NUM_10);
}
int main(void)
......@@ -240,10 +246,10 @@ int main(void)
raise(SIGSEGV);
raise(SIGURG);
raise(SIGSYS);
raise(37);
raise(43);
raise(50);
raise(56);
raise(64);
raise(SIGCHAIN_SIGNAL_37);
raise(SIGCHAIN_SIGNAL_43);
raise(SIGCHAIN_SIGNAL_50);
raise(SIGCHAIN_SIGNAL_56);
raise(SIGCHAIN_SIGNAL_64);
return t_status;
}
\ No newline at end of file
......@@ -71,7 +71,7 @@ static bool sigchain_special_handler5(int signo, siginfo_t *siginfo, void *ucont
*/
static bool sigchain_special_handler6(int signo, siginfo_t *siginfo, void *ucontext_raw)
{
EXPECT_EQ("sigchain_add_special_handler_012", signo, 37);
EXPECT_EQ("sigchain_add_special_handler_012", signo, SIGCHAIN_SIGNAL_37);
return false;
}
......@@ -80,7 +80,7 @@ static bool sigchain_special_handler6(int signo, siginfo_t *siginfo, void *ucont
*/
static bool sigchain_special_handler7(int signo, siginfo_t *siginfo, void *ucontext_raw)
{
EXPECT_EQ("sigchain_add_special_handler_012", signo, 43);
EXPECT_EQ("sigchain_add_special_handler_012", signo, SIGCHAIN_SIGNAL_43);
return false;
}
......@@ -89,7 +89,7 @@ static bool sigchain_special_handler7(int signo, siginfo_t *siginfo, void *ucont
*/
static bool sigchain_special_handler8(int signo, siginfo_t *siginfo, void *ucontext_raw)
{
EXPECT_EQ("sigchain_add_special_handler_012", signo, 50);
EXPECT_EQ("sigchain_add_special_handler_012", signo, SIGCHAIN_SIGNAL_50);
return false;
}
......@@ -98,7 +98,7 @@ static bool sigchain_special_handler8(int signo, siginfo_t *siginfo, void *ucont
*/
static bool sigchain_special_handler9(int signo, siginfo_t *siginfo, void *ucontext_raw)
{
EXPECT_EQ("sigchain_add_special_handler_012", signo, 56);
EXPECT_EQ("sigchain_add_special_handler_012", signo, SIGCHAIN_SIGNAL_56);
return false;
}
......@@ -107,7 +107,7 @@ static bool sigchain_special_handler9(int signo, siginfo_t *siginfo, void *ucont
*/
static bool sigchain_special_handler10(int signo, siginfo_t *siginfo, void *ucontext_raw)
{
EXPECT_EQ("sigchain_add_special_handler_012", signo, 64);
EXPECT_EQ("sigchain_add_special_handler_012", signo, SIGCHAIN_SIGNAL_64);
return false;
}
......@@ -126,16 +126,16 @@ static void signal_sigaction(int signo)
EXPECT_EQ("sigchain_add_special_handler_012", signo, SIGURG);
} else if (signo == SIGSYS) {
EXPECT_EQ("sigchain_add_special_handler_012", signo, SIGSYS);
} else if (signo == 37) {
EXPECT_EQ("sigchain_add_special_handler_012", signo, 37);
} else if (signo == 43) {
EXPECT_EQ("sigchain_add_special_handler_012", signo, 43);
} else if (signo == 50) {
EXPECT_EQ("sigchain_add_special_handler_012", signo, 50);
} else if (signo ==56) {
EXPECT_EQ("sigchain_add_special_handler_012", signo, 56);
} else if (signo == SIGCHAIN_SIGNAL_37) {
EXPECT_EQ("sigchain_add_special_handler_012", signo, SIGCHAIN_SIGNAL_37);
} else if (signo == SIGCHAIN_SIGNAL_43) {
EXPECT_EQ("sigchain_add_special_handler_012", signo, SIGCHAIN_SIGNAL_43);
} else if (signo == SIGCHAIN_SIGNAL_50) {
EXPECT_EQ("sigchain_add_special_handler_012", signo, SIGCHAIN_SIGNAL_50);
} else if (signo ==SIGCHAIN_SIGNAL_56) {
EXPECT_EQ("sigchain_add_special_handler_012", signo, SIGCHAIN_SIGNAL_56);
} else {
EXPECT_EQ("sigchain_add_special_handler_012", signo, 64);
EXPECT_EQ("sigchain_add_special_handler_012", signo, SIGCHAIN_SIGNAL_64);
}
}
......@@ -175,27 +175,27 @@ static void sigchain_add_special_handler_012()
struct sigaction sigaction5 = {
.sa_handler = signal_sigaction,
};
sigaction(37, &sigaction5, NULL);
sigaction(SIGCHAIN_SIGNAL_37, &sigaction5, NULL);
struct sigaction sigaction6 = {
.sa_handler = signal_sigaction,
};
sigaction(43, &sigaction6, NULL);
sigaction(SIGCHAIN_SIGNAL_43, &sigaction6, NULL);
struct sigaction sigaction7 = {
.sa_handler = signal_sigaction,
};
sigaction(50, &sigaction7, NULL);
sigaction(SIGCHAIN_SIGNAL_50, &sigaction7, NULL);
struct sigaction sigaction8 = {
.sa_handler = signal_sigaction,
};
sigaction(56, &sigaction8, NULL);
sigaction(SIGCHAIN_SIGNAL_56, &sigaction8, NULL);
struct sigaction sigaction9 = {
.sa_handler = signal_sigaction,
};
sigaction(64, &sigaction9, NULL);
sigaction(SIGCHAIN_SIGNAL_64, &sigaction9, NULL);
struct signal_chain_action sigsegv = {
.sca_sigaction = sigchain_special_handler1,
......@@ -237,39 +237,44 @@ static void sigchain_add_special_handler_012()
.sca_mask = {},
.sca_flags = SIGCHAIN_ALLOW_NORETURN,
};
add_special_signal_handler(37, &sigsegv5);
add_special_signal_handler(SIGCHAIN_SIGNAL_37, &sigsegv5);
struct signal_chain_action sigsegv6 = {
.sca_sigaction = sigchain_special_handler7,
.sca_mask = {},
.sca_flags = SIGCHAIN_ALLOW_NORETURN,
};
add_special_signal_handler(43, &sigsegv6);
add_special_signal_handler(SIGCHAIN_SIGNAL_43, &sigsegv6);
struct signal_chain_action sigsegv7 = {
.sca_sigaction = sigchain_special_handler8,
.sca_mask = {},
.sca_flags = SIGCHAIN_ALLOW_NORETURN,
};
add_special_signal_handler(50, &sigsegv7);
add_special_signal_handler(SIGCHAIN_SIGNAL_50, &sigsegv7);
struct signal_chain_action sigsegv8 = {
.sca_sigaction = sigchain_special_handler9,
.sca_mask = {},
.sca_flags = SIGCHAIN_ALLOW_NORETURN,
};
add_special_signal_handler(56, &sigsegv8);
add_special_signal_handler(SIGCHAIN_SIGNAL_56, &sigsegv8);
struct signal_chain_action sigsegv9 = {
.sca_sigaction = sigchain_special_handler10,
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(64, &sigsegv9);
add_special_signal_handler(SIGCHAIN_SIGNAL_64, &sigsegv9);
sigset_t set = {0};
int signo[10] = {SIGHUP, SIGABRT, SIGSEGV, SIGURG, SIGSYS, 37, 43, 50, 56, 64};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_add_special_handler_012", signo, 10);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_10] = {SIGHUP, SIGABRT, SIGSEGV, SIGURG, SIGSYS,
SIGCHAIN_SIGNAL_37,
SIGCHAIN_SIGNAL_43,
SIGCHAIN_SIGNAL_50,
SIGCHAIN_SIGNAL_56,
SIGCHAIN_SIGNAL_64};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_add_special_handler_012", signo, SIGCHIAN_TEST_SIGNAL_NUM_10);
}
int main(void)
......@@ -280,10 +285,10 @@ int main(void)
raise(SIGSEGV);
raise(SIGURG);
raise(SIGSYS);
raise(37);
raise(43);
raise(50);
raise(56);
raise(64);
raise(SIGCHAIN_SIGNAL_37);
raise(SIGCHAIN_SIGNAL_43);
raise(SIGCHAIN_SIGNAL_50);
raise(SIGCHAIN_SIGNAL_56);
raise(SIGCHAIN_SIGNAL_64);
return t_status;
}
\ No newline at end of file
......@@ -18,6 +18,7 @@
#include <stdlib.h>
#include "test.h"
#include "functionalext.h"
#include "sigchain_util.h"
/**
* @brief the special handler
......@@ -56,7 +57,7 @@ static void sigchain_add_special_handler_013()
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(65, &sigsegv1);
add_special_signal_handler(SIGCHAIN_SIGNAL_65, &sigsegv1);
}
int main(void)
......
......@@ -87,8 +87,8 @@ static void sigchain_intercept_sigaction_002()
sigaction(SIGSEGV, &siga2, NULL);
sigset_t set = {0};
int signo[2] = {SIGSEGV, SIGHUP};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_intercept_sigaction_002", signo, 2);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_2] = {SIGSEGV, SIGHUP};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_intercept_sigaction_002", signo, SIGCHIAN_TEST_SIGNAL_NUM_2);
}
int main(void)
......
......@@ -87,8 +87,8 @@ static void sigchain_intercept_sigaction_003()
sigaction(SIGSEGV, &siga2, NULL);
sigset_t set = {0};
int signo[2] = {SIGSEGV, SIGHUP};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_intercept_sigaction_002", signo, 2);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_2] = {SIGSEGV, SIGHUP};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_intercept_sigaction_002", signo, SIGCHIAN_TEST_SIGNAL_NUM_2);
remove_special_signal_handler(SIGHUP, sigchain_special_handler);
remove_special_signal_handler(SIGSEGV, sigchain_special_handler1);
......
......@@ -80,8 +80,8 @@ static void sigchain_intercept_signal_002()
signal(SIGSEGV, signal_handler2);
sigset_t set = {0};
int signo[2] = {SIGSEGV, SIGHUP};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_intercept_signal_002", signo, 2);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_2] = {SIGSEGV, SIGHUP};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_intercept_signal_002", signo, SIGCHIAN_TEST_SIGNAL_NUM_2);
}
int main(void)
......
......@@ -83,8 +83,8 @@ static void sigchain_intercept_signal_003()
remove_special_signal_handler(SIGSEGV, sigchain_special_handler1);
sigset_t set = {0};
int signo[2] = {SIGSEGV, SIGHUP};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_intercept_sigaction_002", signo, 2);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_2] = {SIGSEGV, SIGHUP};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_intercept_sigaction_002", signo, SIGCHIAN_TEST_SIGNAL_NUM_2);
}
int main(void)
......
......@@ -55,8 +55,8 @@ static void sigchain_intercept_sigprocmask_001()
sigaction(SIGSEGV, &siga2, NULL);
sigset_t set = {0};
int signo[2] = {SIGHUP, SIGSEGV};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_intercept_sigprocmask_001", signo, 2);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_2] = {SIGHUP, SIGSEGV};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_intercept_sigprocmask_001", signo, SIGCHIAN_TEST_SIGNAL_NUM_2);
}
int main(void)
......
......@@ -87,8 +87,8 @@ static void sigchain_intercept_sigprocmask_002()
add_special_signal_handler(SIGSEGV, &sigsegv1);
sigset_t set = {0};
int signo[2] = {SIGHUP, SIGSEGV};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_intercept_sigprocmask_002", signo, 2);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_2] = {SIGHUP, SIGSEGV};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_intercept_sigprocmask_002", signo, SIGCHIAN_TEST_SIGNAL_NUM_2);
}
int main(void)
......
......@@ -87,8 +87,8 @@ static void sigchain_intercept_sigprocmask_003()
add_special_signal_handler(SIGSEGV, &sigsegv1);
sigset_t set = {0};
int signo[2] = {SIGHUP, SIGSEGV};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_intercept_sigprocmask_003", signo, 2);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_2] = {SIGHUP, SIGSEGV};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_intercept_sigprocmask_003", signo, SIGCHIAN_TEST_SIGNAL_NUM_2);
remove_special_signal_handler(SIGHUP, sigchain_special_handler);
remove_special_signal_handler(SIGSEGV, sigchain_special_handler1);
......
......@@ -88,8 +88,8 @@ static void sigchain_intercept_sigprocmask_004()
add_special_signal_handler(SIGSEGV, &sigsegv1);
sigset_t set = {0};
int signo[2] = {SIGHUP, SIGSEGV};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_intercept_sigprocmask_004", signo, 2);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_2] = {SIGHUP, SIGSEGV};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_intercept_sigprocmask_004", signo, SIGCHIAN_TEST_SIGNAL_NUM_2);
}
void thread_func(void *data)
......
......@@ -55,8 +55,8 @@ static void sigchain_rm_special_handler_002()
add_special_signal_handler(SIGSEGV, &sigsegv);
sigset_t set = {0};
int signo[1] = {SIGSEGV};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_add_special_handler_002", signo, 1);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_1] = {SIGSEGV};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_add_special_handler_002", signo, SIGCHIAN_TEST_SIGNAL_NUM_1);
remove_special_signal_handler(SIGSEGV, sigchain_special_handler);
}
......
......@@ -58,8 +58,8 @@ static void sigchain_rm_special_handler_003()
add_special_signal_handler(SIGSEGV, &sigsegv);
sigset_t set = {0};
int signo[1] = {SIGSEGV};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_rm_special_handler_003", signo, 1);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_1] = {SIGSEGV};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_rm_special_handler_003", signo, SIGCHIAN_TEST_SIGNAL_NUM_1);
remove_special_signal_handler(SIGSEGV, sigchain_special_handler);
}
......
......@@ -77,8 +77,8 @@ static void sigchain_rm_special_handler_004()
add_special_signal_handler(SIGHUP, &sigsegv2);
sigset_t set = {0};
int signo[1] = {SIGHUP};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_rm_special_handler_004", signo, 1);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_1] = {SIGHUP};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_rm_special_handler_004", signo, SIGCHIAN_TEST_SIGNAL_NUM_1);
remove_special_signal_handler(SIGHUP, sigchain_special_handler3);
remove_special_signal_handler(SIGHUP, sigchain_special_handler2);
......
......@@ -87,8 +87,8 @@ static void sigchain_rm_special_handler_005()
add_special_signal_handler(SIGSEGV, &sigsegv2);
sigset_t set = {0};
int signo[1] = {SIGSEGV};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_rm_special_handler_005", signo, 1);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_1] = {SIGSEGV};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_rm_special_handler_005", signo, SIGCHIAN_TEST_SIGNAL_NUM_1);
remove_special_signal_handler(SIGSEGV, sigchain_special_handler3);
remove_special_signal_handler(SIGSEGV, sigchain_special_handler2);
......
......@@ -90,8 +90,8 @@ static void sigchain_rm_special_handler_006()
add_special_signal_handler(SIGSEGV, &sigsegv3);
sigset_t set = {0};
int signo[1] = {SIGSEGV};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_rm_special_handler_006", signo, 1);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_1] = {SIGSEGV};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_rm_special_handler_006", signo, SIGCHIAN_TEST_SIGNAL_NUM_1);
remove_special_signal_handler(SIGSEGV, sigchain_special_handler3);
remove_special_signal_handler(SIGSEGV, sigchain_special_handler2);
......
......@@ -61,8 +61,8 @@ static void sigchain_rm_special_handler_007()
add_special_signal_handler(SIGHUP, &sigsegv1);
sigset_t set = {0};
int signo[2] = {SIGSEGV, SIGHUP};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_rm_special_handler_007", signo, 2);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_2] = {SIGSEGV, SIGHUP};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_rm_special_handler_007", signo, SIGCHIAN_TEST_SIGNAL_NUM_2);
remove_special_signal_handler(SIGHUP, sigchain_special_handler1);
remove_special_signal_handler(64, sigchain_special_handler2);
......
......@@ -76,8 +76,8 @@ static void sigchain_rm_special_handler_008()
add_special_signal_handler(SIGHUP, &sigsegv1);
sigset_t set = {0};
int signo[2] = {SIGSEGV, SIGHUP};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_rm_special_handler_008", signo, 2);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_2] = {SIGSEGV, SIGHUP};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_rm_special_handler_008", signo, SIGCHIAN_TEST_SIGNAL_NUM_2);
remove_special_signal_handler(SIGHUP, sigchain_special_handler2);
remove_special_signal_handler(SIGSEGV, sigchain_special_handler1);
......
......@@ -83,8 +83,8 @@ static void sigchain_rm_special_handler_009()
add_special_signal_handler(SIGHUP, &sighup);
sigset_t set = {0};
int signo[2] = {SIGSEGV, SIGHUP};
SIGCHIAN_TEST_SET_MASK(set, "sigchain_rm_special_handler_009", signo, 2);
int signo[SIGCHIAN_TEST_SIGNAL_NUM_2] = {SIGSEGV, SIGHUP};
SIGCHAIN_TEST_SET_MASK(set, "sigchain_rm_special_handler_009", signo, SIGCHIAN_TEST_SIGNAL_NUM_2);
remove_special_signal_handler(SIGHUP, sigchain_special_handler2);
remove_special_signal_handler(SIGSEGV, sigchain_special_handler1);
......
......@@ -18,6 +18,7 @@
#include <stdlib.h>
#include "test.h"
#include "functionalext.h"
#include "sigchain_util.h"
/**
* @brief the special handler
......@@ -157,54 +158,54 @@ static void sigchain_rm_special_handler_010()
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(37, &sigsegv5);
add_special_signal_handler(SIGCHAIN_SIGNAL_37, &sigsegv5);
struct signal_chain_action sigsegv6 = {
.sca_sigaction = sigchain_special_handler7,
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(43, &sigsegv6);
add_special_signal_handler(SIGCHAIN_SIGNAL_43, &sigsegv6);
struct signal_chain_action sigsegv7 = {
.sca_sigaction = sigchain_special_handler8,
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(50, &sigsegv7);
add_special_signal_handler(SIGCHAIN_SIGNAL_50, &sigsegv7);
struct signal_chain_action sigsegv8 = {
.sca_sigaction = sigchain_special_handler9,
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(56, &sigsegv8);
add_special_signal_handler(SIGCHAIN_SIGNAL_56, &sigsegv8);
struct signal_chain_action sigsegv9 = {
.sca_sigaction = sigchain_special_handler10,
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(64, &sigsegv9);
add_special_signal_handler(SIGCHAIN_SIGNAL_64, &sigsegv9);
remove_special_signal_handler(SIGHUP, sigchain_special_handler1);
remove_special_signal_handler(SIGABRT, sigchain_special_handler2);
remove_special_signal_handler(SIGSEGV, sigchain_special_handler3);
remove_special_signal_handler(SIGURG, sigchain_special_handler4);
remove_special_signal_handler(SIGSYS, sigchain_special_handler5);
remove_special_signal_handler(37, sigchain_special_handler6);
remove_special_signal_handler(43, sigchain_special_handler7);
remove_special_signal_handler(50, sigchain_special_handler8);
remove_special_signal_handler(56, sigchain_special_handler9);
remove_special_signal_handler(64, sigchain_special_handler10);
remove_special_signal_handler(SIGCHAIN_SIGNAL_37, sigchain_special_handler6);
remove_special_signal_handler(SIGCHAIN_SIGNAL_43, sigchain_special_handler7);
remove_special_signal_handler(SIGCHAIN_SIGNAL_50, sigchain_special_handler8);
remove_special_signal_handler(SIGCHAIN_SIGNAL_56, sigchain_special_handler9);
remove_special_signal_handler(SIGCHAIN_SIGNAL_64, sigchain_special_handler10);
raise(SIGHUP);
raise(SIGURG);
raise(37);
raise(43);
raise(50);
raise(56);
raise(64);
raise(SIGCHAIN_SIGNAL_37);
raise(SIGCHAIN_SIGNAL_43);
raise(SIGCHAIN_SIGNAL_50);
raise(SIGCHAIN_SIGNAL_56);
raise(SIGCHAIN_SIGNAL_64);
}
int main(void)
......
......@@ -18,6 +18,7 @@
#include <stdlib.h>
#include "test.h"
#include "functionalext.h"
#include "sigchain_util.h"
/**
* @brief the special handler
......@@ -124,16 +125,16 @@ static void signal_handler(int signo)
EXPECT_EQ("sigchain_rm_special_handler_011", signo, SIGURG);
} else if (signo == SIGSYS) {
EXPECT_EQ("sigchain_rm_special_handler_011", signo, SIGSYS);
} else if (signo == 37) {
EXPECT_EQ("sigchain_rm_special_handler_011", signo, 37);
} else if (signo == 43) {
EXPECT_EQ("sigchain_rm_special_handler_011", signo, 43);
} else if (signo == 50) {
EXPECT_EQ("sigchain_rm_special_handler_011", signo, 50);
} else if (signo == 56) {
EXPECT_EQ("sigchain_rm_special_handler_011", signo, 56);
} else if (signo == SIGCHAIN_SIGNAL_37) {
EXPECT_EQ("sigchain_rm_special_handler_011", signo, SIGCHAIN_SIGNAL_37);
} else if (signo == SIGCHAIN_SIGNAL_43) {
EXPECT_EQ("sigchain_rm_special_handler_011", signo, SIGCHAIN_SIGNAL_43);
} else if (signo == SIGCHAIN_SIGNAL_50) {
EXPECT_EQ("sigchain_rm_special_handler_011", signo, SIGCHAIN_SIGNAL_50);
} else if (signo == SIGCHAIN_SIGNAL_56) {
EXPECT_EQ("sigchain_rm_special_handler_011", signo, SIGCHAIN_SIGNAL_56);
} else {
EXPECT_EQ("sigchain_rm_special_handler_011", signo, 64);
EXPECT_EQ("sigchain_rm_special_handler_011", signo, SIGCHAIN_SIGNAL_64);
}
}
......@@ -150,11 +151,11 @@ static void sigchain_rm_special_handler_011()
signal(SIGSEGV, signal_handler);
signal(SIGURG, signal_handler);
signal(SIGSYS, signal_handler);
signal(37, signal_handler);
signal(43, signal_handler);
signal(50, signal_handler);
signal(56, signal_handler);
signal(64, signal_handler);
signal(SIGCHAIN_SIGNAL_37, signal_handler);
signal(SIGCHAIN_SIGNAL_43, signal_handler);
signal(SIGCHAIN_SIGNAL_50, signal_handler);
signal(SIGCHAIN_SIGNAL_56, signal_handler);
signal(SIGCHAIN_SIGNAL_64, signal_handler);
struct signal_chain_action sigsegv = {
.sca_sigaction = sigchain_special_handler1,
......@@ -196,46 +197,46 @@ static void sigchain_rm_special_handler_011()
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(37, &sigsegv5);
add_special_signal_handler(SIGCHAIN_SIGNAL_37, &sigsegv5);
struct signal_chain_action sigsegv6 = {
.sca_sigaction = sigchain_special_handler7,
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(43, &sigsegv6);
add_special_signal_handler(SIGCHAIN_SIGNAL_43, &sigsegv6);
struct signal_chain_action sigsegv7 = {
.sca_sigaction = sigchain_special_handler8,
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(50, &sigsegv7);
add_special_signal_handler(SIGCHAIN_SIGNAL_50, &sigsegv7);
struct signal_chain_action sigsegv8 = {
.sca_sigaction = sigchain_special_handler9,
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(56, &sigsegv8);
add_special_signal_handler(SIGCHAIN_SIGNAL_56, &sigsegv8);
struct signal_chain_action sigsegv9 = {
.sca_sigaction = sigchain_special_handler10,
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(64, &sigsegv9);
add_special_signal_handler(SIGCHAIN_SIGNAL_64, &sigsegv9);
remove_special_signal_handler(SIGHUP, sigchain_special_handler1);
remove_special_signal_handler(SIGABRT, sigchain_special_handler2);
remove_special_signal_handler(SIGSEGV, sigchain_special_handler3);
remove_special_signal_handler(SIGURG, sigchain_special_handler4);
remove_special_signal_handler(SIGSYS, sigchain_special_handler5);
remove_special_signal_handler(37, sigchain_special_handler6);
remove_special_signal_handler(43, sigchain_special_handler7);
remove_special_signal_handler(50, sigchain_special_handler8);
remove_special_signal_handler(56, sigchain_special_handler9);
remove_special_signal_handler(64, sigchain_special_handler10);
remove_special_signal_handler(SIGCHAIN_SIGNAL_37, sigchain_special_handler6);
remove_special_signal_handler(SIGCHAIN_SIGNAL_43, sigchain_special_handler7);
remove_special_signal_handler(SIGCHAIN_SIGNAL_50, sigchain_special_handler8);
remove_special_signal_handler(SIGCHAIN_SIGNAL_56, sigchain_special_handler9);
remove_special_signal_handler(SIGCHAIN_SIGNAL_64, sigchain_special_handler10);
}
int main(void)
......@@ -246,10 +247,10 @@ int main(void)
raise(SIGSEGV);
raise(SIGURG);
raise(SIGSYS);
raise(37);
raise(43);
raise(50);
raise(56);
raise(64);
raise(SIGCHAIN_SIGNAL_37);
raise(SIGCHAIN_SIGNAL_43);
raise(SIGCHAIN_SIGNAL_50);
raise(SIGCHAIN_SIGNAL_56);
raise(SIGCHAIN_SIGNAL_64);
return t_status;
}
\ No newline at end of file
......@@ -18,6 +18,7 @@
#include <stdlib.h>
#include "test.h"
#include "functionalext.h"
#include "sigchain_util.h"
/**
* @brief the special handler
......@@ -124,16 +125,16 @@ static void signal_sigaction(int signo)
EXPECT_EQ("sigchain_rm_special_handler_012", signo, SIGURG);
} else if (signo == SIGSYS) {
EXPECT_EQ("sigchain_rm_special_handler_012", signo, SIGSYS);
} else if (signo == 37) {
EXPECT_EQ("sigchain_rm_special_handler_012", signo, 37);
} else if (signo == 43) {
EXPECT_EQ("sigchain_rm_special_handler_012", signo, 43);
} else if (signo == 50) {
EXPECT_EQ("sigchain_rm_special_handler_012", signo, 50);
} else if (signo == 56) {
EXPECT_EQ("sigchain_rm_special_handler_012", signo, 56);
} else if (signo == SIGCHAIN_SIGNAL_37) {
EXPECT_EQ("sigchain_rm_special_handler_012", signo, SIGCHAIN_SIGNAL_37);
} else if (signo == SIGCHAIN_SIGNAL_43) {
EXPECT_EQ("sigchain_rm_special_handler_012", signo, SIGCHAIN_SIGNAL_43);
} else if (signo == SIGCHAIN_SIGNAL_50) {
EXPECT_EQ("sigchain_rm_special_handler_012", signo, SIGCHAIN_SIGNAL_50);
} else if (signo == SIGCHAIN_SIGNAL_56) {
EXPECT_EQ("sigchain_rm_special_handler_012", signo, SIGCHAIN_SIGNAL_56);
} else {
EXPECT_EQ("sigchain_rm_special_handler_012", signo, 64);
EXPECT_EQ("sigchain_rm_special_handler_012", signo, SIGCHAIN_SIGNAL_64);
}
}
......@@ -173,27 +174,27 @@ static void sigchain_rm_special_handler_012()
struct sigaction sigaction5 = {
.sa_handler = signal_sigaction,
};
sigaction(37, &sigaction5, NULL);
sigaction(SIGCHAIN_SIGNAL_37, &sigaction5, NULL);
struct sigaction sigaction6 = {
.sa_handler = signal_sigaction,
};
sigaction(43, &sigaction6, NULL);
sigaction(SIGCHAIN_SIGNAL_43, &sigaction6, NULL);
struct sigaction sigaction7 = {
.sa_handler = signal_sigaction,
};
sigaction(50, &sigaction7, NULL);
sigaction(SIGCHAIN_SIGNAL_50, &sigaction7, NULL);
struct sigaction sigaction8 = {
.sa_handler = signal_sigaction,
};
sigaction(56, &sigaction8, NULL);
sigaction(SIGCHAIN_SIGNAL_56, &sigaction8, NULL);
struct sigaction sigaction9 = {
.sa_handler = signal_sigaction,
};
sigaction(64, &sigaction9, NULL);
sigaction(SIGCHAIN_SIGNAL_64, &sigaction9, NULL);
struct signal_chain_action sigsegv = {
.sca_sigaction = sigchain_special_handler1,
......@@ -235,46 +236,46 @@ static void sigchain_rm_special_handler_012()
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(37, &sigsegv5);
add_special_signal_handler(SIGCHAIN_SIGNAL_37, &sigsegv5);
struct signal_chain_action sigsegv6 = {
.sca_sigaction = sigchain_special_handler7,
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(43, &sigsegv6);
add_special_signal_handler(SIGCHAIN_SIGNAL_43, &sigsegv6);
struct signal_chain_action sigsegv7 = {
.sca_sigaction = sigchain_special_handler8,
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(50, &sigsegv7);
add_special_signal_handler(SIGCHAIN_SIGNAL_50, &sigsegv7);
struct signal_chain_action sigsegv8 = {
.sca_sigaction = sigchain_special_handler9,
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(56, &sigsegv8);
add_special_signal_handler(SIGCHAIN_SIGNAL_56, &sigsegv8);
struct signal_chain_action sigsegv9 = {
.sca_sigaction = sigchain_special_handler10,
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(64, &sigsegv9);
add_special_signal_handler(SIGCHAIN_SIGNAL_64, &sigsegv9);
remove_special_signal_handler(SIGHUP, sigchain_special_handler1);
remove_special_signal_handler(SIGABRT, sigchain_special_handler2);
remove_special_signal_handler(SIGSEGV, sigchain_special_handler3);
remove_special_signal_handler(SIGURG, sigchain_special_handler4);
remove_special_signal_handler(SIGSYS, sigchain_special_handler5);
remove_special_signal_handler(37, sigchain_special_handler6);
remove_special_signal_handler(43, sigchain_special_handler7);
remove_special_signal_handler(50, sigchain_special_handler8);
remove_special_signal_handler(56, sigchain_special_handler9);
remove_special_signal_handler(64, sigchain_special_handler10);
remove_special_signal_handler(SIGCHAIN_SIGNAL_37, sigchain_special_handler6);
remove_special_signal_handler(SIGCHAIN_SIGNAL_43, sigchain_special_handler7);
remove_special_signal_handler(SIGCHAIN_SIGNAL_50, sigchain_special_handler8);
remove_special_signal_handler(SIGCHAIN_SIGNAL_56, sigchain_special_handler9);
remove_special_signal_handler(SIGCHAIN_SIGNAL_64, sigchain_special_handler10);
}
int main(void)
......@@ -285,10 +286,10 @@ int main(void)
raise(SIGSEGV);
raise(SIGURG);
raise(SIGSYS);
raise(37);
raise(43);
raise(50);
raise(56);
raise(64);
raise(SIGCHAIN_SIGNAL_37);
raise(SIGCHAIN_SIGNAL_43);
raise(SIGCHAIN_SIGNAL_50);
raise(SIGCHAIN_SIGNAL_56);
raise(SIGCHAIN_SIGNAL_64);
return t_status;
}
\ No newline at end of file
......@@ -18,6 +18,7 @@
#include <stdlib.h>
#include "test.h"
#include "functionalext.h"
#include "sigchain_util.h"
/**
* @brief the special handler
......@@ -56,10 +57,10 @@ static void sigchain_rm_special_handler_013()
.sca_mask = {},
.sca_flags = 0,
};
add_special_signal_handler(65, &sigsegv1);
add_special_signal_handler(SIGCHAIN_SIGNAL_65, &sigsegv1);
remove_special_signal_handler(0, sigchain_special_handler);
remove_special_signal_handler(65, sigchain_special_handler1);
remove_special_signal_handler(SIGCHAIN_SIGNAL_65, sigchain_special_handler1);
}
int main(void)
......
......@@ -16,9 +16,6 @@
#ifndef _SIGCHAIN_H
#define _SIGCHAIN_H
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
#endif
......@@ -26,13 +23,17 @@ extern "C" {
#include <stdint.h>
#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
#endif
static const int SIGCHAIN_ALLOW_NORETURN = 0x1UL;
/* The action of the sigchain. */
struct signal_chain_action {
bool (*sca_sigaction)(int, siginfo_t*, void*);
sigset_t sca_mask;
int sca_flags;
bool (*sca_sigaction)(int, siginfo_t*, void*);
sigset_t sca_mask;
int sca_flags;
};
/* Mark the signal to the sigchain, add the special handler to the sigchain. */
......
......@@ -30,9 +30,12 @@ extern int __libc_sigaction(int sig, const struct sigaction *restrict sa,
#define SIGCHAIN_LOG_TAG "SIGCHAIN"
#if (defined(OHOS_ENABLE_PARAMETER) || defined(ENABLE_MUSL_LOG))
#define SIGCHAIN_PRINT_ERROR(...) ((void)HiLogAdapterPrint(LOG_CORE, LOG_ERROR, SIGCHAIN_LOG_DOMAIN, SIGCHAIN_LOG_TAG, __VA_ARGS__))
#define SIGCHAIN_PRINT_INFO(...) ((void)HiLogAdapterPrint(LOG_CORE, LOG_INFO, SIGCHAIN_LOG_DOMAIN, SIGCHAIN_LOG_TAG, __VA_ARGS__))
#define SIGCHAIN_PRINT_DEBUG(...) ((void)HiLogAdapterPrint(LOG_CORE, LOG_DEBUG, SIGCHAIN_LOG_DOMAIN, SIGCHAIN_LOG_TAG, __VA_ARGS__))
#define SIGCHAIN_PRINT_ERROR(...) ((void)HiLogAdapterPrint(LOG_CORE, LOG_ERROR, \
SIGCHAIN_LOG_DOMAIN, SIGCHAIN_LOG_TAG, __VA_ARGS__))
#define SIGCHAIN_PRINT_INFO(...) ((void)HiLogAdapterPrint(LOG_CORE, LOG_INFO, \
SIGCHAIN_LOG_DOMAIN, SIGCHAIN_LOG_TAG, __VA_ARGS__))
#define SIGCHAIN_PRINT_DEBUG(...) ((void)HiLogAdapterPrint(LOG_CORE, LOG_DEBUG, \
SIGCHAIN_LOG_DOMAIN, SIGCHAIN_LOG_TAG, __VA_ARGS__))
#else
#define SIGCHAIN_PRINT_ERROR(...)
#define SIGCHAIN_PRINT_INFO(...)
......@@ -71,7 +74,8 @@ void create_pthread_key(void)
* @brief Get the key of the signal thread.
* @retval int32_t, the value of the sigchain key.
*/
static pthread_key_t get_handling_signal_key() {
static pthread_key_t get_handling_signal_key()
{
call_once(&g_flag, create_pthread_key);
return g_sigchain_key;
}
......@@ -80,7 +84,8 @@ static pthread_key_t get_handling_signal_key() {
* @brief Get the value of the sigchain key
* @retval bool, true if set the value of the key,or false.
*/
static bool get_handling_signal() {
static bool get_handling_signal()
{
void *result = pthread_getspecific(get_handling_signal_key());
if (result == NULL) {
return false;
......@@ -120,14 +125,14 @@ bool ismarked(int signo)
static void signal_chain_handler(int signo, siginfo_t* siginfo, void* ucontext_raw)
{
SIGCHAIN_PRINT_DEBUG("%{public}s signo: %{public}d", __func__, signo);
/* Try to call the special handlers first. */
/* If one of them crashes, we'll reenter this handler and pass that crash onto the user handler. */
if (!get_handling_signal()){
/* First call special handler. */
/* If a process crashes, the sigchain'll call the corresponding handler */
if (!get_handling_signal()) {
for (int i = 0; i < SIGNAL_CHAIN_SPECIAL_ACTION_MAX; i++) {
if (sig_chains[signo - 1].sca_special_actions[i].sca_sigaction == NULL) {
break;
}
/* The native bridge signal handler might not return. */
/* The special handler might not return. */
bool noreturn = (sig_chains[signo - 1].sca_special_actions[i].sca_flags &
SIGCHAIN_ALLOW_NORETURN);
sigset_t previous_mask;
......@@ -149,7 +154,7 @@ static void signal_chain_handler(int signo, siginfo_t* siginfo, void* ucontext_r
set_handling_signal(previous_value);
}
}
/* Then Call the user's signal handler */
int sa_flags = sig_chains[signo - 1].sig_action.sa_flags;
ucontext_t* ucontext = (ucontext_t*)(ucontext_raw);
......@@ -289,7 +294,7 @@ void add_special_signal_handler(int signo, struct signal_chain_action* sa)
return;
}
// Set the special handler.
// Add the special hander to the sigchain
add_special_handler(signo, sa);
mark_signal_to_sigchain(signo);
}
......@@ -307,7 +312,7 @@ void remove_special_signal_handler(int signo, bool (*fn)(int, siginfo_t*, void*)
SIGCHAIN_PRINT_ERROR("%{public}s Invalid signal %{public}d", __func__, signo);
return;
}
// remove the special handler.
// remove the special handler from the sigchain.
rm_special_handler(signo, fn);
}
......@@ -351,7 +356,7 @@ bool intercept_sigaction(int signo, const struct sigaction *restrict sa,
void intercept_sigprocmask(int how, sigset_t *restrict set)
{
SIGCHAIN_PRINT_DEBUG("%{public}s how: %{public}d", __func__, how);
// Forward directly to the pthread_sigmask When this sigchain is inside a signal handler
// Forward directly to the pthread_sigmask When this sigchain is handling a signal.
if (get_handling_signal()) {
return;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册