mirror of
https://github.com/php/php-src.git
synced 2026-03-30 20:22:36 +02:00
fix uncompressAllFiles() and compressAllFilesBZIP2(), add tests
This commit is contained in:
@@ -19,8 +19,8 @@ Version 1.0.0
|
||||
X Phar->getStub() for retrieving the stub of the phar [Marcus]
|
||||
X add setUncompressed(), setCompressedGZ() and setCompressedBZ2() to
|
||||
PharFileInfo class [Greg]
|
||||
* add uncompressAllFiles(), compressAllFilesGZ() and compressAllFilesBZ2()
|
||||
to Phar class
|
||||
X add uncompressAllFiles(), compressAllFilesGZ() and compressAllFilesBZ2()
|
||||
to Phar class [Greg]
|
||||
X add PharFileInfo::setMetaData($metadata) [Marcus]
|
||||
X add PharFileInfo::getMetaData() [Marcus]
|
||||
* always throw exceptions from the Phar object, and E_RECOVERABLE_ERROR from
|
||||
|
||||
@@ -310,7 +310,7 @@ static int phar_test_compression(void *pDest, void *argument TSRMLS_DC) /* {{{ *
|
||||
*result = 0;
|
||||
}
|
||||
#endif
|
||||
#if !HAVE_GZ
|
||||
#if !HAVE_ZLIB
|
||||
if (entry->flags & PHAR_ENT_COMPRESSED_GZ) {
|
||||
*result = 0;
|
||||
}
|
||||
@@ -377,7 +377,7 @@ PHP_METHOD(Phar, compressAllFilesBZIP2)
|
||||
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
|
||||
"Cannot compress all files as Bzip2, some are compressed as gzip and cannot be uncompressed");
|
||||
}
|
||||
pharobj_set_compression(&phar_obj->arc.archive->manifest, PHAR_ENT_COMPRESSED_GZ TSRMLS_CC);
|
||||
pharobj_set_compression(&phar_obj->arc.archive->manifest, PHAR_ENT_COMPRESSED_BZ2 TSRMLS_CC);
|
||||
phar_obj->arc.archive->is_modified = 1;
|
||||
|
||||
phar_flush(phar_obj->arc.archive, 0, 0 TSRMLS_CC);
|
||||
@@ -403,7 +403,7 @@ PHP_METHOD(Phar, uncompressAllFiles)
|
||||
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC,
|
||||
"Cannot uncompress all files, some are compressed as bzip2 or gzip and cannot be uncompressed");
|
||||
}
|
||||
pharobj_set_compression(&phar_obj->arc.archive->manifest, PHAR_ENT_COMPRESSED_GZ TSRMLS_CC);
|
||||
pharobj_set_compression(&phar_obj->arc.archive->manifest, PHAR_ENT_COMPRESSED_NONE TSRMLS_CC);
|
||||
phar_obj->arc.archive->is_modified = 1;
|
||||
|
||||
phar_flush(phar_obj->arc.archive, 0, 0 TSRMLS_CC);
|
||||
|
||||
65
ext/phar/tests/phar_oo_compressallbz2.phpt
Normal file
65
ext/phar/tests/phar_oo_compressallbz2.phpt
Normal file
@@ -0,0 +1,65 @@
|
||||
--TEST--
|
||||
Phar::compressAllFilesBZIP2()
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("phar")) print "skip"; ?>
|
||||
<?php if (!extension_loaded("bz2")) print "skip bz2 not present"; ?>
|
||||
--INI--
|
||||
phar.require_hash=0
|
||||
phar.readonly=0
|
||||
--FILE--
|
||||
<?php
|
||||
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
|
||||
$pname = 'phar://' . $fname;
|
||||
$file = '<?php __HALT_COMPILER(); ?>';
|
||||
|
||||
$files = array();
|
||||
$files['a'] = 'a';
|
||||
$files['b'] = 'b';
|
||||
$files['c'] = 'c';
|
||||
|
||||
include 'phar_test.inc';
|
||||
|
||||
$phar = new Phar($fname);
|
||||
|
||||
var_dump(file_get_contents($pname . '/a'));
|
||||
var_dump($phar['a']->isCompressed());
|
||||
var_dump(file_get_contents($pname . '/b'));
|
||||
var_dump($phar['b']->isCompressed());
|
||||
var_dump(file_get_contents($pname . '/c'));
|
||||
var_dump($phar['c']->isCompressed());
|
||||
|
||||
$phar = new Phar($fname);
|
||||
$phar->compressAllFilesBZIP2();
|
||||
var_dump(file_get_contents($pname . '/a'));
|
||||
var_dump($phar['a']->isCompressedGZ());
|
||||
var_dump($phar['a']->isCompressedBZIP2());
|
||||
var_dump(file_get_contents($pname . '/b'));
|
||||
var_dump($phar['b']->isCompressedGZ());
|
||||
var_dump($phar['b']->isCompressedBZIP2());
|
||||
var_dump(file_get_contents($pname . '/c'));
|
||||
var_dump($phar['c']->isCompressedGZ());
|
||||
var_dump($phar['b']->isCompressedBZIP2());
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--CLEAN--
|
||||
<?php
|
||||
unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php');
|
||||
?>
|
||||
--EXPECTF--
|
||||
string(1) "a"
|
||||
bool(false)
|
||||
string(1) "b"
|
||||
bool(false)
|
||||
string(1) "c"
|
||||
bool(false)
|
||||
string(1) "a"
|
||||
bool(false)
|
||||
bool(true)
|
||||
string(1) "b"
|
||||
bool(false)
|
||||
bool(true)
|
||||
string(1) "c"
|
||||
bool(false)
|
||||
bool(true)
|
||||
===DONE===
|
||||
65
ext/phar/tests/phar_oo_compressallgz.phpt
Normal file
65
ext/phar/tests/phar_oo_compressallgz.phpt
Normal file
@@ -0,0 +1,65 @@
|
||||
--TEST--
|
||||
Phar::compressAllFilesGZ()
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("phar")) print "skip"; ?>
|
||||
<?php if (!extension_loaded("zlib")) print "skip zlib not present"; ?>
|
||||
--INI--
|
||||
phar.require_hash=0
|
||||
phar.readonly=0
|
||||
--FILE--
|
||||
<?php
|
||||
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
|
||||
$pname = 'phar://' . $fname;
|
||||
$file = '<?php __HALT_COMPILER(); ?>';
|
||||
|
||||
$files = array();
|
||||
$files['a'] = 'a';
|
||||
$files['b'] = 'b';
|
||||
$files['c'] = 'c';
|
||||
|
||||
include 'phar_test.inc';
|
||||
|
||||
$phar = new Phar($fname);
|
||||
|
||||
var_dump(file_get_contents($pname . '/a'));
|
||||
var_dump($phar['a']->isCompressed());
|
||||
var_dump(file_get_contents($pname . '/b'));
|
||||
var_dump($phar['b']->isCompressed());
|
||||
var_dump(file_get_contents($pname . '/c'));
|
||||
var_dump($phar['c']->isCompressed());
|
||||
|
||||
$phar = new Phar($fname);
|
||||
$phar->compressAllFilesGZ();
|
||||
var_dump(file_get_contents($pname . '/a'));
|
||||
var_dump($phar['a']->isCompressedGZ());
|
||||
var_dump($phar['a']->isCompressedBZIP2());
|
||||
var_dump(file_get_contents($pname . '/b'));
|
||||
var_dump($phar['b']->isCompressedGZ());
|
||||
var_dump($phar['b']->isCompressedBZIP2());
|
||||
var_dump(file_get_contents($pname . '/c'));
|
||||
var_dump($phar['c']->isCompressedGZ());
|
||||
var_dump($phar['b']->isCompressedBZIP2());
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--CLEAN--
|
||||
<?php
|
||||
unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php');
|
||||
?>
|
||||
--EXPECTF--
|
||||
string(1) "a"
|
||||
bool(false)
|
||||
string(1) "b"
|
||||
bool(false)
|
||||
string(1) "c"
|
||||
bool(false)
|
||||
string(1) "a"
|
||||
bool(true)
|
||||
bool(false)
|
||||
string(1) "b"
|
||||
bool(true)
|
||||
bool(false)
|
||||
string(1) "c"
|
||||
bool(true)
|
||||
bool(false)
|
||||
===DONE===
|
||||
79
ext/phar/tests/phar_oo_uncompressall.phpt
Normal file
79
ext/phar/tests/phar_oo_uncompressall.phpt
Normal file
@@ -0,0 +1,79 @@
|
||||
--TEST--
|
||||
Phar::uncompressAllFiles()
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("phar")) print "skip"; ?>
|
||||
<?php if (!extension_loaded("zlib")) print "skip zlib not present"; ?>
|
||||
--INI--
|
||||
phar.require_hash=0
|
||||
phar.readonly=0
|
||||
--FILE--
|
||||
<?php
|
||||
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
|
||||
$pname = 'phar://' . $fname;
|
||||
$file = '<?php __HALT_COMPILER(); ?>';
|
||||
|
||||
$files = array();
|
||||
$files['a'] = 'a';
|
||||
$files['b'] = 'b';
|
||||
$files['c'] = 'c';
|
||||
|
||||
include 'phar_test.inc';
|
||||
|
||||
$phar = new Phar($fname);
|
||||
|
||||
var_dump(file_get_contents($pname . '/a'));
|
||||
var_dump($phar['a']->isCompressed());
|
||||
var_dump(file_get_contents($pname . '/b'));
|
||||
var_dump($phar['b']->isCompressed());
|
||||
var_dump(file_get_contents($pname . '/c'));
|
||||
var_dump($phar['c']->isCompressed());
|
||||
|
||||
$phar = new Phar($fname);
|
||||
$phar->compressAllFilesGZ();
|
||||
var_dump(file_get_contents($pname . '/a'));
|
||||
var_dump($phar['a']->isCompressedGZ());
|
||||
var_dump($phar['a']->isCompressedBZIP2());
|
||||
var_dump(file_get_contents($pname . '/b'));
|
||||
var_dump($phar['b']->isCompressedGZ());
|
||||
var_dump($phar['b']->isCompressedBZIP2());
|
||||
var_dump(file_get_contents($pname . '/c'));
|
||||
var_dump($phar['c']->isCompressedGZ());
|
||||
var_dump($phar['b']->isCompressedBZIP2());
|
||||
|
||||
$phar->uncompressAllFiles();
|
||||
var_dump(file_get_contents($pname . '/a'));
|
||||
var_dump($phar['a']->isCompressed());
|
||||
var_dump(file_get_contents($pname . '/b'));
|
||||
var_dump($phar['a']->isCompressed());
|
||||
var_dump(file_get_contents($pname . '/c'));
|
||||
var_dump($phar['a']->isCompressed());
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--CLEAN--
|
||||
<?php
|
||||
unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php');
|
||||
?>
|
||||
--EXPECTF--
|
||||
string(1) "a"
|
||||
bool(false)
|
||||
string(1) "b"
|
||||
bool(false)
|
||||
string(1) "c"
|
||||
bool(false)
|
||||
string(1) "a"
|
||||
bool(true)
|
||||
bool(false)
|
||||
string(1) "b"
|
||||
bool(true)
|
||||
bool(false)
|
||||
string(1) "c"
|
||||
bool(true)
|
||||
bool(false)
|
||||
string(1) "a"
|
||||
bool(false)
|
||||
string(1) "b"
|
||||
bool(false)
|
||||
string(1) "c"
|
||||
bool(false)
|
||||
===DONE===
|
||||
Reference in New Issue
Block a user