Skip to content

Commit cf9d6f4

Browse files
committed
ext/pcntl: add new tests to ver invalid signals handling.
from pcntl_sigprocmask(), pcntl_sigwaitinfo(), and pcntl_sigtimedwait(). close GH-21297
1 parent cf180f2 commit cf9d6f4

File tree

1 file changed

+80
-0
lines changed

1 file changed

+80
-0
lines changed
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
--TEST--
2+
pcntl_sigprocmask(), pcntl_sigwaitinfo(), and pcntl_sigtimedwait() properly throw on invalid signals
3+
--EXTENSIONS--
4+
pcntl
5+
--SKIPIF--
6+
<?php
7+
if (!function_exists("pcntl_sigprocmask")) die("skip pcntl_sigprocmask() not available");
8+
if (!function_exists("pcntl_sigwaitinfo")) die("skip pcntl_sigwaitinfo() not available");
9+
if (!function_exists("pcntl_sigtimedwait")) die("skip pcntl_sigtimedwait() not available");
10+
?>
11+
--INI--
12+
max_execution_time=0
13+
--FILE--
14+
<?php
15+
16+
try {
17+
pcntl_sigprocmask(SIG_BLOCK, ["not_a_signal"]);
18+
} catch (TypeError $e) {
19+
echo $e->getMessage() . PHP_EOL;
20+
}
21+
22+
try {
23+
pcntl_sigprocmask(SIG_BLOCK, [0]);
24+
} catch (ValueError $e) {
25+
echo $e->getMessage() . PHP_EOL;
26+
}
27+
28+
try {
29+
pcntl_sigprocmask(SIG_BLOCK, []);
30+
} catch (ValueError $e) {
31+
echo $e->getMessage() . PHP_EOL;
32+
}
33+
34+
try {
35+
pcntl_sigwaitinfo(["not_a_signal"]);
36+
} catch (TypeError $e) {
37+
echo $e->getMessage() . PHP_EOL;
38+
}
39+
40+
try {
41+
pcntl_sigwaitinfo([0]);
42+
} catch (ValueError $e) {
43+
echo $e->getMessage() . PHP_EOL;
44+
}
45+
46+
try {
47+
pcntl_sigwaitinfo([]);
48+
} catch (ValueError $e) {
49+
echo $e->getMessage() . PHP_EOL;
50+
}
51+
52+
try {
53+
pcntl_sigtimedwait(["not_a_signal"], $info, 1);
54+
} catch (TypeError $e) {
55+
echo $e->getMessage() . PHP_EOL;
56+
}
57+
58+
try {
59+
pcntl_sigtimedwait([0], $info, 1);
60+
} catch (ValueError $e) {
61+
echo $e->getMessage() . PHP_EOL;
62+
}
63+
64+
try {
65+
pcntl_sigtimedwait([], $info, 1);
66+
} catch (ValueError $e) {
67+
echo $e->getMessage() . PHP_EOL;
68+
}
69+
70+
?>
71+
--EXPECTF--
72+
pcntl_sigprocmask(): Argument #2 ($signals) signals must be of type int, string given
73+
pcntl_sigprocmask(): Argument #2 ($signals) signals must be between 1 and %d
74+
pcntl_sigprocmask(): Argument #2 ($signals) must not be empty
75+
pcntl_sigwaitinfo(): Argument #1 ($signals) signals must be of type int, string given
76+
pcntl_sigwaitinfo(): Argument #1 ($signals) signals must be between 1 and %d
77+
pcntl_sigwaitinfo(): Argument #1 ($signals) must not be empty
78+
pcntl_sigtimedwait(): Argument #1 ($signals) signals must be of type int, string given
79+
pcntl_sigtimedwait(): Argument #1 ($signals) signals must be between 1 and %d
80+
pcntl_sigtimedwait(): Argument #1 ($signals) must not be empty

0 commit comments

Comments
 (0)