mirror of
https://github.com/php/php-src.git
synced 2026-03-30 04:02:19 +02:00
new tests for bz2-compressed tar or phar-based phars (wow, worked on first try, how about that)
This commit is contained in:
52
ext/phar/tests/phar_bz2.phpt
Normal file
52
ext/phar/tests/phar_bz2.phpt
Normal file
@@ -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===
|
||||
@@ -67,4 +67,10 @@ if (@$gzip) {
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
if (@$bz2) {
|
||||
$fp = bzopen($fname, 'w');
|
||||
fwrite($fp, $file);
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
?>
|
||||
50
ext/phar/tests/tar/tar_bz2.phpt
Normal file
50
ext/phar/tests/tar/tar_bz2.phpt
Normal file
@@ -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===
|
||||
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user