Annotation of embedaddon/php/ext/sockets/tests/socket_sentto_recvfrom_unix.phpt, revision 1.1.1.2
1.1 misho 1: --TEST--
2: Test if socket_recvfrom() receives data sent by socket_sendto() through a Unix domain socket
3: --SKIPIF--
4: <?php
1.1.1.2 ! misho 5: if (substr(PHP_OS, 0, 3) == 'WIN') {
! 6: die('skip.. Not valid for Windows');
! 7: }
1.1 misho 8: if (!extension_loaded('sockets')) {
9: die('SKIP The sockets extension is not loaded.');
10: }
11: --FILE--
12: <?php
13: $socket = socket_create(AF_UNIX, SOCK_DGRAM, SOL_UDP); // cause warning
14: $socket = socket_create(AF_UNIX, SOCK_DGRAM, 0);
15: if (!$socket) {
16: die('Unable to create AF_UNIX socket');
17: }
18: if (!socket_set_nonblock($socket)) {
19: die('Unable to set nonblocking mode for socket');
20: }
21: socket_recvfrom($socket, $buf, 12, 0, $from, $port); // cause warning
22: $address = sprintf("/tmp/%s.sock", uniqid());
23: if (!socket_bind($socket, $address)) {
24: die("Unable to bind to $address");
25: }
26:
27: $msg = "Ping!";
28: $len = strlen($msg);
29: $bytes_sent = socket_sendto($socket, $msg, $len, 0); // cause warning
30: $bytes_sent = socket_sendto($socket, $msg, $len, 0, $address);
31: if ($bytes_sent == -1) {
32: @unlink($address);
1.1.1.2 ! misho 33: die('An error occurred while sending to the socket');
1.1 misho 34: } else if ($bytes_sent != $len) {
35: @unlink($address);
36: die($bytes_sent . ' bytes have been sent instead of the ' . $len . ' bytes expected');
37: }
38:
39: $from = "";
40: var_dump(socket_recvfrom($socket, $buf, 0, 0, $from)); // expect false
41: $bytes_received = socket_recvfrom($socket, $buf, 12, 0, $from);
42: if ($bytes_received == -1) {
43: @unlink($address);
1.1.1.2 ! misho 44: die('An error occurred while receiving from the socket');
1.1 misho 45: } else if ($bytes_received != $len) {
46: @unlink($address);
47: die($bytes_received . ' bytes have been received instead of the ' . $len . ' bytes expected');
48: }
49: echo "Received $buf";
50:
51: socket_close($socket);
52: @unlink($address);
53: ?>
54: --EXPECTF--
55: Warning: socket_create(): Unable to create socket [%d]: Protocol not supported in %s on line %d
56:
57: Warning: socket_recvfrom(): unable to recvfrom [%d]: Resource temporarily unavailable in %s on line %d
58:
59: Warning: socket_sendto() expects at least 5 parameters, 4 given in %s on line %d
60: bool(false)
61: Received Ping!
62: --CREDITS--
63: Falko Menge <mail at falko-menge dot de>
64: PHP Testfest Berlin 2009-05-09
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>