phar_convert_again.phpt 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. --TEST--
  2. Phar::conversion to other formats
  3. --EXTENSIONS--
  4. phar
  5. zlib
  6. bz2
  7. --INI--
  8. phar.require_hash=0
  9. phar.readonly=0
  10. --FILE--
  11. <?php
  12. $fname = __DIR__ . '/' . basename(__FILE__, '.php') . '.phar';
  13. $fname2 = __DIR__ . '/' . basename(__FILE__, '.php') . '2.tbz';
  14. $pname = 'phar://' . $fname;
  15. $stub = '<?php echo "first stub\n"; __HALT_COMPILER(); ?>';
  16. $file = $stub;
  17. $files = array();
  18. $files['a'] = 'a';
  19. $files['b'] = 'b';
  20. $files['c'] = 'c';
  21. include 'files/phar_test.inc';
  22. $phar = new Phar($fname);
  23. $zip = $phar->convertToData(Phar::ZIP);
  24. echo $zip->getPath() . "\n";
  25. $tgz = $phar->convertToData(Phar::TAR, Phar::GZ);
  26. echo $tgz->getPath() . "\n";
  27. $tbz = $phar->convertToData(Phar::TAR, Phar::BZ2);
  28. echo $tbz->getPath() . "\n";
  29. try {
  30. $phar = $tbz->convertToExecutable(Phar::PHAR, Phar::NONE);
  31. } catch (Exception $e) {
  32. echo $e->getMessage() . "\n";
  33. }
  34. copy($tbz->getPath(), $fname2);
  35. $tbz = new PharData($fname2);
  36. $phar = $tbz->convertToExecutable(Phar::PHAR, Phar::NONE);
  37. echo $phar->getPath() . "\n";
  38. $phar['a'] = 'hi';
  39. $phar['a']->setMetadata('hi');
  40. $zip = $phar->convertToExecutable(Phar::ZIP);
  41. echo $zip->getPath() . "\n";
  42. echo $zip['a']->getMetadata() . "\n";
  43. $data = $zip->convertToData();
  44. echo $data->getPath() . "\n";
  45. // extra code coverage
  46. try {
  47. $data->setStub('hi');
  48. } catch (Exception $e) {
  49. echo $e->getMessage() . "\n";
  50. }
  51. try {
  52. $data->setDefaultStub();
  53. } catch (Exception $e) {
  54. echo $e->getMessage() . "\n";
  55. }
  56. try {
  57. $data->setAlias('hi');
  58. } catch (Exception $e) {
  59. echo $e->getMessage() . "\n";
  60. }
  61. $tar = $phar->convertToExecutable(Phar::TAR);
  62. echo $tar->getPath() . "\n";
  63. $data = $tar->convertToData();
  64. echo $data->getPath() . "\n";
  65. $tgz = $tar->convertToExecutable(null, Phar::GZ);
  66. echo $tgz->getPath() . "\n";
  67. try {
  68. $tgz->convertToExecutable(25);
  69. } catch (Exception $e) {
  70. echo $e->getMessage() . "\n";
  71. }
  72. try {
  73. $tgz->convertToExecutable(Phar::ZIP, Phar::GZ);
  74. } catch (Exception $e) {
  75. echo $e->getMessage() . "\n";
  76. }
  77. try {
  78. $tgz->convertToExecutable(Phar::ZIP, Phar::BZ2);
  79. } catch (Exception $e) {
  80. echo $e->getMessage() . "\n";
  81. }
  82. try {
  83. $phar->convertToData();
  84. } catch (Exception $e) {
  85. echo $e->getMessage() . "\n";
  86. }
  87. try {
  88. $tgz->convertToData(Phar::PHAR);
  89. } catch (Exception $e) {
  90. echo $e->getMessage() . "\n";
  91. }
  92. try {
  93. $tgz->convertToData(25);
  94. } catch (Exception $e) {
  95. echo $e->getMessage() . "\n";
  96. }
  97. try {
  98. $tgz->convertToData(Phar::ZIP, Phar::GZ);
  99. } catch (Exception $e) {
  100. echo $e->getMessage() . "\n";
  101. }
  102. try {
  103. $tgz->convertToData(Phar::ZIP, Phar::BZ2);
  104. } catch (Exception $e) {
  105. echo $e->getMessage() . "\n";
  106. }
  107. try {
  108. $tgz->convertToExecutable(Phar::TAR, 25);
  109. } catch (Exception $e) {
  110. echo $e->getMessage() . "\n";
  111. }
  112. try {
  113. $tgz->convertToData(Phar::TAR, 25);
  114. } catch (Exception $e) {
  115. echo $e->getMessage() . "\n";
  116. }
  117. // extra code coverage
  118. try {
  119. $data->setStub('hi');
  120. } catch (Exception $e) {
  121. echo $e->getMessage() . "\n";
  122. }
  123. try {
  124. $data->setAlias('hi');
  125. } catch (Exception $e) {
  126. echo $e->getMessage() . "\n";
  127. }
  128. try {
  129. $data->setDefaultStub();
  130. } catch (Exception $e) {
  131. echo $e->getMessage() . "\n";
  132. }
  133. try {
  134. $tgz->convertToData(Phar::TAR, Phar::GZ, '.phar.tgz.oops');
  135. } catch (Exception $e) {
  136. echo $e->getMessage() . "\n";
  137. }
  138. try {
  139. $phar->convertToExecutable(Phar::TAR, Phar::GZ, '.tgz.oops');
  140. } catch (Exception $e) {
  141. echo $e->getMessage() . "\n";
  142. }
  143. try {
  144. $tgz->convertToData(Phar::TAR, Phar::GZ, '.phar/.tgz.oops');
  145. } catch (Exception $e) {
  146. echo $e->getMessage() . "\n";
  147. }
  148. ?>
  149. --CLEAN--
  150. <?php
  151. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar');
  152. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.tar');
  153. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.tar.gz');
  154. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.zip');
  155. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.tar.gz');
  156. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.tar');
  157. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.tar.bz2');
  158. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '2.tbz');
  159. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '2.phar');
  160. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '2.phar.tar');
  161. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '2.tar');
  162. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '2.phar.zip');
  163. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '2.zip');
  164. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '2.phar.tar.gz');
  165. __HALT_COMPILER();
  166. ?>
  167. --EXPECTF--
  168. %sphar_convert_again.zip
  169. %sphar_convert_again.tar.gz
  170. %sphar_convert_again.tar.bz2
  171. Unable to add newly converted phar "%sphar_convert_again.phar" to the list of phars, a phar with that name already exists
  172. %sphar_convert_again2.phar
  173. %sphar_convert_again2.phar.zip
  174. hi
  175. %sphar_convert_again2.zip
  176. A Phar stub cannot be set in a plain zip archive
  177. A Phar stub cannot be set in a plain zip archive
  178. A Phar alias cannot be set in a plain zip archive
  179. %sphar_convert_again2.phar.tar
  180. %sphar_convert_again2.tar
  181. %sphar_convert_again2.phar.tar.gz
  182. Unknown file format specified, please pass one of Phar::PHAR, Phar::TAR or Phar::ZIP
  183. Cannot compress entire archive with gzip, zip archives do not support whole-archive compression
  184. Cannot compress entire archive with bz2, zip archives do not support whole-archive compression
  185. Cannot write out data phar archive, use Phar::TAR or Phar::ZIP
  186. Cannot write out data phar archive, use Phar::TAR or Phar::ZIP
  187. Unknown file format specified, please pass one of Phar::TAR or Phar::ZIP
  188. Cannot compress entire archive with gzip, zip archives do not support whole-archive compression
  189. Cannot compress entire archive with bz2, zip archives do not support whole-archive compression
  190. Unknown compression specified, please pass one of Phar::GZ or Phar::BZ2
  191. Unknown compression specified, please pass one of Phar::GZ or Phar::BZ2
  192. A Phar stub cannot be set in a plain tar archive
  193. A Phar alias cannot be set in a plain tar archive
  194. A Phar stub cannot be set in a plain tar archive
  195. data phar "%sphar_convert_again2.phar.tgz.oops" has invalid extension phar.tgz.oops
  196. phar "%sphar_convert_again2.tgz.oops" has invalid extension tgz.oops
  197. data phar "%sphar_convert_again2.phar/.tgz.oops" has invalid extension phar/.tgz.oops