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