@@ -4,12 +4,14 @@ posix_mknodat/posix_mkfifoat support
4
4
posix
5
5
--SKIPIF--
6
6
<?php
7
- if (!function_exists('posix_mknodat')) die('skip posix_mknodat() not found');
7
+ // usually, mkfifoat is implemented with mknodat
8
+ if (!function_exists('posix_mknodat') || !function_exists('posix_mkfifoat')) die('skip posix_mknodat()/posix_mkfifoat not found');
8
9
?>
9
10
--FILE--
10
11
<?php
11
12
12
13
$fd = fopen(__DIR__, "r");
14
+ var_dump(posix_mknodat($fd, 'dev', POSIX_S_IFIFO | 0666, 1, 0));
13
15
var_dump(posix_mknodat($fd, '', POSIX_S_IFBLK | 0777, 1, 0));
14
16
var_dump(posix_mknodat($fd, __DIR__ . '', POSIX_S_IFBLK | 0777, 1, 0));
15
17
try {
@@ -22,14 +24,20 @@ var_dump(posix_mkfifoat($fd, __DIR__ . '', POSIX_S_IFBLK | 0777));
22
24
try {
23
25
posix_mkfifoat(new stdClass(), '/dev/', POSIX_S_IFBLK | 0777);
24
26
} catch (TypeError $e) {
25
- echo $e->getMessage();
27
+ echo $e->getMessage() . PHP_EOL ;
26
28
}
29
+ @unlink(__DIR__ . '/dev');
30
+ var_dump(posix_mkfifoat($fd, 'dev', POSIX_S_IFIFO | 0666));
27
31
fclose($fd);
32
+ @unlink(__DIR__ . '/dev');
28
33
?>
29
34
--EXPECT--
35
+ bool(true)
30
36
bool(false)
31
37
bool(false)
32
38
posix_mknodat(): Argument #4 ($major) cannot be 0 for the POSIX_S_IFCHR and POSIX_S_IFBLK modes
33
39
bool(false)
34
40
bool(false)
35
41
posix_mkfifoat(): Argument #1 ($file_descriptor) must be of type int|resource, stdClass given
42
+ bool(true)
43
+
0 commit comments