summaryrefslogtreecommitdiff
path: root/ext/session/tests/session_gc_basic.phpt
blob: f0726ce93bbbfcd541dbc7ee1257c203fbfb2a44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
--TEST--
Test session_gc() function : basic functionality
--SKIPIF--
<?php include('skipif.inc'); ?>
--INI--
session.serialize_handler=php
session.save_handler=files
session.maxlifetime=782000
--FILE--
<?php
error_reporting(E_ALL);

ob_start();

/*
 * Prototype : int session_gc([int maxlifetime])
 * Description : Execute gc and return number of deleted data
 * Source code : ext/session/session.c
 */

echo "*** Testing session_gc() : basic functionality ***\n";

// Should fail. It requires active session.
var_dump(session_gc());

session_start();
// Should succeed with some number
var_dump(session_gc());
// Secound time must be int(0)
var_dump(session_gc());
session_write_close();

// Start&stop session to generate
session_start();
session_write_close();
session_start();
session_write_close();
session_start();
session_write_close();

session_start();
$ndeleted = session_gc(0); // Delete all
var_dump($ndeleted >= 3);

echo "Done".PHP_EOL;

?>
--EXPECTF--
*** Testing session_gc() : basic functionality ***

Warning: session_gc(): Trying to garbage collect without active session in %s on line 15
bool(false)
int(%d)
int(0)
bool(true)
Done