mirror of
https://github.com/php/php-src.git
synced 2024-10-04 08:16:11 +00:00
d8a0b1a9e3
does test for and this works. However, it consistently failed because it relied on a SIGHUP not terminating a sh -c /usr/bin/nohup sleep 50 process which doesn't work because the SIGHUP goes to the sh process not the nohup'ed sleep process. So, I have sped up the test and removed the nohup and instead of trying to SIGHUP I am just doing the equivalent of a kill 0 on it to verify that the resource sticks around.
73 lines
1.1 KiB
PHP
73 lines
1.1 KiB
PHP
--TEST--
|
|
proc_open
|
|
--SKIPIF--
|
|
<?php
|
|
if (!is_executable('/bin/sleep')) echo 'skip no sleep';
|
|
if (getenv('SKIP_SLOW_TESTS')) echo 'skip slow test';
|
|
?>
|
|
--FILE--
|
|
<?php
|
|
$ds = array(array('pipe', 'r'));
|
|
|
|
$cat = proc_open(
|
|
'/bin/sleep 2',
|
|
$ds,
|
|
$pipes
|
|
);
|
|
|
|
usleep(20000); // let the OS run the sleep process before sending the signal
|
|
|
|
var_dump(proc_terminate($cat, 0)); // status check
|
|
usleep(20000);
|
|
var_dump(proc_get_status($cat));
|
|
|
|
var_dump(proc_terminate($cat)); // now really quit it
|
|
usleep(20000);
|
|
var_dump(proc_get_status($cat));
|
|
|
|
proc_close($cat);
|
|
|
|
echo "Done!\n";
|
|
|
|
?>
|
|
--EXPECTF--
|
|
bool(true)
|
|
array(8) {
|
|
["command"]=>
|
|
string(12) "/bin/sleep 2"
|
|
["pid"]=>
|
|
int(%d)
|
|
["running"]=>
|
|
bool(true)
|
|
["signaled"]=>
|
|
bool(false)
|
|
["stopped"]=>
|
|
bool(false)
|
|
["exitcode"]=>
|
|
int(-1)
|
|
["termsig"]=>
|
|
int(0)
|
|
["stopsig"]=>
|
|
int(0)
|
|
}
|
|
bool(true)
|
|
array(8) {
|
|
["command"]=>
|
|
string(12) "/bin/sleep 2"
|
|
["pid"]=>
|
|
int(%d)
|
|
["running"]=>
|
|
bool(false)
|
|
["signaled"]=>
|
|
bool(true)
|
|
["stopped"]=>
|
|
bool(false)
|
|
["exitcode"]=>
|
|
int(-1)
|
|
["termsig"]=>
|
|
int(15)
|
|
["stopsig"]=>
|
|
int(0)
|
|
}
|
|
Done!
|