1--TEST-- 2Bug #71103 file_exists and is_readable fail silently 3--SKIPIF-- 4<?php 5include __DIR__ . DIRECTORY_SEPARATOR . "util.inc"; 6 7skip_if_not_win(); 8if (getenv("SKIP_SLOW_TESTS")) die("skip slow test"); 9 10?> 11--FILE-- 12<?php 13 14$base = __DIR__; 15$d = $base . '\\dev\\http\\tproj\\app\\cache\\dev_old\\annotations\\72'; 16 17$foo = $d . '\\5b53796d666f6e795c42756e646c655c5477696742756e646c655c436f6e74726f6c6c65725c457863657074696f6e436f6e74726f6c6c657223676574416e64436c65616e4f7574707574427566666572696e67405b416e6e6f745d5d5b.doctrinecache.data'; 18$bar = $d . '\\5b53796d666f6e795c42756e646c655c5477696742756e646c655c436f6e74726f6c6c65725c457863657074696f6e436f6e74726f6c6c657223676574416e64436c65616e4f7574707574427566666572696e67405b416e6e6f745d5d5b315d.doctrinecache.data'; 19 20mkdir($d, 0777, true); 21 22foreach (array($foo, $bar) as $f) { 23 touch($f); 24 25 $foo_obj = new \SplFileInfo($f); 26 var_dump( 27 $f, 28 strlen($f) > 260, /* exceeds _MAX_PATH */ 29 file_exists($f), 30 file_exists($foo_obj), 31 is_readable($f), 32 is_readable($foo_obj), 33 is_writable($f), 34 is_writable($foo_obj) 35 ); 36 37 unlink($f); 38} 39 40$p = $d; 41do { 42 rmdir($p); 43 $p = dirname($p); 44} while ($p != $base); 45 46?> 47--EXPECTF-- 48string(%d) "%s\dev\http\tproj\app\cache\dev_old\annotations\72\5b53796d666f6e795c42756e646c655c5477696742756e646c655c436f6e74726f6c6c65725c457863657074696f6e436f6e74726f6c6c657223676574416e64436c65616e4f7574707574427566666572696e67405b416e6e6f745d5d5b.doctrinecache.data" 49bool(true) 50bool(true) 51bool(true) 52bool(true) 53bool(true) 54bool(true) 55bool(true) 56string(%d) "%s\dev\http\tproj\app\cache\dev_old\annotations\72\5b53796d666f6e795c42756e646c655c5477696742756e646c655c436f6e74726f6c6c65725c457863657074696f6e436f6e74726f6c6c657223676574416e64436c65616e4f7574707574427566666572696e67405b416e6e6f745d5d5b315d.doctrinecache.data" 57bool(true) 58bool(true) 59bool(true) 60bool(true) 61bool(true) 62bool(true) 63bool(true) 64