Browse Source
Merge branch 'PHP-5.6'
Merge branch 'PHP-5.6'
* PHP-5.6: Add 64 bit formats to pack() and unpack()pull/873/merge
3 changed files with 310 additions and 3 deletions
-
154ext/standard/pack.c
-
115ext/standard/tests/strings/pack64.phpt
-
44ext/standard/tests/strings/pack64_32.phpt
@ -0,0 +1,115 @@ |
|||
--TEST-- |
|||
64bit pack()/unpack() tests |
|||
--SKIPIF-- |
|||
<?php |
|||
if (PHP_INT_SIZE < 8) { |
|||
die("skip 64bit test only"); |
|||
} |
|||
?> |
|||
--FILE-- |
|||
<?php |
|||
print_r(unpack("Q", pack("Q", 0xfffffffffffe))); |
|||
print_r(unpack("Q", pack("Q", 0))); |
|||
print_r(unpack("Q", pack("Q", 0x8000000000000002))); |
|||
print_r(unpack("Q", pack("Q", -1))); |
|||
print_r(unpack("Q", pack("Q", 0x8000000000000000))); |
|||
|
|||
print_r(unpack("J", pack("J", 0xfffffffffffe))); |
|||
print_r(unpack("J", pack("J", 0))); |
|||
print_r(unpack("J", pack("J", 0x8000000000000002))); |
|||
print_r(unpack("J", pack("J", -1))); |
|||
print_r(unpack("J", pack("J", 0x8000000000000000))); |
|||
|
|||
print_r(unpack("P", pack("P", 0xfffffffffffe))); |
|||
print_r(unpack("P", pack("P", 0))); |
|||
print_r(unpack("P", pack("P", 0x8000000000000002))); |
|||
print_r(unpack("P", pack("P", -1))); |
|||
print_r(unpack("P", pack("P", 0x8000000000000000))); |
|||
|
|||
print_r(unpack("q", pack("q", 0xfffffffffffe))); |
|||
print_r(unpack("q", pack("q", 0))); |
|||
print_r(unpack("q", pack("q", 0x8000000000000002))); |
|||
print_r(unpack("q", pack("q", -1))); |
|||
print_r(unpack("q", pack("q", 0x8000000000000000))); |
|||
?> |
|||
--EXPECTF-- |
|||
Array |
|||
( |
|||
[1] => 281474976710654 |
|||
) |
|||
Array |
|||
( |
|||
[1] => 0 |
|||
) |
|||
Array |
|||
( |
|||
[1] => -9223372036854775808 |
|||
) |
|||
Array |
|||
( |
|||
[1] => -1 |
|||
) |
|||
Array |
|||
( |
|||
[1] => -9223372036854775808 |
|||
) |
|||
Array |
|||
( |
|||
[1] => 281474976710654 |
|||
) |
|||
Array |
|||
( |
|||
[1] => 0 |
|||
) |
|||
Array |
|||
( |
|||
[1] => -9223372036854775808 |
|||
) |
|||
Array |
|||
( |
|||
[1] => -1 |
|||
) |
|||
Array |
|||
( |
|||
[1] => -9223372036854775808 |
|||
) |
|||
Array |
|||
( |
|||
[1] => 281474976710654 |
|||
) |
|||
Array |
|||
( |
|||
[1] => 0 |
|||
) |
|||
Array |
|||
( |
|||
[1] => -9223372036854775808 |
|||
) |
|||
Array |
|||
( |
|||
[1] => -1 |
|||
) |
|||
Array |
|||
( |
|||
[1] => -9223372036854775808 |
|||
) |
|||
Array |
|||
( |
|||
[1] => 281474976710654 |
|||
) |
|||
Array |
|||
( |
|||
[1] => 0 |
|||
) |
|||
Array |
|||
( |
|||
[1] => -9223372036854775808 |
|||
) |
|||
Array |
|||
( |
|||
[1] => -1 |
|||
) |
|||
Array |
|||
( |
|||
[1] => -9223372036854775808 |
|||
) |
|||
@ -0,0 +1,44 @@ |
|||
--TEST-- |
|||
64bit pack()/unpack() tests |
|||
--SKIPIF-- |
|||
<?php |
|||
if (PHP_INT_SIZE > 4) { |
|||
die("skip 32bit test only"); |
|||
} |
|||
?> |
|||
--FILE-- |
|||
<?php |
|||
var_dump(pack("Q", 0)); |
|||
var_dump(pack("J", 0)); |
|||
var_dump(pack("P", 0)); |
|||
var_dump(pack("q", 0)); |
|||
|
|||
var_dump(unpack("Q", '')); |
|||
var_dump(unpack("J", '')); |
|||
var_dump(unpack("P", '')); |
|||
var_dump(unpack("q", '')); |
|||
?> |
|||
--EXPECTF-- |
|||
Warning: pack(): 64-bit format codes are not available for 32-bit versions of PHP in %s on line %d |
|||
bool(false) |
|||
|
|||
Warning: pack(): 64-bit format codes are not available for 32-bit versions of PHP in %s on line %d |
|||
bool(false) |
|||
|
|||
Warning: pack(): 64-bit format codes are not available for 32-bit versions of PHP in %s on line %d |
|||
bool(false) |
|||
|
|||
Warning: pack(): 64-bit format codes are not available for 32-bit versions of PHP in %s on line %d |
|||
bool(false) |
|||
|
|||
Warning: unpack(): 64-bit format codes are not available for 32-bit versions of PHP in %s on line %d |
|||
bool(false) |
|||
|
|||
Warning: unpack(): 64-bit format codes are not available for 32-bit versions of PHP in %s on line %d |
|||
bool(false) |
|||
|
|||
Warning: unpack(): 64-bit format codes are not available for 32-bit versions of PHP in %s on line %d |
|||
bool(false) |
|||
|
|||
Warning: unpack(): 64-bit format codes are not available for 32-bit versions of PHP in %s on line %d |
|||
bool(false) |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue