1--TEST--
2Generators can't be serialized or unserialized
3--FILE--
4<?php
5
6function gen() { yield; }
7
8$gen = gen();
9
10try {
11    serialize($gen);
12} catch (Exception $e) {
13    echo $e, "\n\n";
14}
15
16try {
17    var_dump(unserialize('O:9:"Generator":0:{}'));
18} catch (Exception $e) {
19    echo $e, "\n\n";
20}
21
22try {
23    var_dump(unserialize('C:9:"Generator":0:{}'));
24} catch (Exception $e) {
25    echo $e;
26}
27
28?>
29--EXPECTF--
30exception 'Exception' with message 'Serialization of 'Generator' is not allowed' in %s:%d
31Stack trace:
32#0 %s(%d): serialize(Object(Generator))
33#1 {main}
34
35
36Warning: Erroneous data format for unserializing 'Generator' in %sserialize_unserialize_error.php on line %d
37
38Notice: unserialize(): Error at offset 19 of 20 bytes in %sserialize_unserialize_error.php on line %s
39bool(false)
40exception 'Exception' with message 'Unserialization of 'Generator' is not allowed' in %s:%d
41Stack trace:
42#0 %s(%d): unserialize('C:9:"Generator"...')
43#1 {main}
44