Browse Source
- A bit more work on PharData creation/conversion.
- A bit more work on PharData creation/conversion.
- If readonly=0, why not $phardata->convertToPhar()? - Known issue with directories creating 'as-file' copies within the archive (all formats) @Greg/Marcus/Tony: This passes all tests on my box, 5.2/5.3/release_ts/debug_ts, and I can't find any more memleaks. Obviously this is too good to be true, so if conversion is still messy elsewhere please feel free to fix, or bug and assign to me.experimental/first_unicode_implementation
14 changed files with 388 additions and 84 deletions
-
67ext/phar/phar.c
-
2ext/phar/phar_internal.h
-
33ext/phar/phar_object.c
-
8ext/phar/tar.c
-
5ext/phar/tests/012.phpt
-
141ext/phar/tests/phar_convert_repeated.phpt
-
121ext/phar/tests/phar_convert_repeated_b.phpt
-
9ext/phar/tests/phar_convert_tar2.phpt
-
6ext/phar/tests/tar/tar_001.phpt
-
6ext/phar/tests/tar/tar_002.phpt
-
11ext/phar/tests/tar/tar_003.phpt
-
20ext/phar/tests/tar/tar_nostub.phpt
-
27ext/phar/tests/zf_test.phpt
-
16ext/phar/zip.c
@ -0,0 +1,141 @@ |
|||
--TEST-- |
|||
Phar::convertToZip|Tar|Phar() repeated (phar_based archives) |
|||
--SKIPIF-- |
|||
<?php if (!extension_loaded("phar")) die("skip"); ?> |
|||
--INI-- |
|||
phar.require_hash=0 |
|||
phar.readonly=0 |
|||
--FILE-- |
|||
<?php |
|||
|
|||
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar'; |
|||
$pname = 'phar://' . $fname; |
|||
$fname2 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.zip'; |
|||
$fname3 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.tar'; |
|||
$stub = '<?php echo "first stub\n"; __HALT_COMPILER(); ?>'; |
|||
$file = $stub; |
|||
|
|||
$files = array(); |
|||
$files['a'] = 'a'; |
|||
$files['b'] = 'b'; |
|||
$files['c'] = 'c'; |
|||
|
|||
include 'files/phar_test.inc'; |
|||
|
|||
echo "=================== new Phar() =======================\n"; |
|||
$phar = new Phar($fname); |
|||
var_dump($phar->isPhar()); |
|||
var_dump($phar->isTar()); |
|||
var_dump($phar->isZip()); |
|||
var_dump($phar->getStub()); |
|||
var_dump($phar->getAlias()); |
|||
|
|||
echo "================= convertToTar() =====================\n"; |
|||
|
|||
$phar->convertToTar(); |
|||
var_dump($phar->isPhar()); |
|||
var_dump($phar->isTar()); |
|||
var_dump($phar->isZip()); |
|||
var_dump($phar->getStub()); |
|||
var_dump($phar->getAlias()); |
|||
|
|||
echo "================= convertToZip() =====================\n"; |
|||
|
|||
$phar->convertToZip(); |
|||
var_dump($phar->isPhar()); |
|||
var_dump($phar->isTar()); |
|||
var_dump($phar->isZip()); |
|||
var_dump($phar->getStub()); |
|||
var_dump($phar->getAlias()); |
|||
|
|||
echo "================= convertToPhar() ====================\n"; |
|||
|
|||
$phar->convertToPhar(); |
|||
var_dump($phar->isPhar()); |
|||
var_dump($phar->isTar()); |
|||
var_dump($phar->isZip()); |
|||
var_dump(strlen($phar->getStub())); |
|||
var_dump($phar->getAlias()); |
|||
|
|||
echo "================= convertToZip() =====================\n"; |
|||
|
|||
$phar->convertToZip(); |
|||
var_dump($phar->isPhar()); |
|||
var_dump($phar->isTar()); |
|||
var_dump($phar->isZip()); |
|||
var_dump($phar->getStub()); |
|||
var_dump($phar->getAlias()); |
|||
|
|||
echo "================= convertToTar() =====================\n"; |
|||
|
|||
$phar->convertToTar(); |
|||
var_dump($phar->isPhar()); |
|||
var_dump($phar->isTar()); |
|||
var_dump($phar->isZip()); |
|||
var_dump($phar->getStub()); |
|||
var_dump($phar->getAlias()); |
|||
|
|||
echo "================= convertToZip() =====================\n"; |
|||
|
|||
$phar->convertToZip(); |
|||
var_dump($phar->isPhar()); |
|||
var_dump($phar->isTar()); |
|||
var_dump($phar->isZip()); |
|||
var_dump($phar->getStub()); |
|||
var_dump($phar->getAlias()); |
|||
|
|||
?> |
|||
===DONE=== |
|||
--CLEAN-- |
|||
<?php |
|||
unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.zip'); |
|||
?> |
|||
--EXPECT-- |
|||
=================== new Phar() ======================= |
|||
bool(true) |
|||
bool(false) |
|||
bool(false) |
|||
string(48) "<?php echo "first stub\n"; __HALT_COMPILER(); ?>" |
|||
string(3) "hio" |
|||
================= convertToTar() ===================== |
|||
bool(false) |
|||
bool(true) |
|||
bool(false) |
|||
string(60) "<?php // tar-based phar archive stub file |
|||
__HALT_COMPILER();" |
|||
string(57) "C:/sandbox/pecl/phar/tests/phar_convert_repeated.phar.tar" |
|||
================= convertToZip() ===================== |
|||
bool(false) |
|||
bool(false) |
|||
bool(true) |
|||
string(60) "<?php // zip-based phar archive stub file |
|||
__HALT_COMPILER();" |
|||
string(57) "C:/sandbox/pecl/phar/tests/phar_convert_repeated.phar.zip" |
|||
================= convertToPhar() ==================== |
|||
bool(true) |
|||
bool(false) |
|||
bool(false) |
|||
int(6573) |
|||
string(53) "C:/sandbox/pecl/phar/tests/phar_convert_repeated.phar" |
|||
================= convertToZip() ===================== |
|||
bool(false) |
|||
bool(false) |
|||
bool(true) |
|||
string(60) "<?php // zip-based phar archive stub file |
|||
__HALT_COMPILER();" |
|||
string(57) "C:/sandbox/pecl/phar/tests/phar_convert_repeated.phar.zip" |
|||
================= convertToTar() ===================== |
|||
bool(false) |
|||
bool(true) |
|||
bool(false) |
|||
string(60) "<?php // tar-based phar archive stub file |
|||
__HALT_COMPILER();" |
|||
string(57) "C:/sandbox/pecl/phar/tests/phar_convert_repeated.phar.tar" |
|||
================= convertToZip() ===================== |
|||
bool(false) |
|||
bool(false) |
|||
bool(true) |
|||
string(60) "<?php // zip-based phar archive stub file |
|||
__HALT_COMPILER();" |
|||
string(57) "C:/sandbox/pecl/phar/tests/phar_convert_repeated.phar.zip" |
|||
===DONE=== |
|||
@ -0,0 +1,121 @@ |
|||
--TEST-- |
|||
PharData::convertToZip|Tar|Phar() repeated (phardata_based archives) |
|||
--SKIPIF-- |
|||
<?php if (!extension_loaded("phar")) die("skip"); ?> |
|||
--INI-- |
|||
phar.require_hash=0 |
|||
phar.readonly=0 |
|||
--FILE-- |
|||
<?php |
|||
|
|||
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.zip'; |
|||
|
|||
echo "=================== new PharData() ==================\n"; |
|||
$phar = new PharData($fname); |
|||
$phar['a'] = 'a'; |
|||
$phar['b'] = 'b'; |
|||
$phar['c'] = 'c'; |
|||
|
|||
var_dump($phar->isPhar()); |
|||
var_dump($phar->isTar()); |
|||
var_dump($phar->isZip()); |
|||
var_dump($phar->getStub()); |
|||
var_dump($phar->getAlias()); |
|||
|
|||
echo "================= convertToTar() =====================\n"; |
|||
|
|||
$phar->convertToTar(Phar::GZ); |
|||
var_dump($phar->isPhar()); |
|||
var_dump($phar->isTar()); |
|||
var_dump($phar->isZip()); |
|||
var_dump($phar->getStub()); |
|||
var_dump($phar->getAlias()); |
|||
|
|||
echo "================= convertToZip() =====================\n"; |
|||
|
|||
$phar->convertToZip(); |
|||
var_dump($phar->isPhar()); |
|||
var_dump($phar->isTar()); |
|||
var_dump($phar->isZip()); |
|||
var_dump($phar->getStub()); |
|||
var_dump($phar->getAlias()); |
|||
|
|||
echo "================= convertToPhar() ====================\n"; |
|||
|
|||
try { |
|||
$phar->convertToPhar(); |
|||
var_dump($phar->isPhar()); |
|||
var_dump($phar->isTar()); |
|||
var_dump($phar->isZip()); |
|||
var_dump(strlen($phar->getStub())); |
|||
var_dump($phar->getAlias()); |
|||
} catch(Exception $e) { |
|||
echo $e->getMessage()."\n"; |
|||
} |
|||
|
|||
echo "================ convertToTar(GZ) ====================\n"; |
|||
|
|||
$phar->convertToTar(Phar::GZ); |
|||
var_dump($phar->isPhar()); |
|||
var_dump($phar->isTar()); |
|||
var_dump($phar->isZip()); |
|||
var_dump($phar->getStub()); |
|||
var_dump($phar->getAlias()); |
|||
|
|||
echo "================= convertToPhar() ====================\n"; |
|||
|
|||
try { |
|||
$phar->convertToPhar(); |
|||
var_dump($phar->isPhar()); |
|||
var_dump($phar->isTar()); |
|||
var_dump($phar->isZip()); |
|||
var_dump(strlen($phar->getStub())); |
|||
var_dump($phar->getAlias()); |
|||
} catch(Exception $e) { |
|||
echo $e->getMessage()."\n"; |
|||
} |
|||
|
|||
?> |
|||
===DONE=== |
|||
--CLEAN-- |
|||
<?php |
|||
unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar'); |
|||
?> |
|||
--EXPECT-- |
|||
=================== new PharData() ================== |
|||
bool(false) |
|||
bool(false) |
|||
bool(true) |
|||
string(0) "" |
|||
NULL |
|||
================= convertToTar() ===================== |
|||
bool(false) |
|||
bool(true) |
|||
bool(false) |
|||
string(0) "" |
|||
NULL |
|||
================= convertToZip() ===================== |
|||
bool(false) |
|||
bool(false) |
|||
bool(true) |
|||
string(0) "" |
|||
NULL |
|||
================= convertToPhar() ==================== |
|||
bool(true) |
|||
bool(false) |
|||
bool(false) |
|||
int(6573) |
|||
NULL |
|||
================ convertToTar(GZ) ==================== |
|||
bool(false) |
|||
bool(true) |
|||
bool(false) |
|||
string(0) "" |
|||
NULL |
|||
================= convertToPhar() ==================== |
|||
bool(true) |
|||
bool(false) |
|||
bool(false) |
|||
int(6573) |
|||
NULL |
|||
===DONE=== |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue