1--TEST--
2Test session_decode() function : error functionality
3--SKIPIF--
4<?php include('skipif.inc'); ?>
5--FILE--
6<?php
7
8ob_start();
9
10/*
11 * Prototype : string session_decode(void)
12 * Description : Decodes session data from a string
13 * Source code : ext/session/session.c
14 */
15
16echo "*** Testing session_decode() : error functionality ***\n";
17$data = "foo|a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}guff|R:1;blah|R:1;";
18
19var_dump(session_start());
20for($index = 0; $index < strlen($data); $index++) {
21    echo "\n-- Iteration $index --\n";
22    $encoded = substr($data, 0, $index);
23    var_dump(session_decode($encoded));
24    var_dump($_SESSION);
25};
26
27var_dump(session_destroy());
28echo "Done";
29ob_end_flush();
30?>
31--EXPECTF--
32*** Testing session_decode() : error functionality ***
33bool(true)
34
35-- Iteration 0 --
36bool(true)
37array(0) {
38}
39
40-- Iteration 1 --
41bool(true)
42array(0) {
43}
44
45-- Iteration 2 --
46bool(true)
47array(0) {
48}
49
50-- Iteration 3 --
51bool(true)
52array(0) {
53}
54
55-- Iteration 4 --
56
57Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d
58bool(false)
59array(0) {
60}
61
62-- Iteration 5 --
63bool(false)
64array(0) {
65}
66
67-- Iteration 6 --
68bool(false)
69array(0) {
70}
71
72-- Iteration 7 --
73bool(false)
74array(0) {
75}
76
77-- Iteration 8 --
78bool(false)
79array(0) {
80}
81
82-- Iteration 9 --
83bool(false)
84array(0) {
85}
86
87-- Iteration 10 --
88bool(false)
89array(0) {
90}
91
92-- Iteration 11 --
93bool(false)
94array(0) {
95}
96
97-- Iteration 12 --
98bool(false)
99array(0) {
100}
101
102-- Iteration 13 --
103bool(false)
104array(0) {
105}
106
107-- Iteration 14 --
108bool(false)
109array(0) {
110}
111
112-- Iteration 15 --
113bool(false)
114array(0) {
115}
116
117-- Iteration 16 --
118bool(false)
119array(0) {
120}
121
122-- Iteration 17 --
123bool(false)
124array(0) {
125}
126
127-- Iteration 18 --
128bool(false)
129array(0) {
130}
131
132-- Iteration 19 --
133bool(false)
134array(0) {
135}
136
137-- Iteration 20 --
138bool(false)
139array(0) {
140}
141
142-- Iteration 21 --
143bool(false)
144array(0) {
145}
146
147-- Iteration 22 --
148bool(false)
149array(0) {
150}
151
152-- Iteration 23 --
153bool(false)
154array(0) {
155}
156
157-- Iteration 24 --
158bool(false)
159array(0) {
160}
161
162-- Iteration 25 --
163bool(false)
164array(0) {
165}
166
167-- Iteration 26 --
168bool(false)
169array(0) {
170}
171
172-- Iteration 27 --
173bool(false)
174array(0) {
175}
176
177-- Iteration 28 --
178bool(false)
179array(0) {
180}
181
182-- Iteration 29 --
183bool(false)
184array(0) {
185}
186
187-- Iteration 30 --
188bool(false)
189array(0) {
190}
191
192-- Iteration 31 --
193bool(false)
194array(0) {
195}
196
197-- Iteration 32 --
198bool(false)
199array(0) {
200}
201
202-- Iteration 33 --
203bool(false)
204array(0) {
205}
206
207-- Iteration 34 --
208bool(false)
209array(0) {
210}
211
212-- Iteration 35 --
213bool(false)
214array(0) {
215}
216
217-- Iteration 36 --
218bool(false)
219array(0) {
220}
221
222-- Iteration 37 --
223bool(false)
224array(0) {
225}
226
227-- Iteration 38 --
228bool(false)
229array(0) {
230}
231
232-- Iteration 39 --
233bool(false)
234array(0) {
235}
236
237-- Iteration 40 --
238bool(false)
239array(0) {
240}
241
242-- Iteration 41 --
243bool(false)
244array(0) {
245}
246
247-- Iteration 42 --
248bool(false)
249array(0) {
250}
251
252-- Iteration 43 --
253bool(false)
254array(0) {
255}
256
257-- Iteration 44 --
258bool(false)
259array(0) {
260}
261
262-- Iteration 45 --
263bool(false)
264array(0) {
265}
266
267-- Iteration 46 --
268bool(false)
269array(0) {
270}
271
272-- Iteration 47 --
273bool(false)
274array(0) {
275}
276
277-- Iteration 48 --
278bool(false)
279array(0) {
280}
281
282-- Iteration 49 --
283bool(false)
284array(0) {
285}
286
287-- Iteration 50 --
288bool(false)
289array(0) {
290}
291
292-- Iteration 51 --
293bool(false)
294array(0) {
295}
296
297Warning: session_destroy(): Trying to destroy uninitialized session in %s/session_decode_error2.php on line %d
298bool(false)
299Done
300