Annotation of embedaddon/php/ext/pcntl/tests/001.phpt, revision 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>