phar_stub.phpt 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. --TEST--
  2. Phar::setStub()
  3. --SKIPIF--
  4. <?php if (!extension_loaded("phar")) die("skip"); ?>
  5. --INI--
  6. phar.require_hash=0
  7. phar.readonly=0
  8. --FILE--
  9. <?php
  10. $fname = dirname(__FILE__) . '/' . 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 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phartmp.php';
  31. $file = b'<?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, b'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. ===DONE===
  66. --CLEAN--
  67. <?php
  68. unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php');
  69. unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phartmp.php');
  70. __HALT_COMPILER();
  71. ?>
  72. --EXPECT--
  73. <?php echo "first stub\n"; __HALT_COMPILER(); ?>
  74. <?php echo "second stub\n"; __HALT_COMPILER(); ?>
  75. <?php echo "third stub\n"; __HALT_COMPILER(); ?>
  76. <?php echo "third stub\n"; __HALT_COMPILER(); ?>booya
  77. <?php echo "third stub\n"; __HALT_COMPILER(); ?>
  78. <?php echo "third stub\n"; __HALT_COMPILER(); ?>
  79. ===DONE===