1--TEST--
2Bug #13 (ensure that __get/__set aren't called when packing/unpacking)
3--SKIPIF--
4<?php
5if (!extension_loaded("msgpack")) {
6   echo "skip";
7}
8--FILE--
9<?php
10
11class magicClass {
12    public function __set($name, $value) {
13        echo 'Called __set' . PHP_EOL;
14        $this->$name = $value;
15    }
16    public function __get($name) {
17        echo 'Called __get' . PHP_EOL;
18        return $this->$name;
19    }
20}
21
22$magicInstance = new \magicClass;
23$magicInstance->val = 5;
24var_dump($magicInstance);
25
26$packed = msgpack_pack($magicInstance);
27var_dump(bin2hex($packed));
28$unpacked = msgpack_unpack($packed);
29var_dump($unpacked);
30
31?>
32--EXPECTF--
33Called __set
34object(magicClass)#%d (1) {
35  ["val"]=>
36  int(5)
37}
38string(36) "82c0aa6d61676963436c617373a376616c05"
39object(magicClass)#%d (1) {
40  ["val"]=>
41  int(5)
42}
43