-
Notifications
You must be signed in to change notification settings - Fork 8k
Expand file tree
/
Copy pathgc_dirdepth_multi_subdir_count.phpt
More file actions
54 lines (49 loc) · 1.25 KB
/
gc_dirdepth_multi_subdir_count.phpt
File metadata and controls
54 lines (49 loc) · 1.25 KB
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
--TEST--
session GC accumulates correct total count across multiple subdirs, including empty ones (dirdepth=1)
--EXTENSIONS--
session
--SKIPIF--
<?php include(__DIR__ . '/../skipif.inc'); ?>
--INI--
session.gc_probability=0
session.gc_maxlifetime=10
--FILE--
<?php
$base = __DIR__ . '/gc_multi_subdir_test';
@mkdir($base);
@mkdir("$base/a");
@mkdir("$base/b");
@mkdir("$base/c");
@mkdir("$base/d"); // empty subdir
session_save_path("1;$base");
$files = [
"$base/a/sess_aexpired0000000000000000",
"$base/b/sess_bexpired0000000000000000",
"$base/c/sess_cexpired0000000000000000",
];
foreach ($files as $f) {
file_put_contents($f, 'user|s:5:"alice";');
touch($f, time() - 100);
}
session_id('a0000000000000000000000000');
session_start();
$result = session_gc();
session_destroy();
echo "session_gc() return value: ";
var_dump($result);
echo "all expired files removed: ";
var_dump(!file_exists($files[0]) && !file_exists($files[1]) && !file_exists($files[2]));
?>
--CLEAN--
<?php
$base = __DIR__ . '/gc_multi_subdir_test';
@unlink("$base/a/sess_a0000000000000000000000000");
@rmdir("$base/a");
@rmdir("$base/b");
@rmdir("$base/c");
@rmdir("$base/d");
@rmdir($base);
?>
--EXPECT--
session_gc() return value: int(3)
all expired files removed: bool(true)