Hello internals, i am now done with most bigger parts of 5.2 Todo and the remainder is a bunch of fixes engine wise some folks already found during the MFH phase. Right now my test results look like (see below). Whilethis looks quite good on the first glance it is actually a big problem that only have around 2500 tests for a beast as big as PHP.
A thing i am personally wondering about is that som many people complained about interruptions on this development tree. Actually i tried all i could to keep this interruptions as low as possible. For example besides windows all built-in stuff was at least always compilable. The biggest problems extension wise where two things. First finding all cases of overloaded iterators since their API has chnaged. This is a problem since the function pointers hide behind tables and conversons, so i could not grep for them. The other major issue was that for PDO we planned to MFH a bunch of stuff from HEAD while unfortunatley PDO's HEAD is completley out of synch with separate development in 5.1/5.2. Thus taking care of PDO had to wait until the rest had settled down. Now the real question is if ppl see the 5.2 already as something that goes for production quality or if suddenly windows became a major developmment platform without me noticing it. In the first case it is my bad, because i got our time line wrong. In the second case it is still my bad, but just tell me now so i can kick my windows compiler next tiem i do bigger changes. Anyways sorry if you feel the interruptions have been too annoying. Back on the first topic: tests. While i was still happily MFHing people complained about a newly detected behavior change that nobody detected in HEAD so far, see Zend/tests/objects_001.phpt. I never intended to change that behavior. It was simply a sideeffect of MFHing new stuff and obviously we have to fix the behavior in both HEAD and 5.2. Anyways i ask everybody to write more tests so that we can figure out such things earlier in the future, hopefully already before committing since everybody should do make test before commit anyways. Last but not least i ask to provide tests for stuff we do not cover right now. In case you are an extension developer you can most easily go to http://gcov.php.net and check your extensions for not executed c code. As the developer you will know how to provide a test for the identified areas. One good idea came up already. That is we could extend the run-tests facility to handle multiple php versions per .phpt script. That way we can keep track of behavior changes easily. This would for example be done by extending the current block identifier by a version compare string. E.g. right now expected output is identified by "--EXPECT--". With the version identifier it would look like: "--[>=5.2]:EXPECT--" and "--[<5.2]:EXPECT--". Once again sorry if you felt the interruptions too annoying. best regards marcus p.s.: todo can be found here: http://oss.backendmedia.com/PhP52 TEST RESULT SUMMARY --------------------------------------------------------------------- Exts skipped : 21 Exts tested : 68 --------------------------------------------------------------------- Number of tests : 2591 2251 Tests skipped : 340 ( 13.1%) -------- Tests warned : 0 ( 0.0%) ( 0.0%) Tests failed : 19 ( 0.7%) ( 0.8%) Tests passed : 2232 ( 86.1%) ( 99.2%) --------------------------------------------------------------------- Time taken : 569 seconds ===================================================================== ===================================================================== FAILED TEST SUMMARY --------------------------------------------------------------------- comparing objects to other types [Zend/tests/objects_001.phpt] APC: apc_store/fetch with strings [ext/apc/tests/apc_001.phpt] APC: apc_store/fetch with objects [ext/apc/tests/apc_002.phpt] APC: apc_store/fetch with objects [ext/apc/tests/apc_003.phpt] Test 1: Accessing single node [ext/dom/tests/dom001.phpt] Test 2: getElementsByTagName() / getElementsByTagNameNS() [ext/dom/tests/dom002.phpt] Test 7: DTD tests [ext/dom/tests/dom007.phpt] iconv stream filter [ext/iconv/tests/iconv_stream_filter.phpt] mb_strlen() [ext/mbstring/tests/mb_strlen.phpt] mysqli fetch float values [ext/mysqli/tests/010.phpt] mysqli fetch mixed values [ext/mysqli/tests/011.phpt] mysqli fetch mixed values 2 [ext/mysqli/tests/012.phpt] mysqli_bind_result (SHOW) [ext/mysqli/tests/045.phpt] PDO PgSQL Large Objects [ext/pdo_pgsql/tests/large_objects.phpt] Bug #31422 No Error-Logging on SoapServer-Side [ext/soap/tests/bugs/bug31422.phpt] Test array_diff and array_diff_assoc behaviour [ext/standard/tests/array/007.phpt] Test of the *intersect* bunch of functions (both assoc and non-assoc) [ext/standard/tests/array/array_intersect_1.phpt] date_sunrise() and date_sunset() functions [ext/standard/tests/general_functions/sunfuncts.phpt] Bug #22224 (implode changes object references in array) [ext/standard/tests/strings/bug22224.phpt] ===================================================================== Best regards, Marcus -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php