Annotation of embedaddon/php/ext/pdo_odbc/tests/long_columns.phpt, revision 1.1.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>