/PHP-7.4/ext/ffi/tests/ |
H A D | 034.phpt | 2 FFI 034: FFI::typeof(), FFI::sizeof(), FFI::alignof() 9 $p1 = FFI::new("uint8_t[2]"); 10 $p2 = FFI::new("uint16_t[2]"); 11 $p3 = FFI::new("uint32_t[2]"); 12 var_dump(FFI::sizeof($p1), FFI::sizeof($p2), FFI::sizeof($p3)); 13 var_dump(FFI::alignof($p1), FFI::alignof($p2), FFI::alignof($p3)); 14 var_dump(FFI::sizeof(FFI::typeof($p1)), FFI::sizeof(FFI::typeof($p2)), FFI::sizeof(FFI::typeof($p3)… 15 var_dump(FFI::alignof(FFI::typeof($p1)), FFI::alignof(FFI::typeof($p2)), FFI::alignof(FFI::typeof($…
|
H A D | 033.phpt | 2 FFI 033: FFI::new(), FFI::free(), FFI::type(), FFI::typeof(), FFI::arrayType() 9 $p1 = FFI::new("uint8_t[2]"); 13 $t1 = FFI::typeof($p1); 16 $p4 = FFI::new($t1); 19 $t2 = FFI::type("uint16_t[2]"); 21 $p4 = FFI::new($t2); 24 $t2 = FFI::type("uint32_t"); 26 $t3 = FFI::arrayType($t2, [2, 2]); 30 object(FFI\CData:uint8_t[2])#%d (2) { 42 object(FFI\CType:uint8_t[2])#%d (0) { [all …]
|
H A D | 041.phpt | 2 FFI 041: Type memory management 11 return FFI::new(FFI::type($str)); 13 $type = FFI::type($str); 14 return FFI::new($type); 24 return FFI::typeof(FFI::new($str)); 26 $data = FFI::new($str); 37 return FFI::cast(FFI::type($str), FFI::new($str)); 39 $type = FFI::type($str); 40 return FFI::cast($type, FFI::new($str)); 50 return FFI::arrayType(FFI::type($str), [2]); [all …]
|
H A D | 040.phpt | 2 FFI 040: Support for scalar types 14 $x = FFI::new("int"); 17 var_dump(FFI::typeof($x)); 19 $p = FFI::addr($x); 23 var_dump(FFI::sizeof($x)); 24 var_dump(FFI::alignof($x)); 25 FFI::memset($x, ord("a"), 4); 26 var_dump(FFI::string($x, 4)); 30 $y = FFI::new("int[2]"); 35 $p = FFI::addr($y[0]); [all …]
|
H A D | 045.phpt | 2 FFI 045: FFI::isNull() 9 var_dump(FFI::isNull(FFI::new("int*"))); 10 $i = FFI::new("int"); 11 var_dump(FFI::isNull(FFI::addr($i))); 13 var_dump(FFI::isNull(null)); 18 var_dump(FFI::isNull(FFI::new("int[0]"))); 27 Warning: FFI::isNull() expects parameter 1 to be FFI\CData, null given in %s045.php on line %d 29 FFI\Exception: Cannot instantiate FFI\CData of zero size
|
H A D | 009.phpt | 2 FFI 009: memcpy(), memcmp(), memset() and sizeof() 9 $a = FFI::new("int[3]"); 12 $b = FFI::new("int[4]"); 13 var_dump(FFI::memcmp($b, $a, FFI::sizeof($a))); 14 FFI::memcpy($b, $a, FFI::sizeof($a)); 16 var_dump(FFI::memcmp($b, $a, FFI::sizeof($a))); 17 FFI::memset($a, -1, FFI::sizeof($a)); 22 object(FFI\CData:int32_t[4])#%d (4) { 33 object(FFI\CData:int32_t[3])#%d (3) {
|
H A D | 027.phpt | 2 FFI 027: Incomplete and variable length arrays 10 $p = FFI::new("int[*]"); 16 FFI::cdef("static int (*foo)[*];"); 22 FFI::cdef("typedef int foo[*];"); 28 FFI::cdef("static void foo(int[*][*]);"); 34 var_dump(FFI::sizeof(FFI::new("int[0]"))); 39 var_dump(FFI::sizeof(FFI::new("int[]"))); 44 var_dump(FFI::sizeof(FFI::cast("int[]", FFI::new("int[2]")))); 55 $f = FFI::cdef("typedef int(*foo)[];"); 67 $f = FFI::cdef("typedef int foo[];"); [all …]
|
H A D | 023.phpt | 2 FFI 023: GCC struct extensions 10 var_dump(FFI::sizeof(FFI::new("struct {}"))); 14 var_dump(FFI::sizeof(FFI::new("struct {int a}"))); 15 var_dump(FFI::sizeof(FFI::new("struct {int a; int b}"))); 19 FFI\Exception: Cannot instantiate FFI\CData of zero size
|
H A D | 014.phpt | 2 FFI 014: Size of nested types 9 var_dump(FFI::sizeof(FFI::new("uint32_t[2]"))); 10 var_dump(FFI::sizeof(FFI::new("uint32_t([2])"))); 11 var_dump(FFI::sizeof(FFI::new("uint32_t([2])[2]")));
|
H A D | 036.phpt | 2 FFI 036: Type memory management 9 $type = FFI::type("int*"); 13 //$buf = FFI::new("int*[1]"); /* this loses type and crash */ 14 $buf = FFI::new(FFI::arrayType($type, [1])); 20 $int = FFI::new("int"); 22 var_dump(foo(FFI::addr($int))); 25 object(FFI\CData:int32_t*)#%d (1) {
|
H A D | 013.phpt | 2 FFI 013: Declaration priorities and constrains 9 $a = FFI::new("int[1][2][3]"); 15 var_dump(FFI::new("void")); 21 var_dump(FFI::new("void[1]")); 26 FFI::cdef("static int foo(int)[5];"); 32 FFI::cdef("static int foo[5](int);"); 38 FFI::cdef("static int foo(int)(int);"); 44 FFI::cdef("typedef int foo[2][];"); 50 FFI::cdef("typedef int foo[][2];"); 60 FFI\ParserException: 'void' type is not allowed at line 1 [all …]
|
H A D | 006.phpt | 2 FFI 006: Pointer assignment 9 $v = FFI::new("int*[2]"); 10 $v[1] = FFI::new("int[1]", false); 13 FFI::free($v[1]); 17 object(FFI\CData:int32_t*[2])#%d (2) { 21 object(FFI\CData:int32_t*)#%d (1) { 26 object(FFI\CData:int32_t*[2])#%d (2) {
|
H A D | 044.phpt | 2 FFI 044: mode attribute 9 $ffi = FFI::cdef(" 21 var_dump(FFI::sizeof($ffi->new("a"))); 22 var_dump(FFI::sizeof($ffi->new("ua"))); 23 var_dump(FFI::sizeof($ffi->new("b"))); 24 var_dump(FFI::sizeof($ffi->new("ub"))); 25 var_dump(FFI::sizeof($ffi->new("c"))); 26 var_dump(FFI::sizeof($ffi->new("uc"))); 27 var_dump(FFI::sizeof($ffi->new("d"))); 29 var_dump(FFI::sizeof($ffi->new("e"))); [all …]
|
H A D | 010.phpt | 2 FFI 010: string() 9 $a = FFI::new("int[3]"); 10 FFI::memset($a, ord("a"), FFI::sizeof($a)); 11 var_dump(FFI::string($a, FFI::sizeof($a)));
|
H A D | 035.phpt | 2 FFI 035: FFI::new() not-owned 9 $p = FFI::new("uint16_t[2]", false); 12 FFI::free($p); 20 object(FFI\CData:uint16_t[2])#%d (2) { 26 object(FFI\CData:uint16_t[2])#%d (0) { 28 FFI\Exception: Use after free()
|
H A D | 020.phpt | 2 FFI 020: read-only 10 $p = FFI::new("struct {int x; const int y;}"); 18 $p = FFI::new("struct {const int x; int y;}"); 26 $p = FFI::new("const struct {int x; int y;}"); 33 $p = FFI::new("const int[10]"); 40 $p = FFI::new("const int * [1]"); 47 $p = FFI::new("int * const [1]"); 54 $f = FFI::cdef("typedef int * const t[1];"); 66 FFI\Exception: Attempt to assign read-only location 67 FFI\Exception: Attempt to assign read-only location [all …]
|
H A D | 005.phpt | 2 FFI 005: Array assignment 9 $m = FFI::new("int[2][2]"); 10 $v = FFI::new("int[2]"); 16 object(FFI\CData:int32_t[2][2])#%d (2) { 18 object(FFI\CData:int32_t[2])#%d (2) { 25 object(FFI\CData:int32_t[2])#%d (2) {
|
H A D | 007.phpt | 2 FFI 007: Pointer comparison 9 $v = FFI::new("int*[3]"); 10 $v[0] = FFI::new("int[1]", false); 11 $v[1] = FFI::new("int[1]", false); 16 FFI::free($v[0]); 17 FFI::free($v[1]);
|
H A D | 025.phpt | 2 FFI 025: direct work with primitive types 9 $x = FFI::new("int"); 17 $x = FFI::new("char"); 26 object(FFI\CData:int32_t)#%d (1) { 30 object(FFI\CData:int32_t)#%d (1) { 36 object(FFI\CData:char)#%d (1) { 40 object(FFI\CData:char)#%d (1) {
|
H A D | 004.phpt | 2 FFI 004: Enum declarations 9 $ffi = FFI::cdef(<<<EOF 55 object(FFI\CData:enum _a)#%d (1) { 59 object(FFI\CData:enum _b)#%d (1) { 63 object(FFI\CData:enum _c)#%d (1) { 67 object(FFI\CData:enum _d)#%d (1) { 71 object(FFI\CData:int32_t[1])#%d (1) { 75 object(FFI\CData:int32_t[1])#%d (1) { 79 object(FFI\CData:int32_t[2])#%d (2) { 85 FFI\ParserException: incomplete 'enum _e' at line 1 [all …]
|
H A D | 028.phpt | 2 FFI 028: Incomplete arrays inside structure 10 FFI::cdef("struct _x {int a; int b[0];};"); 16 FFI::cdef("struct _x {int a; int b[];};"); 22 FFI::cdef("struct _x {int a[0]; int b;};"); 28 FFI::cdef("struct _x {int a[]; int b;};"); 34 FFI::cdef("struct _x { struct {int a; int b[];}; int c;};"); 40 FFI::cdef("union _x {int a; int b[];};"); 50 FFI\ParserException: flexible array member not at end of struct at line 1 51 FFI\ParserException: flexible array member not at end of struct at line 1 52 FFI\ParserException: flexible array member in union at line 1
|
H A D | 037.phpt | 2 FFI 037: Type memory management 10 $buf = FFI::new("int*[1]"); 16 $int = FFI::new("int"); 18 var_dump(foo(FFI::addr($int))); 21 object(FFI\CData:int32_t*)#%d (1) {
|
H A D | 017.phpt | 2 FFI 017: Structure constraints & tags cleanup 10 var_dump(FFI::new("struct X {void x();}")); 15 var_dump(FFI::new("struct X {struct X x;}")); 20 var_dump(FFI::new("struct X {struct X *ptr;}")); 27 FFI\ParserException: 'function' type is not allowed at line 1 28 FFI\ParserException: struct/union can't contain an instance of itself at line 1 29 object(FFI\CData:struct X)#%d (1) {
|
H A D | 015.phpt | 2 FFI 015: Incomplete type usage 10 FFI::cdef("struct DIR; static struct DIR dir;"); 16 FFI::cdef("struct DIR; static struct DIR *ptr;"); 22 FFI::cdef("struct DIR; typedef struct DIR DIR; static DIR dir;"); 28 FFI::cdef("struct DIR; typedef struct DIR DIR; static DIR *ptr;"); 34 FFI::cdef("struct DIR; static struct DIR foo();"); 40 FFI::cdef("struct DIR; static struct DIR* foo();"); 46 FFI::cdef("struct DIR; static void foo(struct DIR);"); 52 FFI::cdef("struct DIR; static void foo(struct DIR*);"); 60 FFI\ParserException: incomplete 'struct DIR' at line 1 [all …]
|
H A D | 030.phpt | 2 FFI 030: bool type 9 var_dump(FFI::sizeof(FFI::new("bool[2]"))); 10 $p = FFI::new("bool[2]"); 18 object(FFI\CData:bool[2])#%d (2) {
|