From: Greg Beaver Date: Sat, 27 Jan 2007 19:37:17 +0000 (+0000) Subject: fix uncompressAllFiles() and compressAllFilesBZIP2(), add tests X-Git-Tag: RELEASE_1_0_0RC1~115 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a9901f31db7999fd2c90de6dd4f4ebe2e356e524;p=php fix uncompressAllFiles() and compressAllFilesBZIP2(), add tests --- diff --git a/ext/phar/TODO b/ext/phar/TODO index bd0b2f7ba4..e93b6254cf 100644 --- a/ext/phar/TODO +++ b/ext/phar/TODO @@ -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 diff --git a/ext/phar/phar_object.c b/ext/phar/phar_object.c index f16476bf23..1486006937 100755 --- a/ext/phar/phar_object.c +++ b/ext/phar/phar_object.c @@ -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); diff --git a/ext/phar/tests/phar_oo_compressallbz2.phpt b/ext/phar/tests/phar_oo_compressallbz2.phpt new file mode 100644 index 0000000000..d1bd3ccc6a --- /dev/null +++ b/ext/phar/tests/phar_oo_compressallbz2.phpt @@ -0,0 +1,65 @@ +--TEST-- +Phar::compressAllFilesBZIP2() +--SKIPIF-- + + +--INI-- +phar.require_hash=0 +phar.readonly=0 +--FILE-- +'; + +$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-- + +--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=== diff --git a/ext/phar/tests/phar_oo_compressallgz.phpt b/ext/phar/tests/phar_oo_compressallgz.phpt new file mode 100644 index 0000000000..fe962f94c5 --- /dev/null +++ b/ext/phar/tests/phar_oo_compressallgz.phpt @@ -0,0 +1,65 @@ +--TEST-- +Phar::compressAllFilesGZ() +--SKIPIF-- + + +--INI-- +phar.require_hash=0 +phar.readonly=0 +--FILE-- +'; + +$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-- + +--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=== diff --git a/ext/phar/tests/phar_oo_uncompressall.phpt b/ext/phar/tests/phar_oo_uncompressall.phpt new file mode 100644 index 0000000000..f72828be69 --- /dev/null +++ b/ext/phar/tests/phar_oo_uncompressall.phpt @@ -0,0 +1,79 @@ +--TEST-- +Phar::uncompressAllFiles() +--SKIPIF-- + + +--INI-- +phar.require_hash=0 +phar.readonly=0 +--FILE-- +'; + +$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-- + +--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===