stat2_5.3.phpt 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. --TEST--
  2. Phar: test stat function interceptions and is_file/is_link edge cases (PHP 5.3+)
  3. --EXTENSIONS--
  4. phar
  5. --INI--
  6. phar.readonly=0
  7. phar.require_hash=0
  8. --FILE--
  9. <?php
  10. Phar::interceptFileFuncs();
  11. var_dump(is_file(__FILE__));
  12. $fname2 = __DIR__ . '/' . basename(__FILE__, '.php') . '.tar';
  13. $fname3 = __DIR__ . '/' . basename(__FILE__, '.php') . '.phar.tar';
  14. copy(__DIR__ . '/tar/files/links.tar', $fname2);
  15. $a = new PharData($fname2);
  16. $b = $a->convertToExecutable(Phar::TAR, Phar::NONE, '.phar.tar');
  17. unset($a);
  18. Phar::unlinkArchive($fname2);
  19. $b['foo/stat.php'] = '<?php
  20. echo "is_link\n";
  21. var_dump(is_link("./stat.php"),is_file("./stat.php"), is_link("./oops"), is_file("./oops"));
  22. var_dump(is_link("testit/link"), filetype("testit/link"), filetype("testit"), is_file("testit/link"));
  23. echo "not found\n";
  24. var_dump(is_link("notfound"));
  25. echo "dir\n";
  26. var_dump(is_dir("./bar"), is_file("foo/bar/blah"));
  27. ?>';
  28. $b->addEmptyDir('foo/bar/blah');
  29. $b->setStub('<?php
  30. include "phar://" . __FILE__ . "/foo/stat.php";
  31. __HALT_COMPILER();');
  32. include $fname3;
  33. ?>
  34. --CLEAN--
  35. <?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.tar'); ?>
  36. <?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.tar'); ?>
  37. --EXPECT--
  38. bool(true)
  39. is_link
  40. bool(false)
  41. bool(true)
  42. bool(false)
  43. bool(false)
  44. bool(true)
  45. string(4) "link"
  46. string(3) "dir"
  47. bool(true)
  48. not found
  49. bool(false)
  50. dir
  51. bool(true)
  52. bool(false)