PATH:
opt
/
alt
/
tests
/
alt-php72-pecl-pthreads-zts_3.2.0-1.el8
/
tests
--TEST-- Test if Socket::recvfrom() receives data sent by Socket::sendto() through a Unix domain socket --CREDITS-- Copied from php/php-src and adjusted, originally created by Falko Menge <mail at falko-menge dot de> PHP Testfest Berlin 2009-05-09 --SKIPIF-- <?php if (substr(PHP_OS, 0, 3) == 'WIN') { die('skip.. Not valid for Windows'); } --FILE-- <?php try { $socket = new \Socket(\Socket::AF_UNIX, \Socket::SOCK_DGRAM, \Socket::SOL_UDP); }catch(RuntimeException $exception) { var_dump($exception->getMessage()); } $socket = new \Socket(\Socket::AF_UNIX, \Socket::SOCK_DGRAM, 0); if (!$socket) { die('Unable to create AF_UNIX socket'); } if (!$socket->setBlocking(false)) { die('Unable to set nonblocking mode for socket'); } var_dump($socket->recvfrom($buf, 12, 0, $from, $port)); //false (EAGAIN, no warning) $address = sprintf("/tmp/%s.sock", uniqid()); if (!$socket->bind($address)) { die("Unable to bind to $address"); } $msg = "Ping!"; $len = strlen($msg); $bytes_sent = $socket->sendto($msg, $len, 0); // cause warning $bytes_sent = $socket->sendto($msg, $len, 0, $address); if ($bytes_sent == -1) { @unlink($address); die('An error occurred while sending to the socket'); } else if ($bytes_sent != $len) { @unlink($address); die($bytes_sent . ' bytes have been sent instead of the ' . $len . ' bytes expected'); } $from = ""; var_dump($socket->recvfrom($buf, 0, 0, $from)); // expect false $bytes_received = $socket->recvfrom($buf, 12, 0, $from); if ($bytes_received == -1) { @unlink($address); die('An error occurred while receiving from the socket'); } else if ($bytes_received != $len) { @unlink($address); die($bytes_received . ' bytes have been received instead of the ' . $len . ' bytes expected'); } echo "Received $buf"; $socket->close(); @unlink($address); ?> --EXPECTF-- string(%d) "Unable to create socket (%d): Protocol not supported" bool(false) Warning: Socket::sendto() expects at least 4 parameters, 3 given in %s on line %d bool(false) Received Ping!
[+]
..
[-] magic-methods-isset-unset.phpt
[edit]
[-] traits-scope.inc
[edit]
[-] interface.phpt
[edit]
[-] oomethods.phpt
[edit]
[-] class-static-properties-order-dependencies.phpt
[edit]
[-] interfaces.phpt
[edit]
[-] lexical-vars.phpt
[edit]
[-] thorn-in-side.phpt
[edit]
[-] workers-no-collect.phpt
[edit]
[-] class-static-properties-2.phpt
[edit]
[-] workers-constant-copy.phpt
[edit]
[-] socket-getsockname-af-inet.phpt
[edit]
[-] resource-keeping.phpt
[edit]
[-] normalize-members.phpt
[edit]
[-] workers-no-join.phpt
[edit]
[-] socket-connect-error-unix.phpt
[edit]
[-] complex-statics-set-null.phpt
[edit]
[-] included-files.phpt
[edit]
[-] magic-methods-get-set.phpt
[edit]
[-] pthreads-inherit-none-class-constant.phpt
[edit]
[-] pools-default.phpt
[edit]
[-] immutable-threaded-members.phpt
[edit]
[-] closure-secondary-thread-copy.phpt
[edit]
[-] unset-defaults.phpt
[edit]
[-] nested-non-threaded-object-references.phpt
[edit]
[-] iterator-no-refs.phpt
[edit]
[-] socket-setoption.phpt
[edit]
[-] shutdown-handler.phpt
[edit]
[-] wait.phpt
[edit]
[-] socket-getsockname-af-unix.phpt
[edit]
[-] corrupted-resources.phpt
[edit]
[-] constant-ast-copy-missing-type.phpt
[edit]
[-] hacking-serials.phpt
[edit]
[-] null-member-crash.phpt
[edit]
[-] runtime-inheritance.phpt
[edit]
[-] socket-sentto-recvfrom-ipv6-udp.phpt
[edit]
[-] trait-aliases-reflection.phpt
[edit]
[-] ipv6_skipif.inc
[edit]
[-] trait-alias-bug.phpt
[edit]
[-] statics.phpt
[edit]
[-] workers-no-shutdown-before-start.phpt
[edit]
[-] synchronization.phpt
[edit]
[-] anon-unbound-double-inherited.phpt
[edit]
[-] static-scope-vars.phpt
[edit]
[-] selective-inheritance.phpt
[edit]
[-] constants.phpt
[edit]
[-] chunk.phpt
[edit]
[-] workers-no-start.phpt
[edit]
[-] closures-as-members-repeated-reallocation.phpt
[edit]
[-] new-class-after-thread-creation.phpt
[edit]
[-] socket-ipv6loop.phpt
[edit]
[-] includeme.inc
[edit]
[-] norefs.phpt
[edit]
[-] object-comparison.phpt
[edit]
[-] unprepared-entry-static-segfault.phpt
[edit]
[-] constant-array.phpt
[edit]
[-] socket-connect-error-win32.phpt
[edit]
[-] socket-select-unix.phpt
[edit]
[-] verify-overload.phpt
[edit]
[-] object-cast.phpt
[edit]
[-] foreign-private-members.phpt
[edit]
[-] statics-thorn-in-other-side.phpt
[edit]
[-] socket-ipv4loop.phpt
[edit]
[-] class-static-properties.phpt
[edit]
[-] closure-delayed-include.phpt
[edit]
[-] workers-ok-unstack.phpt
[edit]
[-] include_interface_constant.phpt
[edit]
[-] counting-members.phpt
[edit]
[-] inherit-non-closures.phpt
[edit]
[-] inherited-anon-class.phpt
[edit]
[-] waiting-timeouts.phpt
[edit]
[-] gone.phpt
[edit]
[-] static-resolution.phpt
[edit]
[-] anon-unbound-use-guards.phpt
[edit]
[-] unstack-running.phpt
[edit]
[-] crazy-refcounting-stuff.phpt
[edit]
[-] complex-statics.phpt
[edit]
[-] graceful-fatalities.phpt
[edit]
[-] socket-connect-params-af-inet.phpt
[edit]
[-] private-class-constant-fetching.phpt
[edit]
[-] display-startup-errors-output.phpt
[edit]
[-] global-constants.phpt
[edit]
[-] return-types.phpt
[edit]
[-] constant-ast-copy.phpt
[edit]
[-] functions.phpt
[edit]
[-] socket-unixloop.phpt
[edit]
[-] closures-as-members.phpt
[edit]
[-] staticmethods.phpt
[edit]
[-] exception-handler-options.phpt
[edit]
[-] inherited-anon-class-outside-context.phpt
[edit]
[-] legacy-ctor.phpt
[edit]
[-] volatile-arrays.phpt
[edit]
[-] recv-overload.phpt
[edit]
[-] socket-bind.phpt
[edit]
[-] socket-construct.phpt
[edit]
[-] trait-aliases.phpt
[edit]
[-] stateful-fatalities.phpt
[edit]
[-] socket-getpeername-af-unix.phpt
[edit]
[-] socket-read-type.phpt
[edit]
[-] volatile-nested.phpt
[edit]
[-] workers-default-collector.phpt
[edit]
[-] no-cloning.phpt
[edit]
[-] exception-handler-caught-nested.phpt
[edit]
[+]
assets
[-] socket-connect-params-af-unix.phpt
[edit]
[-] isset-unset.phpt
[edit]
[-] class-defaults.phpt
[edit]
[-] exception-handler-fail.phpt
[edit]
[-] doc-comments.phpt
[edit]
[-] explicit-cast-arrays.phpt
[edit]
[-] static-inheritance-unexpected-null.phpt
[edit]
[-] run-time-cache-corruption.phpt
[edit]
[-] anon-unbound-inherited.phpt
[edit]
[-] thread.phpt
[edit]
[-] traits-scope.phpt
[edit]
[-] child-to-parent-class-copying-helper.php
[edit]
[-] socket-select-win32.phpt
[edit]
[-] threaded_valid_tsrmls.phpt
[edit]
[-] class-static-properties-order-dependencies-inheritance.phpt
[edit]
[-] merge-non-threaded.phpt
[edit]
[-] exception-handler.phpt
[edit]
[-] isset-empty-compat.phpt
[edit]
[-] ini.phpt
[edit]
[-] anon-interceptors.phpt
[edit]
[-] binding.phpt
[edit]
[-] workers-no-unstack.phpt
[edit]
[-] exception-handler-caught-uncaught.phpt
[edit]
[-] socket-getpeername-af-inet.phpt
[edit]
[-] normal-reads.phpt
[edit]
[-] socket-sentto-recvfrom-ipv4-udp.phpt
[edit]
[-] child-to-parent-class-copying.phpt
[edit]
[-] threaded-extend-abstract.phpt
[edit]
[-] socket-getoption.phpt
[edit]
[-] workers-no-stack.phpt
[edit]
[-] shift-pop.phpt
[edit]
[-] pools.phpt
[edit]
[-] callstatic-etc.phpt
[edit]
[-] socket-sentto-recvfrom-unix.phpt
[edit]
[-] no-inheritance-anon-class.phpt
[edit]
[-] class-static-properties-double-inheritance.phpt
[edit]
[-] iterator-funcs.phpt
[edit]
[-] volatile-objects.phpt
[edit]
[-] merging-range.phpt
[edit]
[-] merging-members.phpt
[edit]
[-] runtime-inheritance-volatile.phpt
[edit]
[-] pthreads-inherit-none-class-constant-inherited.phpt
[edit]
[-] anon-bound-inherited.phpt
[edit]