1--TEST-- 2sysvmsg functions on non-existing queue 3--EXTENSIONS-- 4sysvmsg 5--FILE-- 6<?php 7 8$tests = array(null, 'foo'); 9 10foreach ($tests as $i => $q) { 11 12 if ($q === null) { 13 do { 14 $id = ftok(__FILE__, chr(mt_rand(0, 255))); } while (msg_queue_exists($id)); 15 } 16 17 $q = msg_get_queue($id) or die("Failed to create queue"); 18 msg_remove_queue($q) or die("Failed to close queue"); 19 20 echo "Iteration " . ($i + 1) . ":\n"; 21 22 $errno = 0; 23 24 var_dump(msg_set_queue($q, array('msg_qbytes' => 1))); 25 26 var_dump(msg_stat_queue($q)); 27 28 var_dump(msg_receive($q, 0, $null, 1, $msg, true, 0, $errno)); 29 var_dump($errno != 0); 30 // again, but triggering an exception 31 try { 32 msg_receive($q, 0, $null, 0, $msg); 33 } catch (ValueError $exception) { 34 echo $exception->getMessage() . "\n"; 35 } 36 37 var_dump(msg_send($q, 1, 'foo', true, true, $errno)); 38 var_dump($errno != 0); 39} 40 41echo "Done\n"; 42?> 43--EXPECTF-- 44Iteration 1: 45bool(false) 46bool(false) 47bool(false) 48bool(true) 49msg_receive(): Argument #4 ($max_message_size) must be greater than 0 50 51Warning: msg_send(): msgsnd failed: Invalid argument in %s on line %d 52bool(false) 53bool(true) 54Iteration 2: 55bool(false) 56bool(false) 57bool(false) 58bool(true) 59msg_receive(): Argument #4 ($max_message_size) must be greater than 0 60 61Warning: msg_send(): msgsnd failed: Invalid argument in %s on line %d 62bool(false) 63bool(true) 64Done 65