Annotation of embedaddon/php/ext/session/tests/bug32330.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Bug #32330 (session_destroy, "Failed to initialize storage module", custom session handler)
3: --SKIPIF--
4: <?php include('skipif.inc'); ?>
5: --INI--
6: session.use_trans_sid=0
7: session.use_cookies=1
8: session.name=sid
9: session.save_path=/tmp
10: session.gc_probability=1
11: session.gc_divisor=1
12: --FILE--
13: <?php
14: error_reporting(E_ALL);
15:
16: function sOpen($path, $name)
17: {
18: echo "open: path = {$path}, name = {$name}\n";
19: return TRUE;
20: }
21:
22: function sClose()
23: {
24: echo "close\n";
25: return TRUE;
26: }
27:
28: function sRead($id)
29: {
30: echo "read: id = {$id}\n";
31: return '';
32: }
33:
34: function sWrite($id, $data)
35: {
36: echo "write: id = {$id}, data = {$data}\n";
37: return TRUE;
38: }
39:
40: function sDestroy($id)
41: {
42: echo "destroy: id = {$id}\n";
43: return TRUE;
44: }
45:
46: function sGC($maxlifetime)
47: {
48: echo "gc: maxlifetime = {$maxlifetime}\n";
49: return TRUE;
50: }
51:
52: session_set_save_handler( 'sOpen', 'sClose', 'sRead', 'sWrite', 'sDestroy', 'sGC' );
53:
54: // without output buffering, the debug messages will cause all manner of warnings
55: ob_start();
56:
57: session_start();
58: $_SESSION['A'] = 'B';
59: session_write_close();
60:
61: session_start();
62: $_SESSION['C'] = 'D';
63: session_destroy();
64:
65: session_start();
66: $_SESSION['E'] = 'F';
67: // Don't try to destroy this time!
68:
69: ?>
70: --EXPECTF--
71: open: path = /tmp, name = sid
72: read: id = %s
73: gc: maxlifetime = %d
74: write: id = %s, data = A|s:1:"B";
75: close
76: open: path = /tmp, name = sid
77: read: id = %s
78: gc: maxlifetime = %d
79: destroy: id = %s
80: close
81: open: path = /tmp, name = sid
82: read: id = %s
83: gc: maxlifetime = %d
84: write: id = %s, data = E|s:1:"F";
85: close
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>