]> granicus.if.org Git - php/commitdiff
fix uncompressAllFiles() and compressAllFilesBZIP2(), add tests
authorGreg Beaver <cellog@php.net>
Sat, 27 Jan 2007 19:37:17 +0000 (19:37 +0000)
committerGreg Beaver <cellog@php.net>
Sat, 27 Jan 2007 19:37:17 +0000 (19:37 +0000)
ext/phar/TODO
ext/phar/phar_object.c
ext/phar/tests/phar_oo_compressallbz2.phpt [new file with mode: 0644]
ext/phar/tests/phar_oo_compressallgz.phpt [new file with mode: 0644]
ext/phar/tests/phar_oo_uncompressall.phpt [new file with mode: 0644]

index bd0b2f7ba485ad409e1c310af7f9edf850e56f18..e93b6254cfa81b6c63d70a4fcf36749d7bbc0ebf 100644 (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 
index f16476bf23cb539be6056a5fa1db377ef3375521..148600693760a341d256a5ad5ff880d146a36cc7 100755 (executable)
@@ -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 (file)
index 0000000..d1bd3cc
--- /dev/null
@@ -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===
diff --git a/ext/phar/tests/phar_oo_compressallgz.phpt b/ext/phar/tests/phar_oo_compressallgz.phpt
new file mode 100644 (file)
index 0000000..fe962f9
--- /dev/null
@@ -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===
diff --git a/ext/phar/tests/phar_oo_uncompressall.phpt b/ext/phar/tests/phar_oo_uncompressall.phpt
new file mode 100644 (file)
index 0000000..f72828b
--- /dev/null
@@ -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===