pcntl_signal.phpt 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. --TEST--
  2. pcntl_signal()
  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. pcntl_signal(SIGTERM, function($signo){
  9. echo "signal dispatched\n";
  10. });
  11. posix_kill(posix_getpid(), SIGTERM);
  12. pcntl_signal_dispatch();
  13. pcntl_signal(SIGUSR1, function($signo, $siginfo){
  14. printf("got signal from %s\n", $siginfo['pid'] ?? 'nobody');
  15. });
  16. posix_kill(posix_getpid(), SIGUSR1);
  17. pcntl_signal_dispatch();
  18. var_dump(pcntl_signal());
  19. var_dump(pcntl_signal(SIGALRM, SIG_IGN));
  20. var_dump(pcntl_signal(-1, -1));
  21. var_dump(pcntl_signal(-1, function(){}));
  22. var_dump(pcntl_signal(SIGALRM, "not callable"));
  23. /* test freeing queue in RSHUTDOWN */
  24. posix_kill(posix_getpid(), SIGTERM);
  25. echo "ok\n";
  26. ?>
  27. --EXPECTF--
  28. signal dispatched
  29. got signal from %r\d+|nobody%r
  30. Warning: pcntl_signal() expects at least 2 parameters, 0 given in %s
  31. NULL
  32. bool(true)
  33. Warning: pcntl_signal(): Invalid signal %s
  34. bool(false)
  35. Warning: pcntl_signal(): Invalid signal %s
  36. bool(false)
  37. Warning: pcntl_signal(): Specified handler "not callable" is not callable (%s) in %s
  38. bool(false)
  39. ok