1--TEST--
2pcntl_waitpid() and rusage
3--SKIPIF--
4<?php if (!extension_loaded("pcntl")) print "skip"; ?>
5<?php if (!extension_loaded("posix")) die("skip posix extension not available"); ?>
6--FILE--
7<?php
8$pid = pcntl_fork();
9if ($pid == -1) {
10	die("failed");
11} else if ($pid) {
12	$status = 0;
13	var_dump(pcntl_waitpid($pid, $status, WUNTRACED, $rusage));
14	var_dump($rusage['ru_utime.tv_sec']);
15	var_dump($rusage['ru_utime.tv_usec']);
16
17	posix_kill($pid, SIGCONT);
18
19	$rusage = array(1,2,3);
20	pcntl_waitpid($pid, $status, WUNTRACED, $rusage);
21	var_dump($rusage['ru_utime.tv_sec']);
22	var_dump($rusage['ru_utime.tv_usec']);
23
24	$rusage = "string";
25	pcntl_waitpid($pid, $status, 0, $rusage);
26	var_dump(gettype($rusage));
27	var_dump(count($rusage));
28
29	$rusage = new stdClass;
30	pcntl_waitpid($pid, $status, 0, $rusage);
31	var_dump(gettype($rusage));
32	var_dump(count($rusage));
33
34	echo "END\n";
35} else {
36	posix_kill(posix_getpid(), SIGSTOP);
37	exit(42);
38}
39?>
40--EXPECTF--
41int(%d)
42int(%d)
43int(%d)
44int(%d)
45int(%d)
46string(5) "array"
47int(0)
48string(5) "array"
49int(0)
50END
51