php-src/ext/sockets/tests/socket_create_pair_sockexec.phpt
David Carlier d052d612d9
ext/sockets: adding SOCK_CLOEXEC/SOCK_NONBLOCK options.
targetted for socket_create_pair/socket_create, they re not considered
as socket type but to be ORed with these (to avoid socketpair2/socket2
likely), set O_CLOEXEC/O_NONBLOCK respectively on the file descriptors.

close GH-15322
2024-08-13 08:35:44 +01:00

35 lines
1.1 KiB
PHP

--TEST--
Test for socket_create_pair() with SOCK_CLOEXEC/SOCK_NONBLOCK
--EXTENSIONS--
sockets
--SKIPIF--
<?php
if (!defined('SOCK_CLOEXEC')) die("skip SOCK_CLOEXEC");
if (!defined('SOCK_NONBLOCK')) die("skip SOCK_NONBLOCK");
?>
--FILE--
<?php
$sockets = array();
try {
socket_create_pair(AF_UNIX, 11 | SOCK_CLOEXEC, 0, $sockets);
} catch (\ValueError $e) {
echo $e->getMessage() . PHP_EOL;
}
try {
socket_create_pair(AF_UNIX, 11 | SOCK_NONBLOCK, 0, $sockets);
} catch (\ValueError $e) {
echo $e->getMessage() . PHP_EOL;
}
try {
socket_create_pair(AF_UNIX, 11 | SOCK_CLOEXEC | SOCK_NONBLOCK, 0, $sockets);
} catch (\ValueError $e) {
echo $e->getMessage() . PHP_EOL;
}
var_dump(socket_create_pair(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC | SOCK_NONBLOCK, 0, $sockets));
?>
--EXPECTF--
socket_create_pair(): Argument #2 ($type) must be one of SOCK_STREAM, SOCK_DGRAM, SOCK_SEQPACKET, SOCK_RAW, or SOCK_RDM%A
socket_create_pair(): Argument #2 ($type) must be one of SOCK_STREAM, SOCK_DGRAM, SOCK_SEQPACKET, SOCK_RAW, or SOCK_RDM%A
socket_create_pair(): Argument #2 ($type) must be one of SOCK_STREAM, SOCK_DGRAM, SOCK_SEQPACKET, SOCK_RAW, or SOCK_RDM%A
bool(true)