Annotation of embedaddon/php/ext/pcntl/tests/001.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test pcntl wait functionality
3: --SKIPIF--
4: <?php
5: if (!extension_loaded("pcntl")) print "skip";
6: elseif (!function_exists("posix_kill")) print "skip posix_kill() not available";
7: ?>
8: --FILE--
9: <?php
10: function test_exit_waits(){
11: print "\n\nTesting pcntl_wifexited and wexitstatus....";
12:
13: $pid=pcntl_fork();
14: if ($pid==0) {
15: sleep(1);
16: exit(-1);
17: } else {
18: $options=0;
19: pcntl_waitpid($pid, $status, $options);
20: if ( pcntl_wifexited($status) ) print "\nExited With: ". pcntl_wexitstatus($status);
21: }
22: }
23:
24: function test_exit_signal(){
25: print "\n\nTesting pcntl_wifsignaled....";
26:
27: $pid=pcntl_fork();
28:
29: if ($pid==0) {
30: sleep(10);
31: exit;
32: } else {
33: $options=0;
34: posix_kill($pid, SIGTERM);
35: pcntl_waitpid($pid, $status, $options);
36: if ( pcntl_wifsignaled($status) ) {
37: $signal_print=pcntl_wtermsig($status);
38: if ($signal_print==SIGTERM) $signal_print="SIGTERM";
39: print "\nProcess was terminated by signal : ". $signal_print;
40: }
41:
42: }
43: }
44:
45:
46: function test_stop_signal(){
47: print "\n\nTesting pcntl_wifstopped and pcntl_wstopsig....";
48:
49: $pid=pcntl_fork();
50:
51: if ($pid==0) {
52: sleep(1);
53: exit;
54: } else {
55: $options=WUNTRACED;
56: posix_kill($pid, SIGSTOP);
57: pcntl_waitpid($pid, $status, $options);
58: if ( pcntl_wifstopped($status) ) {
59: $signal_print=pcntl_wstopsig($status);
60: if ($signal_print==SIGSTOP) $signal_print="SIGSTOP";
61: print "\nProcess was stoped by signal : ". $signal_print;
62: }
63: posix_kill($pid, SIGCONT);
64: }
65: }
66:
67: print "Staring wait.h tests....";
68: test_exit_waits();
69: test_exit_signal();
70: test_stop_signal();
71: ?>
72: --EXPECT--
73: Staring wait.h tests....
74:
75: Testing pcntl_wifexited and wexitstatus....
76: Exited With: 255
77:
78: Testing pcntl_wifsignaled....
79: Process was terminated by signal : SIGTERM
80:
81: Testing pcntl_wifstopped and pcntl_wstopsig....
82: Process was stoped by signal : SIGSTOP
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>