stat.phpt 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. --TEST--
  2. Phar: test stat function interceptions
  3. --EXTENSIONS--
  4. phar
  5. --INI--
  6. phar.require_hash=1
  7. phar.readonly=0
  8. --FILE--
  9. <?php
  10. umask(0);
  11. Phar::interceptFileFuncs();
  12. var_dump(stat(""));
  13. $fname = __DIR__ . '/' . basename(__FILE__, '.php') . '.phar.php';
  14. $fname2 = __DIR__ . '/' . basename(__FILE__, '.php') . '.tar';
  15. $fname3 = __DIR__ . '/' . basename(__FILE__, '.php') . '.phar.tar';
  16. $a = new Phar($fname);
  17. $a['my/index.php'] = '<?php
  18. echo "stat\n";
  19. var_dump(stat("dir/file1.txt"));
  20. echo "lstat\n";
  21. var_dump(lstat("dir/file1.txt"));
  22. echo "fileperms\n";
  23. var_dump(fileperms("dir/file1.txt"));
  24. echo "fileinode\n";
  25. var_dump(fileinode("dir/file1.txt"));
  26. echo "filesize\n";
  27. var_dump(filesize("dir/file1.txt"));
  28. echo "fileowner\n";
  29. var_dump(fileowner("dir/file1.txt"));
  30. echo "filegroup\n";
  31. var_dump(filegroup("dir/file1.txt"));
  32. echo "filemtime\n";
  33. var_dump(filemtime("dir/file1.txt"));
  34. echo "fileatime\n";
  35. var_dump(fileatime("dir/file1.txt"));
  36. echo "filectime\n";
  37. var_dump(filectime("dir/file1.txt"));
  38. echo "filetype\n";
  39. var_dump(filetype("dir/file1.txt"));
  40. echo "is_writable\n";
  41. var_dump(is_writable("dir/file1.txt"));
  42. echo "is_writeable\n";
  43. var_dump(is_writeable("dir/file1.txt"));
  44. echo "is_readable\n";
  45. var_dump(is_readable("dir/file1.txt"));
  46. echo "is_executable\n";
  47. var_dump(is_executable("dir/file1.txt"));
  48. echo "file_exists\n";
  49. var_dump(file_exists("dir/file1.txt"));
  50. echo "is_dir\n";
  51. var_dump(is_dir("dir/file1.txt"));
  52. echo "is_file\n";
  53. var_dump(is_file("dir/file1.txt"));
  54. echo "is_link\n";
  55. var_dump(is_link("dir/file1.txt"));
  56. echo "not found\n";
  57. var_dump(file_exists("not/found"));
  58. echo "not found 2\n";
  59. var_dump(fileperms("not/found"));
  60. ?>';
  61. $a['dir/file1.txt'] = 'hi';
  62. $a['dir/file2.txt'] = 'hi2';
  63. $a['dir/file3.txt'] = 'hi3';
  64. $a->setStub('<?php
  65. set_include_path("phar://" . __FILE__ . "/dir" . PATH_SEPARATOR . "phar://" . __FILE__);
  66. include "my/index.php";
  67. __HALT_COMPILER();');
  68. include $fname;
  69. ?>
  70. --CLEAN--
  71. <?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
  72. --EXPECTF--
  73. bool(false)
  74. stat
  75. array(26) {
  76. [0]=>
  77. int(12)
  78. [1]=>
  79. int(%d)
  80. [2]=>
  81. int(33206)
  82. [3]=>
  83. int(1)
  84. [4]=>
  85. int(0)
  86. [5]=>
  87. int(0)
  88. [6]=>
  89. int(%s)
  90. [7]=>
  91. int(2)
  92. [8]=>
  93. int(%d)
  94. [9]=>
  95. int(%d)
  96. [10]=>
  97. int(%d)
  98. [11]=>
  99. int(%s)
  100. [12]=>
  101. int(%s)
  102. ["dev"]=>
  103. int(12)
  104. ["ino"]=>
  105. int(%d)
  106. ["mode"]=>
  107. int(33206)
  108. ["nlink"]=>
  109. int(1)
  110. ["uid"]=>
  111. int(0)
  112. ["gid"]=>
  113. int(0)
  114. ["rdev"]=>
  115. int(%s)
  116. ["size"]=>
  117. int(2)
  118. ["atime"]=>
  119. int(%d)
  120. ["mtime"]=>
  121. int(%d)
  122. ["ctime"]=>
  123. int(%d)
  124. ["blksize"]=>
  125. int(%s)
  126. ["blocks"]=>
  127. int(%s)
  128. }
  129. lstat
  130. array(26) {
  131. [0]=>
  132. int(12)
  133. [1]=>
  134. int(%d)
  135. [2]=>
  136. int(33206)
  137. [3]=>
  138. int(1)
  139. [4]=>
  140. int(0)
  141. [5]=>
  142. int(0)
  143. [6]=>
  144. int(%s)
  145. [7]=>
  146. int(2)
  147. [8]=>
  148. int(%d)
  149. [9]=>
  150. int(%d)
  151. [10]=>
  152. int(%d)
  153. [11]=>
  154. int(%s)
  155. [12]=>
  156. int(%s)
  157. ["dev"]=>
  158. int(12)
  159. ["ino"]=>
  160. int(%d)
  161. ["mode"]=>
  162. int(33206)
  163. ["nlink"]=>
  164. int(1)
  165. ["uid"]=>
  166. int(0)
  167. ["gid"]=>
  168. int(0)
  169. ["rdev"]=>
  170. int(%s)
  171. ["size"]=>
  172. int(2)
  173. ["atime"]=>
  174. int(%d)
  175. ["mtime"]=>
  176. int(%d)
  177. ["ctime"]=>
  178. int(%d)
  179. ["blksize"]=>
  180. int(%s)
  181. ["blocks"]=>
  182. int(%s)
  183. }
  184. fileperms
  185. int(33206)
  186. fileinode
  187. int(%d)
  188. filesize
  189. int(2)
  190. fileowner
  191. int(0)
  192. filegroup
  193. int(0)
  194. filemtime
  195. int(%d)
  196. fileatime
  197. int(%d)
  198. filectime
  199. int(%d)
  200. filetype
  201. string(4) "file"
  202. is_writable
  203. bool(true)
  204. is_writeable
  205. bool(false)
  206. is_readable
  207. bool(true)
  208. is_executable
  209. bool(false)
  210. file_exists
  211. bool(true)
  212. is_dir
  213. bool(false)
  214. is_file
  215. bool(true)
  216. is_link
  217. bool(false)
  218. not found
  219. bool(false)
  220. not found 2
  221. Warning: fileperms(): stat failed for not/found in phar://%sstat.phar.php/my/index.php on line %d
  222. bool(false)