1--TEST--
2Check for serialization handler, broken
3--SKIPIF--
4<?php
5if (version_compare(PHP_VERSION, '5.2.0') < 0) {
6    echo "skip tests in PHP 5.2 or newer";
7}
8if (!extension_loaded("session")) {
9   echo "skip needs session enabled";
10}
11--FILE--
12<?php
13if(!extension_loaded('msgpack')) {
14    dl('msgpack.' . PHP_SHLIB_SUFFIX);
15}
16
17error_reporting(0);
18
19$output = '';
20
21function open($path, $name) {
22    return true;
23}
24
25function close() {
26    return true;
27}
28
29function read($id) {
30    global $output;
31    //broken data
32    return pack('H*', '81a36');
33}
34
35function write($id, $data) {
36    global $output;
37    $output .= bin2hex($data). PHP_EOL;
38    return true;
39}
40
41function destroy($id) {
42    return true;
43}
44
45function gc($time) {
46    return true;
47}
48
49ini_set('session.serialize_handler', 'msgpack');
50
51session_set_save_handler('open', 'close', 'read', 'write', 'destroy', 'gc');
52
53session_start();
54
55echo ++$_SESSION['foo'], PHP_EOL;
56
57session_write_close();
58
59echo $output;
60var_dump($_SESSION);
61?>
62--EXPECT--
631
6482c001a3666f6f01
65array(1) {
66  ["foo"]=>
67  int(1)
68}
69