Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:55318 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 14068 invoked from network); 8 Sep 2011 19:13:47 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 8 Sep 2011 19:13:47 -0000 Authentication-Results: pb1.pair.com header.from=christopher.jones@oracle.com; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=christopher.jones@oracle.com; spf=permerror; sender-id=unknown Received-SPF: error (pb1.pair.com: domain oracle.com from 141.146.126.227 cause and error) X-PHP-List-Original-Sender: christopher.jones@oracle.com X-Host-Fingerprint: 141.146.126.227 acsinet15.oracle.com Received: from [141.146.126.227] ([141.146.126.227:64666] helo=acsinet15.oracle.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 12/35-06796-9E3196E4 for ; Thu, 08 Sep 2011 15:13:46 -0400 Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237]) by acsinet15.oracle.com (Switch-3.4.4/Switch-3.4.4) with ESMTP id p88JDfX3006306 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Thu, 8 Sep 2011 19:13:42 GMT Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156]) by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id p88JDer9023516 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Thu, 8 Sep 2011 19:13:41 GMT Received: from abhmt104.oracle.com (abhmt104.oracle.com [141.146.116.56]) by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id p88JDZcg006200 for ; Thu, 8 Sep 2011 14:13:35 -0500 Received: from [130.35.70.206] (/130.35.70.206) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 08 Sep 2011 12:13:35 -0700 Message-ID: <4E6913D9.1040702@oracle.com> Date: Thu, 08 Sep 2011 12:13:29 -0700 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:6.0) Gecko/20110812 Thunderbird/6.0 MIME-Version: 1.0 To: internals@lists.php.net References: <4E6902DF.2050807@sugarcrm.com> <4E690747.3030307@oracle.com> <4E690EC8.5060209@lsces.co.uk> In-Reply-To: <4E690EC8.5060209@lsces.co.uk> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Source-IP: acsinet21.oracle.com [141.146.126.237] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090201.4E6913E6.011F:SCFMA922111,ss=1,re=-4.000,fgs=0 Subject: Re: [PHP-DEV] 5.4 beta update From: christopher.jones@oracle.com (Christopher Jones) On 09/08/2011 11:51 AM, Lester Caine wrote: > Christopher Jones wrote: >> For 5.4, there are still are a bunch of systematic failures on gcov >> e.g. imap, pdo_firebird, pdo_odbc that need attention, along with less >> obvious issues. Volunteers welcome. > > I've asked a couple of times now about fixing the PDO tests, most of the pdo_firebird failures are due to different SQL formats which are actually not handled by PDO at all, so how do we fix a pdo test designed for one database when it fails in another? > The tests do seem to have driver specific elements, but that just make things more difficult to manage :( > > The other question has to be which version of database the tests are being run against ... like MySQL some things have changed from older versions which is the reason for the interbase test failures. We DO need to think about a separate firebird version of > the driver, which is then used by pdo_firebird, since interbase gives different results to firebird nowadays. fbird_x versions of the functions have been aliases since the early days of PHP5 but now need to be a separate extension. Since interbase is a > licenced product not many of us even have a copy to run, so firebird is the more normal test base. > Lester, File a bug and attach test patches that satisfy you (and run on gcov). Or merge the patches yourself - but I'm not sure you have karma??? I've never heard of anyone else running these tests so your help would be appreciated. I won't sidetrack this thread with long term comments about PDO or the PHP test infrastructure. Let's work with what we have access to. For "generic" tests in ext/pdo/tests that should not run for Firebird, update the SKIPIF section to skip them. For example, ext/pdo/tests/bug_43130.phpt doesn't run on sqlite, Postgres or Oracle DB. The SKIPIF includes: if (!strncasecmp(getenv('PDOTEST_DSN'), 'sqlite', strlen('sqlite'))) die('skip not relevant for sqlite driver'); if (!strncasecmp(getenv('PDOTEST_DSN'), 'pgsql', strlen('pgsql'))) die('skip not relevant for pgsql driver'); if (!strncasecmp(getenv('PDOTEST_DSN'), 'oci', strlen('oci'))) die('skip not relevant for oci driver - Hyphen is not legal for bind names in Oracle DB'); Other tests may need SQL tweaks. For example bug_43139.phpt needs a different query on Oracle: $from = ''; if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'oci') { $from = 'from dual'; } var_dump($db->query("select 0 as abc, 1 as xyz, 2 as def $from")->fetchAll(PDO::FETCH_GROUP)); If a test is important but fails on Firebird due to an extension bug, then consider skipping it in pdo/tests and making a copy in ext/pdo_firebird with an --XFAIL-- section that explains why the test fails on Firebird. For tests that need to cater for multiple Firebird or Interbase versions, make multiple copies with different SKIPIFs. Don't forget to verfiy the results with 5.3, 5.4 and trunk. Chris -- Email: christopher.jones@oracle.com Tel: +1 650 506 8630 Blog: http://blogs.oracle.com/opal/