Annotation of embedaddon/php/ext/pdo_mysql/tests/bug_61411.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Bug #61411 (PDO Segfaults with PERSISTENT == TRUE && EMULATE_PREPARES == FALSE)
        !             3: --SKIPIF--
        !             4: <?php
        !             5: if (!extension_loaded('pdo') || !extension_loaded('pdo_mysql')) die('skip not loaded');
        !             6: require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'skipif.inc');
        !             7: require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
        !             8: MySQLPDOTest::skip();
        !             9: $db = MySQLPDOTest::factory();
        !            10: 
        !            11: $row = $db->query('SELECT VERSION() as _version')->fetch(PDO::FETCH_ASSOC);
        !            12: $matches = array();
        !            13: if (!preg_match('/^(\d+)\.(\d+)\.(\d+)/ismU', $row['_version'], $matches))
        !            14:        die(sprintf("skip Cannot determine MySQL Server version\n"));
        !            15: 
        !            16: $version = $matches[0] * 10000 + $matches[1] * 100 + $matches[2];
        !            17: if ($version < 40106)
        !            18:        die(sprintf("skip Need MySQL Server 4.1.6+, found %d.%02d.%02d (%d)\n",
        !            19:                $matches[0], $matches[1], $matches[2], $version));
        !            20: ?>
        !            21: --FILE--
        !            22: <?php
        !            23: require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'mysql_pdo_test.inc');
        !            24: 
        !            25: $attr  = getenv('PDOTEST_ATTR');
        !            26: if (!$attr) {
        !            27:        $attr = array();
        !            28: } else {
        !            29:        $attr = unserialize($attr);
        !            30: }
        !            31: $attr[PDO::ATTR_PERSISTENT] = true;
        !            32: $attr[PDO::ATTR_EMULATE_PREPARES] = false;
        !            33: putenv('PDOTEST_ATTR='.serialize($attr));
        !            34: 
        !            35: $db = MySQLPDOTest::factory();
        !            36: 
        !            37: $stmt = $db->prepare("SELECT 1");
        !            38: $stmt->execute();
        !            39: 
        !            40: foreach ($stmt as $line) {
        !            41:        var_dump($line);
        !            42: }
        !            43: 
        !            44: print "done!";
        !            45: ?>
        !            46: --EXPECTF--
        !            47: array(2) {
        !            48:   [1]=>
        !            49:   int(1)
        !            50:   [2]=>
        !            51:   int(1)
        !            52: }
        !            53: done!

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>