phar_stub.phpt 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. --TEST--
  2. Phar::setStub()
  3. --EXTENSIONS--
  4. phar
  5. --INI--
  6. phar.require_hash=0
  7. phar.readonly=0
  8. --FILE--
  9. <?php
  10. $fname = __DIR__ . '/' . basename(__FILE__, '.php') . '.phar.php';
  11. $pname = 'phar://' . $fname;
  12. $file = '<?php echo "first stub\n"; __HALT_COMPILER(); ?>';
  13. $files = array();
  14. $files['a'] = 'a';
  15. $files['b'] = 'b';
  16. $files['c'] = 'c';
  17. include 'files/phar_test.inc';
  18. $file = '<?php echo "first stub\n"; __HALT_COMPILER(); ?>';
  19. $fp = fopen($fname, 'rb');
  20. //// 1
  21. echo fread($fp, strlen($file)) . "\n";
  22. fclose($fp);
  23. $phar = new Phar($fname);
  24. $file = '<?php echo "second stub\n"; __HALT_COMPILER(); ?>';
  25. //// 2
  26. $phar->setStub($file);
  27. $fp = fopen($fname, 'rb');
  28. echo fread($fp, strlen($file)) . "\n";
  29. fclose($fp);
  30. $fname2 = __DIR__ . '/' . basename(__FILE__, '.php') . '.phartmp.php';
  31. $file = '<?php echo "third stub\n"; __HALT_COMPILER(); ?>';
  32. $fp = fopen($fname2, 'wb');
  33. fwrite($fp, $file);
  34. fclose($fp);
  35. $fp = fopen($fname2, 'rb');
  36. //// 3
  37. $phar->setStub($fp);
  38. fclose($fp);
  39. $fp = fopen($fname, 'rb');
  40. echo fread($fp, strlen($file)) . "\n";
  41. fclose($fp);
  42. $fp = fopen($fname2, 'ab');
  43. fwrite($fp, 'booya');
  44. fclose($fp);
  45. echo file_get_contents($fname2) . "\n";
  46. $fp = fopen($fname2, 'rb');
  47. //// 4
  48. $phar->setStub($fp, strlen($file));
  49. fclose($fp);
  50. $fp = fopen($fname, 'rb');
  51. echo fread($fp, strlen($file)) . "\n";
  52. if (fread($fp, strlen('booya')) == 'booya') {
  53. echo 'failed - copied booya';
  54. }
  55. fclose($fp);
  56. $phar['testing'] = 'hi';
  57. // ensure stub is not overwritten
  58. $fp = fopen($fname, 'rb');
  59. echo fread($fp, strlen($file)) . "\n";
  60. if (fread($fp, strlen('booya')) == 'booya') {
  61. echo 'failed - copied booya';
  62. }
  63. fclose($fp);
  64. ?>
  65. --CLEAN--
  66. <?php
  67. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.php');
  68. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phartmp.php');
  69. __HALT_COMPILER();
  70. ?>
  71. --EXPECT--
  72. <?php echo "first stub\n"; __HALT_COMPILER(); ?>
  73. <?php echo "second stub\n"; __HALT_COMPILER(); ?>
  74. <?php echo "third stub\n"; __HALT_COMPILER(); ?>
  75. <?php echo "third stub\n"; __HALT_COMPILER(); ?>booya
  76. <?php echo "third stub\n"; __HALT_COMPILER(); ?>
  77. <?php echo "third stub\n"; __HALT_COMPILER(); ?>