phar_decompress.phpt 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. --TEST--
  2. Phar::decompress()
  3. --EXTENSIONS--
  4. phar
  5. zlib
  6. --INI--
  7. phar.require_hash=0
  8. phar.readonly=0
  9. --FILE--
  10. <?php
  11. $fname = __DIR__ . '/' . basename(__FILE__, '.php') . '.phar.php';
  12. $fname2 = __DIR__ . '/' . basename(__FILE__, '.php') . '2.phar.gz';
  13. $pname = 'phar://' . $fname;
  14. $file = '<?php __HALT_COMPILER(); ?>';
  15. $files = array();
  16. $files['a'] = 'a';
  17. $files['b'] = 'b';
  18. $files['c'] = 'c';
  19. include 'files/phar_test.inc';
  20. $phar = new Phar($fname);
  21. $gz = $phar->compress(Phar::GZ);
  22. copy($gz->getPath(), $fname2);
  23. $a = new Phar($fname2);
  24. var_dump($a->isCompressed());
  25. $unc = $a->compress(Phar::NONE);
  26. echo $unc->getPath() . "\n";
  27. $unc2 = $gz->decompress();
  28. echo $unc2->getPath() . "\n";
  29. $unc3 = $gz->decompress('hooba.phar');
  30. echo $unc3->getPath() . "\n";
  31. $zip = $phar->convertToData(Phar::ZIP);
  32. ini_set('phar.readonly', 1);
  33. try {
  34. $gz->decompress();
  35. } catch (Exception $e) {
  36. echo $e->getMessage() . "\n";
  37. }
  38. try {
  39. $zip->decompress();
  40. } catch (Exception $e) {
  41. echo $e->getMessage() . "\n";
  42. }
  43. ?>
  44. --CLEAN--
  45. <?php
  46. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.php');
  47. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.zip');
  48. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.hooba.phar');
  49. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar');
  50. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.gz');
  51. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '2.phar.gz');
  52. unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '2.phar');
  53. ?>
  54. --EXPECTF--
  55. int(4096)
  56. %sphar_decompress2.phar
  57. %sphar_decompress.phar
  58. %sphar_decompress.hooba.phar
  59. Cannot decompress phar archive, phar is read-only
  60. Cannot decompress zip-based archives with whole-archive compression