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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
--TEST--
revalidate_path 01: OPCache must cache only resolved real paths when revalidate_path is set
--INI--
opcache.enable=1
opcache.enable_cli=1
opcache.revalidate_path=1
--SKIPIF--
<?php require_once('skipif.inc'); ?>
--CONFLICTS--
server
--FILE--
<?php
$dir = __DIR__;
$dir1 = "$dir/test1";
$dir2 = "$dir/test2";
$link = "$dir/test";
$file1 = "$dir1/index.php";
$file2 = "$dir2/index.php";
$main = "$dir/main.php";
@mkdir($dir1);
@mkdir($dir2);
@file_put_contents($main, '<?php include(\'' . $link .'/index.php\');');
@file_put_contents($file1, "TEST 1\n");
@file_put_contents($file2, "TEST 2\n");
while (filemtime($file1) != filemtime($file2)) {
touch($file1);
touch($file2);
}
if (substr(PHP_OS, 0, 3) == 'WIN') {
@rmdir($link);
$ln = str_replace('/', '\\', $link);
$d1 = realpath($dir1);
`mklink /j $ln $d1`;
} else {
@unlink($link);
@symlink($dir1, $link);
}
include "php_cli_server.inc";
//php_cli_server_start('-d opcache.enable=1 -d opcache.enable_cli=1 -d opcache.revalidate_path=1');
php_cli_server_start('-d opcache.enable=1 -d opcache.enable_cli=1 -d opcache.revalidate_path=1 -d opcache.file_update_protection=0 -d realpath_cache_size=0');
echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/main.php');
echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/main.php');
if (substr(PHP_OS, 0, 3) == 'WIN') {
@rmdir($link);
$ln = str_replace('/', '\\', $link);
$d2 = realpath($dir2);
`mklink /j $ln $d2`;
} else {
@unlink($link);
@symlink($dir2, $link);
}
echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/main.php');
echo file_get_contents('http://' . PHP_CLI_SERVER_ADDRESS . '/main.php');
?>
--CLEAN--
<?php
$dir = __DIR__;
$dir1 = "$dir/test1";
$dir2 = "$dir/test2";
$link = "$dir/test";
$file1 = "$dir1/index.php";
$file2 = "$dir2/index.php";
$main = "$dir/main.php";
@unlink($main);
if (substr(PHP_OS, 0, 3) == 'WIN') {
@rmdir($link);
} else {
@unlink($link);
}
@unlink($file1);
@unlink($file2);
@rmdir($dir1);
@rmdir($dir2);
?>
--EXPECT--
TEST 1
TEST 1
TEST 2
TEST 2
|