]> granicus.if.org Git - php/commitdiff
new tests for bz2-compressed tar or phar-based phars (wow, worked on first try, how...
authorGreg Beaver <cellog@php.net>
Wed, 9 Jan 2008 08:48:56 +0000 (08:48 +0000)
committerGreg Beaver <cellog@php.net>
Wed, 9 Jan 2008 08:48:56 +0000 (08:48 +0000)
ext/phar/tests/phar_bz2.phpt [new file with mode: 0644]
ext/phar/tests/phar_test.inc
ext/phar/tests/tar/tar_bz2.phpt [new file with mode: 0644]
ext/phar/tests/tar/tarmaker.php.inc

diff --git a/ext/phar/tests/phar_bz2.phpt b/ext/phar/tests/phar_bz2.phpt
new file mode 100644 (file)
index 0000000..fd7c664
--- /dev/null
@@ -0,0 +1,52 @@
+--TEST--
+Phar: bzipped phar
+--SKIPIF--
+<?php if (!extension_loaded('phar')) die('skip'); ?>
+<?php if (!extension_loaded("spl")) die("skip SPL not available"); ?>
+<?php if (!extension_loaded("bz2")) die("skip bz2 not available"); ?>
+--INI--
+phar.readonly=0
+phar.require_hash=0
+--FILE--
+<?php
+$fname = dirname(__FILE__) . '/phar_bz2.phar';
+$pname = 'phar://' . $fname;
+$fname2 = dirname(__FILE__) . '/phar_bz2.2.phar';
+$pname2 = 'phar://' . $fname2;
+
+$file = '<?php
+Phar::mapPhar();
+var_dump("it worked");
+include "phar://" . __FILE__ . "/tar_004.php";
+__HALT_COMPILER();';
+
+$files = array();
+$files['tar_004.php']   = '<?php var_dump(__FILE__);';
+$files['internal/file/here']   = "hi there!\n";
+$files['internal/dir/'] = '';
+$files['dir/'] = '';
+$bz2 = true;
+
+include 'phar_test.inc';
+
+include $fname;
+
+$a = new Phar($fname);
+$a['test'] = 'hi';
+copy($fname, $fname2);
+$b = new Phar($fname2);
+var_dump($b->isPhar());
+var_dump($b->isCompressed() == Phar::BZ2);
+?>
+===DONE===
+--CLEAN--
+<?php
+@unlink(dirname(__FILE__) . '/phar_bz2.phar');
+@unlink(dirname(__FILE__) . '/phar_bz2.2.phar');
+?>
+--EXPECTF--
+string(9) "it worked"
+string(%d) "phar://%sphar_bz2.phar/tar_004.php"
+bool(true)
+bool(true)
+===DONE===
\ No newline at end of file
index 2c3062c457275b537de480a8bd5e1d3238ddb9ed..3ff5103e33cd5133eae6affb32a9228a49b9385a 100755 (executable)
@@ -67,4 +67,10 @@ if (@$gzip) {
        fclose($fp);
 }
 
+if (@$bz2) {
+       $fp = bzopen($fname, 'w');
+       fwrite($fp, $file);
+       fclose($fp);
+}
+
 ?>
\ No newline at end of file
diff --git a/ext/phar/tests/tar/tar_bz2.phpt b/ext/phar/tests/tar/tar_bz2.phpt
new file mode 100644 (file)
index 0000000..65f0622
--- /dev/null
@@ -0,0 +1,50 @@
+--TEST--
+Phar: tar-based phar, bzipped tar
+--SKIPIF--
+<?php if (!extension_loaded('phar')) die('skip'); ?>
+<?php if (!extension_loaded("spl")) die("skip SPL not available"); ?>
+<?php if (!extension_loaded("bz2")) die("skip bz2 not available"); ?>
+--INI--
+phar.readonly=0
+--FILE--
+<?php
+include dirname(__FILE__) . '/tarmaker.php.inc';
+$fname = dirname(__FILE__) . '/tar_bz2.phar';
+$pname = 'phar://' . $fname;
+$fname2 = dirname(__FILE__) . '/tar_bz2.phar.tar';
+$pname2 = 'phar://' . $fname2;
+
+$a = new tarmaker($fname, 'bz2');
+$a->init();
+$a->addFile('tar_004.php', '<?php var_dump(__FILE__);');
+$a->addFile('internal/file/here', "hi there!\n");
+$a->mkDir('internal/dir');
+$a->mkDir('dir');
+$a->addFile('.phar/stub.php', '<?php
+Phar::mapPhar();
+var_dump("it worked");
+include "phar://" . __FILE__ . "/tar_004.php";
+');
+$a->close();
+
+include $fname;
+
+$a = new Phar($fname);
+$a['test'] = 'hi';
+copy($fname, $fname2);
+$b = new Phar($fname2);
+var_dump($b->isTar());
+var_dump($b->isCompressed() == Phar::BZ2);
+?>
+===DONE===
+--CLEAN--
+<?php
+@unlink(dirname(__FILE__) . '/tar_bz2.phar');
+@unlink(dirname(__FILE__) . '/tar_bz2.phar.tar');
+?>
+--EXPECTF--
+string(9) "it worked"
+string(%d) "phar://%star_bz2.phar/tar_004.php"
+bool(true)
+bool(true)
+===DONE===
\ No newline at end of file
index 566f3bdcc122d82c186229d900a2a87459898481..902507881a0ce4267b6fc3010a802dfc3e80cc8a 100644 (file)
@@ -131,7 +131,7 @@ class tarmaker
                 $this->tmp = gzopen($this->path, 'wb');
                 break;
             case 'bz2' :
-                $this->tmp = bzopen($this->path, 'wb');
+                $this->tmp = bzopen($this->path, 'w');
                 break;
             case 'none' :
                 $this->tmp = fopen($this->path, 'wb');