Dirty hands required
| From: | Steph Fox | Date: | Mon, 19 May 2008 19:39:49 +0000 |
| Subject: | Dirty hands required | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-37726@lists.php.net to get a copy of this message | ||
Hi all,
I just spent forever trying to get Phar to work as expected under CVS HEAD when unicode.semantics=1. There are still 46 test failures I've no idea how to address, with stream conversion and path issues leading the way (more than half all failures) and Phar's _SERVER munging close behind. Attached is a run-down of those 46 failures.
I'd like to merge the code changes I already made in CVS HEAD back to PHP_5_3 branch, but could do with some sanity checking first... I may well be casting things that shouldn't be cast or vice versa. So if anyone is curious and has time on their hands, please feel free to have a go. The only rule is that 5_3-created phars *must* run under PHP 6.
The run-tests.php script from 5_3 is usable with HEAD - just don't forget to switch unicode.semantics on!
Thanks,
- Steph
Conversion issues: php-src\ext\phar\tests\018.phpt: readdir() cannot convert binary string to Unicode (any attempt to cast retval to binary leads to a crash) php-src\ext\phar\tests\opendir.phpt: doesn't. php-src\ext\phar\tests\opendir_edgecases.phpt: doesn't. Directory name reported as ë·¦. php-src\ext\phar\tests\phar_dir_iterate.phpt: broken foreach() php-src\ext\phar\tests\phar_dotted_path.phpt: broken foreach() php-src\ext\phar\tests\phar_oo_002.phpt: broken var_dump during foreach loop php-src\ext\phar\tests\phar_oo_003.phpt: broken var_dump during foreach loop php-src\ext\phar\tests\phar_oo_004.phpt: broken var_dump during foreach loop php-src\ext\phar\tests\phar_oo_005.phpt: broken var_dump during foreach loop php-src\ext\phar\tests\tar\tar_003.phpt: readdir() fails, dirnames like è¦î´ë½è£ php-src\ext\phar\tests\zf_test.phpt: foreach() fails php-src\ext\phar\tests\zip\odt.phpt: 'RuntimeException' with message 'Cannot access phar file entry '/é¤îé ê¤îèºë¦' in archive 'C:/sandbox/php-src/ext/phar/tests/zip/files/odt.odt', phar error: invalid path "/é¤îé ê¤îèºë¦" contains illegal character' in php-src\ext\phar\tests\zip\odt.php:3 php-src\ext\phar\tests\zip\unixzip.phpt: 'RuntimeException' with message 'Cannot access phar file entry '/ê¦î¨' in archive 'C:/sandbox/php-src/ext/phar/tests/zip/files/zip.zip', phar error: invalid path "/ê¦î¨" contains illegal character' in php-src\ext\phar\tests\zip\unixzip.php:3 Path issues: php-src\ext\phar\tests\019.phpt: directory "hio/b" not recognised following creation as "hio/b/a" php-src\ext\phar\tests\020.phpt: directory "hio/b" not recognised following creation as "hio/b/a" php-src\ext\phar\tests\dir.phpt: "sub" not recognised as a directory following creation as "sub/directory.txt" php-src\ext\phar\tests\phar_oo_getcontents.phpt: dir "a" not recognised following creation as "a/b" php-src\ext\phar\tests\pharfileinfo_chmod.phpt: dir "a" not recognised following creation as "a/b" php-src\ext\phar\tests\pharfileinfo_compression.phpt: dir "a" not recognised following creation as "a/b" php-src\ext\phar\tests\pharfileinfo_destruct.phpt: 'a/subdir' not recognised following creation as 'a/subdir/here' php-src\ext\phar\tests\pharfileinfo_getcrc32.phpt: 'a/subdir' not recognised following creation as 'a/subdir/here' php-src\ext\phar\tests\pharfileinfo_setmetadata.phpt: dir "a" not recognised following creation as "a/b" php-src\ext\phar\tests\phar_buildfromiterator10.phpt: Iterator RegexIterator returned a path "php-src\ext\phar\tests" that is not in the base directory "php-src\ext\phar\tests\" Frontcontrollers/phar_mung_server_vars(): php-src\ext\phar\tests\front.phar.phpt: 'config.xml is not a phar archive, cannot mount' php-src\ext\phar\tests\frontcontroller10.phpt: Expected 403, got 404. php-src\ext\phar\tests\frontcontroller21.phpt: In phar_mung_server_vars(), zend_hash_find(Z_ARRVAL_PP(_SERVER), "REQUEST_URI" etc. fails php-src\ext\phar\tests\frontcontroller23.phpt: phar_mung_server_vars() php-src\ext\phar\tests\frontcontroller25.phpt: phar_mung_server_vars() php-src\ext\phar\tests\frontcontroller34.phpt: fails to include(./another.php); php-src\ext\phar\tests\frontcontroller9.phpt: returns 404 php-src\ext\phar\tests\tar\frontcontroller10.phar.phpt: as frontcontroller10.phpt php-src\ext\phar\tests\tar\frontcontroller21.phar.phpt: as frontcontroller21.phpt php-src\ext\phar\tests\tar\frontcontroller9.phar.phpt: as frontcontroller9.phpt php-src\ext\phar\tests\zip\frontcontroller10.phar.phpt: as frontcontroller10.phpt php-src\ext\phar\tests\zip\frontcontroller21.phar.phpt: as frontcontroller21.phpt php-src\ext\phar\tests\zip\frontcontroller9.phar.phpt: as frontcontroller9.phpt Context not set: php-src\ext\phar\tests\phar_ctx_001.phpt php-src\ext\phar\tests\phar_oo_compressed_002.phpt php-src\ext\phar\tests\phar_oo_compressed_002b.phpt Binary return type: php-src\ext\phar\tests\create_new_and_modify.phpt: getSignature() returns binary keys php-src\ext\phar\tests\test_signaturealgos.phpt: getSignature() returns binary keys Mystery bits and bobs: php-src\ext\phar\tests\mounteddir.phpt: Fatal error: Allowed memory size of 134217728 bytes exhausted at php-src\main\spprintf.c:858 (tried to allocate 80 bytes) in phar://C:/sandbox/php-src/ext/phar/tests/tempmanifest1.phar.php/index.php on line 3 php-src\ext\phar\tests\phar_buildfromdirectory2.phpt: Expected a "UnexpectedValueException", got a "RuntimeException" instead (but correct error message). php-src\ext\phar\tests\phar_oo_008.phpt: crashes, cause unknown php-src\ext\phar\tests\phar_oo_009.phpt: crashes, cause unknown php-src\ext\phar\tests\stat2_5.3.phpt: one item that should be true is false, not sure which/why - test could do with splitting down
Conversion issues: php-src\ext\phar\tests\018.phpt: readdir() cannot convert binary string to Unicode (any attempt to cast retval to binary leads to a crash) php-src\ext\phar\tests\opendir.phpt: doesn't. php-src\ext\phar\tests\opendir_edgecases.phpt: doesn't. Directory name reported as ë·¦. php-src\ext\phar\tests\phar_dir_iterate.phpt: broken foreach() php-src\ext\phar\tests\phar_dotted_path.phpt: broken foreach() php-src\ext\phar\tests\phar_oo_002.phpt: broken var_dump during foreach loop php-src\ext\phar\tests\phar_oo_003.phpt: broken var_dump during foreach loop php-src\ext\phar\tests\phar_oo_004.phpt: broken var_dump during foreach loop php-src\ext\phar\tests\phar_oo_005.phpt: broken var_dump during foreach loop php-src\ext\phar\tests\tar\tar_003.phpt: readdir() fails, dirnames like è¦î´ë½è£ php-src\ext\phar\tests\zf_test.phpt: foreach() fails php-src\ext\phar\tests\zip\odt.phpt: 'RuntimeException' with message 'Cannot access phar file entry '/é¤îé ê¤îèºë¦' in archive 'C:/sandbox/php-src/ext/phar/tests/zip/files/odt.odt', phar error: invalid path "/é¤îé ê¤îèºë¦" contains illegal character' in php-src\ext\phar\tests\zip\odt.php:3 php-src\ext\phar\tests\zip\unixzip.phpt: 'RuntimeException' with message 'Cannot access phar file entry '/ê¦î¨' in archive 'C:/sandbox/php-src/ext/phar/tests/zip/files/zip.zip', phar error: invalid path "/ê¦î¨" contains illegal character' in php-src\ext\phar\tests\zip\unixzip.php:3 Path issues: php-src\ext\phar\tests\019.phpt: directory "hio/b" not recognised following creation as "hio/b/a" php-src\ext\phar\tests\020.phpt: directory "hio/b" not recognised following creation as "hio/b/a" php-src\ext\phar\tests\dir.phpt: "sub" not recognised as a directory following creation as "sub/directory.txt" php-src\ext\phar\tests\phar_oo_getcontents.phpt: dir "a" not recognised following creation as "a/b" php-src\ext\phar\tests\pharfileinfo_chmod.phpt: dir "a" not recognised following creation as "a/b" php-src\ext\phar\tests\pharfileinfo_compression.phpt: dir "a" not recognised following creation as "a/b" php-src\ext\phar\tests\pharfileinfo_destruct.phpt: 'a/subdir' not recognised following creation as 'a/subdir/here' php-src\ext\phar\tests\pharfileinfo_getcrc32.phpt: 'a/subdir' not recognised following creation as 'a/subdir/here' php-src\ext\phar\tests\pharfileinfo_setmetadata.phpt: dir "a" not recognised following creation as "a/b" php-src\ext\phar\tests\phar_buildfromiterator10.phpt: Iterator RegexIterator returned a path "php-src\ext\phar\tests" that is not in the base directory "php-src\ext\phar\tests\" Frontcontrollers/phar_mung_server_vars(): php-src\ext\phar\tests\front.phar.phpt: 'config.xml is not a phar archive, cannot mount' php-src\ext\phar\tests\frontcontroller10.phpt: Expected 403, got 404. php-src\ext\phar\tests\frontcontroller21.phpt: In phar_mung_server_vars(), zend_hash_find(Z_ARRVAL_PP(_SERVER), "REQUEST_URI" etc. fails php-src\ext\phar\tests\frontcontroller23.phpt: phar_mung_server_vars() php-src\ext\phar\tests\frontcontroller25.phpt: phar_mung_server_vars() php-src\ext\phar\tests\frontcontroller34.phpt: fails to include(./another.php); php-src\ext\phar\tests\frontcontroller9.phpt: returns 404 php-src\ext\phar\tests\tar\frontcontroller10.phar.phpt: as frontcontroller10.phpt php-src\ext\phar\tests\tar\frontcontroller21.phar.phpt: as frontcontroller21.phpt php-src\ext\phar\tests\tar\frontcontroller9.phar.phpt: as frontcontroller9.phpt php-src\ext\phar\tests\zip\frontcontroller10.phar.phpt: as frontcontroller10.phpt php-src\ext\phar\tests\zip\frontcontroller21.phar.phpt: as frontcontroller21.phpt php-src\ext\phar\tests\zip\frontcontroller9.phar.phpt: as frontcontroller9.phpt Context not set: php-src\ext\phar\tests\phar_ctx_001.phpt php-src\ext\phar\tests\phar_oo_compressed_002.phpt php-src\ext\phar\tests\phar_oo_compressed_002b.phpt Binary return type: php-src\ext\phar\tests\create_new_and_modify.phpt: getSignature() returns binary keys php-src\ext\phar\tests\test_signaturealgos.phpt: getSignature() returns binary keys Mystery bits and bobs: php-src\ext\phar\tests\mounteddir.phpt: Fatal error: Allowed memory size of 134217728 bytes exhausted at php-src\main\spprintf.c:858 (tried to allocate 80 bytes) in phar://C:/sandbox/php-src/ext/phar/tests/tempmanifest1.phar.php/index.php on line 3 php-src\ext\phar\tests\phar_buildfromdirectory2.phpt: Expected a "UnexpectedValueException", got a "RuntimeException" instead (but correct error message). php-src\ext\phar\tests\phar_oo_008.phpt: crashes, cause unknown php-src\ext\phar\tests\phar_oo_009.phpt: crashes, cause unknown php-src\ext\phar\tests\stat2_5.3.phpt: one item that should be true is false, not sure which/why - test could do with splitting down