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>