phar_decompress.phpt 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. --TEST--
  2. Phar::decompress()
  3. --SKIPIF--
  4. <?php if (!extension_loaded("phar")) die("skip"); ?>
  5. <?php if (!extension_loaded("zlib")) die("skip zlib not present"); ?>
  6. --INI--
  7. phar.require_hash=0
  8. phar.readonly=0
  9. --FILE--
  10. <?php
  11. $fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
  12. $fname2 = dirname(__FILE__) . '/' . 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. $gz->decompress(array());
  32. $zip = $phar->convertToData(Phar::ZIP);
  33. ini_set('phar.readonly', 1);
  34. try {
  35. $gz->decompress();
  36. } catch (Exception $e) {
  37. echo $e->getMessage() . "\n";
  38. }
  39. try {
  40. $zip->decompress();
  41. } catch (Exception $e) {
  42. echo $e->getMessage() . "\n";
  43. }
  44. ?>
  45. ===DONE===
  46. --CLEAN--
  47. <?php
  48. unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php');
  49. unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.zip');
  50. unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.hooba.phar');
  51. unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar');
  52. unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.gz');
  53. unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '2.phar.gz');
  54. unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '2.phar');
  55. ?>
  56. --EXPECTF--
  57. int(4096)
  58. %sphar_decompress2.phar
  59. %sphar_decompress.phar
  60. %sphar_decompress.hooba.phar
  61. Warning: Phar::decompress() expects parameter 1 to be %string, array given in %sphar_decompress.php on line %d
  62. Cannot decompress phar archive, phar is read-only
  63. Cannot decompress zip-based archives with whole-archive compression
  64. ===DONE===