Annotation of embedaddon/php/ext/pdo_odbc/tests/long_columns.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: PDO ODBC "long" columns
        !             3: --SKIPIF--
        !             4: <?php # vim:ft=php
        !             5: if (!extension_loaded('pdo_odbc')) print 'skip not loaded';
        !             6: ?>
        !             7: --FILE--
        !             8: <?php
        !             9: require 'ext/pdo/tests/pdo_test.inc';
        !            10: $db = PDOTest::test_factory('ext/pdo_odbc/tests/common.phpt');
        !            11: $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
        !            12: 
        !            13: if (false === $db->exec('CREATE TABLE TEST (id INT NOT NULL PRIMARY KEY, data CLOB)')) {
        !            14:        if (false === $db->exec('CREATE TABLE TEST (id INT NOT NULL PRIMARY KEY, data longtext)')) {
        !            15:                if (false === $db->exec('CREATE TABLE TEST (id INT NOT NULL PRIMARY KEY, data varchar(4000))')) {
        !            16:                        die("BORK: don't know how to create a long column here:\n" . implode(", ", $db->errorInfo()));
        !            17:                }
        !            18:        }
        !            19: }
        !            20: 
        !            21: $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        !            22: 
        !            23: $sizes = array(32, 64, 128, 253, 254, 255, 256, 257, 258, 512, 1024, 2048, 3998, 3999, 4000);
        !            24: 
        !            25: $db->beginTransaction();
        !            26: $insert = $db->prepare('INSERT INTO TEST VALUES (?, ?)');
        !            27: foreach ($sizes as $num) {
        !            28:        $insert->execute(array($num, str_repeat('i', $num)));
        !            29: }
        !            30: $insert = null;
        !            31: $db->commit();
        !            32: 
        !            33: foreach ($db->query('SELECT id, data from TEST') as $row) {
        !            34:        $expect = str_repeat('i', $row[0]);
        !            35:        if (strcmp($expect, $row[1])) {
        !            36:                echo "Failed on size $row[id]:\n";
        !            37:                printf("Expected %d bytes, got %d\n", strlen($expect), strlen($row['data']));
        !            38:                echo bin2hex($expect) . "\n";
        !            39:                echo bin2hex($row['data']) . "\n";
        !            40:        }
        !            41: }
        !            42: 
        !            43: echo "Finished\n";
        !            44: 
        !            45: --EXPECT--
        !            46: Finished

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