006.phpt 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. --TEST--
  2. msg_send() data types when not serializing
  3. --EXTENSIONS--
  4. sysvmsg
  5. --FILE--
  6. <?php
  7. $queue = msg_get_queue (ftok(__FILE__, 'r'), 0600);
  8. $tests = array('foo', 123, PHP_INT_MAX +1, true, 1.01, null, array('bar'));
  9. foreach ($tests as $elem) {
  10. echo @"Sending/receiving '$elem':\n";
  11. try {
  12. var_dump(msg_send($queue, 1, $elem, false));
  13. } catch (TypeError $exception) {
  14. echo $exception->getMessage() . "\n";
  15. }
  16. unset($msg);
  17. var_dump(msg_receive($queue, 1, $msg_type, 1024, $msg, false, MSG_IPC_NOWAIT));
  18. var_dump($elem == $msg);
  19. var_dump($elem === $msg);
  20. }
  21. if (!msg_remove_queue($queue)) {
  22. echo "BAD: queue removal failed\n";
  23. }
  24. echo "Done\n";
  25. ?>
  26. --EXPECTF--
  27. Sending/receiving 'foo':
  28. bool(true)
  29. bool(true)
  30. bool(true)
  31. bool(true)
  32. Sending/receiving '123':
  33. bool(true)
  34. bool(true)
  35. bool(true)
  36. bool(false)
  37. Sending/receiving '%s':
  38. bool(true)
  39. bool(true)
  40. bool(true)
  41. bool(false)
  42. Sending/receiving '1':
  43. bool(true)
  44. bool(true)
  45. bool(true)
  46. bool(false)
  47. Sending/receiving '1.01':
  48. bool(true)
  49. bool(true)
  50. bool(true)
  51. bool(false)
  52. Sending/receiving '':
  53. msg_send(): Argument #3 ($message) must be of type string|int|float|bool, null given
  54. bool(false)
  55. bool(true)
  56. bool(false)
  57. Sending/receiving 'Array':
  58. msg_send(): Argument #3 ($message) must be of type string|int|float|bool, array given
  59. bool(false)
  60. bool(false)
  61. bool(false)
  62. Done