As it turns out, the testing of this is far more difficult than I originally suspected. Not because it fails, but because emulated queries were behaving badly to begin with, so a number of tests were testing bad behavior. For example, bug 44327:
https://github.com/ircmaxell/php-src/blob/master/ext/pdo_mysql/tests/bug44327.phpt It runs the following code: $stmt = $db->prepare('foo'); @$stmt->execute(); $row = $stmt->fetch(); var_dump($row->queryString); And expects: Notice: Trying to get property of non-object in %s on line %d NULL Whereas the proper behavior is for the syntax error to be thrown from `prepare`. PDO emulation doesn't do that, because it doesn't parse until `execute`, hence the error delays until that point. When I run it, I get: Warning: PDO::prepare(): SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'foo' at line 1 in %s on line %d Because it's sent back at prepare() instead of at execute (and prepare doesn't have an @). There are at least a few more failures of this nature. To fix this, is going to take some significant refactoring of a number of tests. Plus, without this patch, I'm still getting 2 warnings and 6 failures: ===================================================================== Number of tests : 166 157 Tests skipped : 9 ( 5.4%) -------- Tests warned : 2 ( 1.2%) ( 1.3%) Tests failed : 6 ( 3.6%) ( 3.8%) Expected fail : 1 ( 0.6%) ( 0.6%) Tests passed : 148 ( 89.2%) ( 94.3%) --------------------------------------------------------------------- Time taken : 43 seconds ===================================================================== ===================================================================== EXPECTED FAILED TEST SUMMARY --------------------------------------------------------------------- PECL Bug #7976 (Calling stored procedure several times) [ext/pdo_mysql/tests/bug_pecl_7976.phpt] XFAIL REASON: Works with mysqlnd. It is not supported by libmysql. For libmysql is good enough to see no crash. ===================================================================== ===================================================================== FAILED TEST SUMMARY --------------------------------------------------------------------- Bug #39858 (Lost connection to MySQL server during query by a repeated call stored proced) [ext/pdo_mysql/tests/bug_39858.phpt] PDO MySQL Bug #41997 (stored procedure call returning single rowset blocks future queries) [ext/pdo_mysql/tests/bug_41997.phpt] MySQL PDO->__construct() - Generic + DSN [ext/pdo_mysql/tests/pdo_mysql___construct.phpt] MySQL PDO->exec(), affected rows [ext/pdo_mysql/tests/pdo_mysql_exec_load_data.phpt] MySQL PDOStatement->nextRowSet() [ext/pdo_mysql/tests/pdo_mysql_stmt_nextrowset.phpt] MySQL Prepared Statements and different column counts [ext/pdo_mysql/tests/pdo_mysql_stmt_variable_columncount.phpt] ===================================================================== ===================================================================== WARNED TEST SUMMARY --------------------------------------------------------------------- Bug #44454 (Unexpected exception thrown in foreach() statement) [ext/pdo_mysql/tests/bug_44454.phpt] (warn: XFAIL section but test passes) MySQL PDO->prepare(), emulated PS [ext/pdo_mysql/tests/pdo_mysql_prepare_emulated.phpt] (warn: XFAIL section but test passes) ===================================================================== Whereas with the patch, there are a few more failures: ===================================================================== Number of tests : 166 157 Tests skipped : 9 ( 5.4%) -------- Tests warned : 2 ( 1.2%) ( 1.3%) Tests failed : 18 ( 10.8%) ( 11.5%) Expected fail : 1 ( 0.6%) ( 0.6%) Tests passed : 136 ( 81.9%) ( 86.6%) --------------------------------------------------------------------- Time taken : 53 seconds ===================================================================== So to do this, I'd need to fix those as well... (at least all but the XFAIL) So I'm going to keep at it, but it's going to take a while (and would like some insight into if this is the best approach to fixing the tests)... Thanks, Anthony On Thu, Jun 21, 2012 at 2:57 AM, Ulf Wendel <ulf.wen...@phpdoc.de> wrote: > Am 20.06.2012 08:39, schrieb Pierre Joye: > >> hi Chris, >> >> On Tue, Jun 19, 2012 at 11:45 PM, Christopher Jones >> <christopher.jo...@oracle.com> wrote: >> >>> We should take this offline - I can see cases where I'd strongly >>> disagree. >> >> >> I see no reason to move a discussion offline or off list, this is a >> topic that interests many other readers or developers. > > > Agreed. There was enough trouble around PDO and discussions going on in the > hidden. > > However, this does not impact the original topic. > > Ulf > > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php