1--TEST--
2Test session_set_save_handler() function: GC variation
3--EXTENSIONS--
4session
5--INI--
6session.gc_probability=1
7session.gc_divisor=1
8session.gc_maxlifetime=0
9session.save_path=
10session.name=PHPSESSID
11--FILE--
12<?php
13
14ob_start();
15
16echo "*** Testing session_set_save_handler() : variation ***\n";
17
18function noisy_gc($maxlifetime) {
19    echo("GC [".$maxlifetime."]\n");
20    echo gc($maxlifetime)." deleted\n";
21    return true;
22}
23
24require_once "save_handler.inc";
25$path = __DIR__ . '/session_set_save_handler_variation4';
26@mkdir($path);
27session_save_path($path);
28session_set_save_handler("open", "close", "read", "write", "destroy", "noisy_gc");
29
30session_start();
31$_SESSION["Blah"] = "Hello World!";
32$_SESSION["Foo"] = FALSE;
33$_SESSION["Guff"] = 1234567890;
34var_dump($_SESSION);
35$session_id = session_id();
36var_dump(session_write_close());
37
38session_set_save_handler("open", "close", "read", "write", "destroy", "noisy_gc");
39session_id($session_id);
40session_start();
41var_dump($_SESSION);
42var_dump(session_destroy());
43
44ob_end_flush();
45?>
46--CLEAN--
47<?php
48$path = __DIR__ . '/session_set_save_handler_variation4';
49rmdir($path);
50?>
51--EXPECTF--
52*** Testing session_set_save_handler() : variation ***
53Open [%s,PHPSESSID]
54Read [%s,%s]
55GC [0]
561 deleted
57array(3) {
58  ["Blah"]=>
59  string(12) "Hello World!"
60  ["Foo"]=>
61  bool(false)
62  ["Guff"]=>
63  int(1234567890)
64}
65Write [%s,%s,Blah|s:12:"Hello World!";Foo|b:0;Guff|i:1234567890;]
66Close [%s,PHPSESSID]
67bool(true)
68Open [%s,PHPSESSID]
69Read [%s,%s]
70GC [0]
711 deleted
72array(3) {
73  ["Blah"]=>
74  string(12) "Hello World!"
75  ["Foo"]=>
76  bool(false)
77  ["Guff"]=>
78  int(1234567890)
79}
80Destroy [%s,%s]
81
82Warning: unlink(%s): No such file or directory in %s on line %d
83Close [%s,PHPSESSID]
84bool(true)
85