php-src/ext/standard/tests/general_functions/proc_open02.phpt
Rasmus Lerdorf d8a0b1a9e3 This test was added to verify that bug 39322 was fixed, which the test
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.
2011-09-07 18:09:34 +00:00

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!