1
0
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:
Greg Beaver
2007-01-27 19:37:17 +00:00
parent 035ddeb1cd
commit a9901f31db
5 changed files with 214 additions and 5 deletions

View File

@@ -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

View File

@@ -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);

View 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===

View 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===

View 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===