1--TEST-- 2unpack/pack str8 3--INI-- 4msgpack.use_str8_serialization = 1 5--SKIPIF-- 6<?php 7 if (version_compare(PHP_VERSION, '5.2.0') < 0) { 8 echo "skip tests in PHP 5.2 or newer"; 9 } 10--FILE-- 11<?php 12 if(!extension_loaded('msgpack')) { 13 dl('msgpack.' . PHP_SHLIB_SUFFIX); 14 } 15 16 $str = "Simple test for short string - type str8"; 17 $str8 = chr(0xD9) . chr(strlen($str)) . $str; 18 echo msgpack_unpack($str8) . "\n"; 19 20 //assert str8 serialization works, and default for use use_str8_serialization is 1 21 $data = msgpack_pack($str); 22 var_dump(bin2hex($data)); 23 echo ($data[0] == chr(0xD9) && $data[1] == chr(strlen($str)) ? "OK" : "FAILED"), PHP_EOL; 24 25 ini_set('msgpack.use_str8_serialization', 0); 26 $data = msgpack_pack($str); 27 var_dump(bin2hex($data)); 28 echo ($data[0] == chr(0xDA) && $data[2] == chr(strlen($str)) ? "OK" : "FAILED"), PHP_EOL; 29 30?> 31--EXPECTF-- 32Simple test for short string - type str8 33string(84) "d92853696d706c65207465737420666f722073686f727420737472696e67202d20747970652073747238" 34OK 35string(86) "da002853696d706c65207465737420666f722073686f727420737472696e67202d20747970652073747238" 36OK 37