msgpack/php/tests/test_pack.phpt
2010-04-05 00:10:28 +09:00

170 lines
3.1 KiB
PHP

--TEST--
Test msgpack_pack() function : basic functionality
--SKIPIF--
<?php if (!extension_loaded("msgpack")) print "skip"; ?>
--FILE--
<?php
echo "*** Testing msgpack_pack() : basic functionality ***\n";
function create_map($num)
{
$data = array();
for($i=0; $i<=$num; $i++)
$data[$i+1] = $i;
return $data;
}
$inputs = array (
// null
/*1*/ null,
NULL,
// boolean
/*3*/ false,
FALSE,
true,
TRUE,
// zero
/*7*/ 0,
// positive fixnum
/*8*/ 1,
(1<<6),
(1<<7)-1,
// positive int 8
/*11*/ (1<<7),
(1<<8)-1,
// positive int 16
/*13*/ (1<<8),
(1<<16)-1,
// positive int 32
/*15*/ (1<<16),
(1<<32)-1,
// positive int 64
/*17*/ (1<<32),
(1<<64)-1,
// negative fixnum
/*19*/ -1,
-((1<<5)-1),
-(1<<5),
// negative int 8
/*22*/ -((1<<5)+1),
-(1<<7),
// negative int 16
/*24*/ -((1<<7)+1),
-(1<<15),
//negative int 32
/*26*/ -((1<<15)+1),
-(1<<31),
// negative int 64
/*28*/ -((1<<31)+1),
-(1<<63),
// double
/*30*/ 1.0,
0.1,
-0.1,
-1.0,
// fixraw
/*34*/ "",
str_repeat(" ", (1<<5)-1),
// raw 16
/*36*/ str_repeat(" ", (1<<5)),
//str_repeat(" ", (1<<16)-1),
// raw 32
/*38*/ //str_repeat(" ", (1<<16)),
//str_repeat(" ", (1<<32)-1), // memory error
// fixarraw
/*39*/ array(),
range(0, (1<<4)-1),
// array 16
/*41*/ range(0, (1<<4)),
//range(0, (1<<16)-1),
// array 32
/*43*/ //range(0, (1<<16)),
//range(0, (1<<32)-1), // memory error
// fixmap
//array(),
/*44*/ //create_map((1<<4)-1),
// map 16
/*45*/ //create_map((1<<4)),
//create_map((1<<16)-1),
// map 32
/*47*/ //create_map((1<<16))
//create_map((1<<32)-1) // memory error
);
$count = 1;
foreach($inputs as $input) {
echo "-- Iteration $count --\n";
$str = unpack('H*', msgpack_pack($input));
var_dump("0x".$str[1]);
$count ++;
}
?>
===DONE===
--EXPECT--
*** Testing msgpack_pack() : basic functionality ***
-- Iteration 1 --
string(4) "0xc0"
-- Iteration 2 --
string(4) "0xc0"
-- Iteration 3 --
string(4) "0xc2"
-- Iteration 4 --
string(4) "0xc2"
-- Iteration 5 --
string(4) "0xc3"
-- Iteration 6 --
string(4) "0xc3"
-- Iteration 7 --
string(4) "0x00"
-- Iteration 8 --
string(4) "0x7f"
-- Iteration 9 --
string(6) "0xcc80"
-- Iteration 10 --
string(8) "0xcd0100"
-- Iteration 11 --
string(4) "0xff"
-- Iteration 12 --
string(6) "0xd0df"
-- Iteration 13 --
string(8) "0xd1ff7f"
-- Iteration 14 --
string(8) "0x810101"
-- Iteration 15 --
string(20) "0xcb3ff0000000000000"
-- Iteration 16 --
string(4) "0x90"
-- Iteration 17 --
string(34) "0x9f000102030405060708090a0b0c0d0e"
-- Iteration 18 --
string(40) "0xdc0010000102030405060708090a0b0c0d0e0f"
-- Iteration 19 --
string(64) "0x8f0100020103020403050406050706080709080a090b0a0c0b0d0c0e0d0f0e"
-- Iteration 20 --
string(72) "0xde00100100020103020403050406050706080709080a090b0a0c0b0d0c0e0d0f0e100f"
===DONE===