1--TEST--
2Check for serialization handler
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
17$output = '';
18
19function open($path, $name) {
20    return true;
21}
22
23function close() {
24    return true;
25}
26
27function read($id) {
28    global $output;
29    $output .= "read" . PHP_EOL;
30    return pack('H*', '81a3666f6f01');
31}
32
33function write($id, $data) {
34    global $output;
35    $output .= "wrote: ";
36    $output .= bin2hex($data). PHP_EOL;
37    return true;
38}
39
40function destroy($id) {
41    return true;
42}
43
44function gc($time) {
45    return true;
46}
47
48class Foo {
49}
50
51class Bar {
52}
53
54ini_set('session.serialize_handler', 'msgpack');
55
56session_set_save_handler('open', 'close', 'read', 'write', 'destroy', 'gc');
57
58
59$db_object = new Foo();
60$session_object = new Bar();
61
62$v = session_start();
63var_dump($v);
64$_SESSION['test'] = "foobar";
65
66session_write_close();
67
68echo $output;
69var_dump($_SESSION);
70?>
71--EXPECT--
72bool(true)
73read
74wrote: 83c001a3666f6f01a474657374a6666f6f626172
75array(2) {
76  ["foo"]=>
77  int(1)
78  ["test"]=>
79  string(6) "foobar"
80}
81