Annotation of embedaddon/php/ext/oci8/tests/bug42496_1.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Bug #42496 (LOB fetch leaks cursors, eventually failing with ORA-1000 maximum open cursors reached)
                      3: --SKIPIF--
                      4: <?php
                      5: $target_dbs = array('oracledb' => true, 'timesten' => false);  // test runs on these DBs
                      6: require(dirname(__FILE__).'/skipif.inc');
                      7: if (getenv('SKIP_SLOW_TESTS')) die('skip slow tests excluded by request');
                      8: ?> 
                      9: --FILE--
                     10: <?php
                     11: 
                     12: require dirname(__FILE__).'/connect.inc';
                     13: 
                     14: // Initialization
                     15: 
                     16: $stmtarray = array(
                     17:        "DROP table bug42496_1_tab",
                     18:        "CREATE table bug42496_1_tab(c1 CLOB, c2 CLOB)",
                     19:        "INSERT INTO bug42496_1_tab VALUES('test1', 'test1')",
                     20:        "INSERT INTO bug42496_1_tab VALUES('test2', 'test2')",
                     21:        "INSERT INTO bug42496_1_tab VALUES('test3', 'test3')"
                     22: );
                     23: 
                     24: oci8_test_sql_execute($c, $stmtarray);
                     25: 
                     26: // Run Test
                     27: 
                     28: echo "Test 1\n";
                     29: 
                     30: for ($i = 0; $i < 15000; $i++) {
                     31:        $s = oci_parse($c, "SELECT * from bug42496_1_tab");
                     32:        oci_define_by_name($s, "C1", $col1);
                     33:        oci_define_by_name($s, "C2", $col2);
                     34:        if (oci_execute($s)) {
                     35:                $arr = array();
                     36:                while ($arr = oci_fetch_assoc($s)) {
                     37:                        $arr['C1']->free();
                     38:                        $arr['C2']->free();
                     39:                }
                     40:        }
                     41:        oci_free_statement($s);
                     42: }
                     43: 
                     44: echo "Done\n";
                     45: 
                     46: // Cleanup
                     47: 
                     48: $stmtarray = array(
                     49:        "DROP table bug42496_1_tab"
                     50: );
                     51: 
                     52: oci8_test_sql_execute($c, $stmtarray);
                     53: 
                     54: ?>
                     55: --EXPECTF--
                     56: Test 1
                     57: Done

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