--- /dev/null
+--TEST--
+Sybase-CT bug #30312 (sybase_unbuffered_query calls, with free)
+--SKIPIF--
+<?php require('skipif.inc'); ?>
+--FILE--
+<?php
+/* This file is part of PHP test framework for ext/sybase_ct
+ *
+ * $Id$
+ */
+
+ require('test.inc');
+ error_reporting(error_reporting() & !E_NOTICE); // Suppress notices
+
+ $db= sybase_connect_ex();
+
+ $query= sybase_unbuffered_query('select datepart(yy, getdate())');
+ $array= sybase_fetch_row($query);
+ var_dump($array[0]);
+ sybase_free_result($query);
+
+ $query= sybase_unbuffered_query('select datepart(mm, getdate()), datepart(dd, getdate())');
+ $array= sybase_fetch_row($query);
+ var_dump($array);
+ sybase_free_result($query);
+?>
+--EXPECTF--
+int(%d)
+array(2) {
+ [0]=>
+ int(%d)
+ [1]=>
+ int(%d)
+}
--- /dev/null
+--TEST--
+Sybase-CT bug #43578 (Incurred fault #6 - if returned textfield ist empty)
+--SKIPIF--
+<?php require('skipif.inc'); ?>
+--FILE--
+<?php
+/* This file is part of PHP test framework for ext/sybase_ct
+ *
+ * $Id$
+ */
+
+ require('test.inc');
+
+ $db= sybase_connect_ex();
+
+ // Create a temporary table and fill it with test values
+ var_dump(sybase_query('
+ create table #Resource (
+ Resource_ID int,
+ DC_Rights text null
+ )
+ ', $db));
+ var_dump(sybase_query('insert into #Resource values (123, NULL)', $db));
+ var_dump(sybase_query('insert into #Resource values (124, "")', $db));
+
+ // Select non-existant
+ var_dump(sybase_select_ex($db, 'select DC_Rights from #Resource where Resource_ID = 122'));
+
+ // Select null
+ var_dump(sybase_select_ex($db, 'select DC_Rights from #Resource where Resource_ID = 123'));
+
+ // Select empty
+ var_dump(sybase_select_ex($db, 'select DC_Rights from #Resource where Resource_ID = 124'));
+
+ // Clean up and close connection
+ var_dump(sybase_query('drop table #Resource', $db));
+ sybase_close($db);
+?>
+--EXPECTF--
+bool(true)
+bool(true)
+bool(true)
+>>> Query: select DC_Rights from #Resource where Resource_ID = 122
+<<< Return: resource
+array(0) {
+}
+>>> Query: select DC_Rights from #Resource where Resource_ID = 123
+<<< Return: resource
+array(1) {
+ [0]=>
+ array(1) {
+ ["DC_Rights"]=>
+ NULL
+ }
+}
+>>> Query: select DC_Rights from #Resource where Resource_ID = 124
+<<< Return: resource
+array(1) {
+ [0]=>
+ array(1) {
+ ["DC_Rights"]=>
+ string(1) " "
+ }
+}
+bool(true)
--- /dev/null
+--TEST--
+Sybase-CT close
+--SKIPIF--
+<?php require('skipif.inc'); ?>
+--FILE--
+<?php
+/* This file is part of PHP test framework for ext/sybase_ct
+ *
+ * $Id$
+ */
+
+ require('test.inc');
+
+ $db= sybase_connect_ex();
+ var_dump($db);
+ sybase_close($db);
+ var_dump($db);
+ var_dump(sybase_query('select getdate()', $db));
+?>
+--EXPECTF--
+resource(%d) of type (sybase-ct link)
+resource(%d) of type (Unknown)
+
+Warning: sybase_query(): %d is not a valid Sybase-Link resource in %s on line %d
+bool(false)
--- /dev/null
+--TEST--
+Sybase-CT close default connection
+--SKIPIF--
+<?php require('skipif.inc'); ?>
+--FILE--
+<?php
+/* This file is part of PHP test framework for ext/sybase_ct
+ *
+ * $Id$
+ */
+
+ require('test.inc');
+
+ sybase_connect_ex();
+ sybase_close();
+ var_dump(sybase_query('select getdate()'));
+?>
+--EXPECTF--
+
+Warning: sybase_query(): Sybase: No connection in %s on line %d
+bool(false)
--- /dev/null
+--TEST--
+Sybase-CT close not open
+--SKIPIF--
+<?php require('skipif.inc'); ?>
+--FILE--
+<?php
+/* This file is part of PHP test framework for ext/sybase_ct
+ *
+ * $Id$
+ */
+
+ require('test.inc');
+
+ sybase_close();
+?>
+--EXPECTF--
+
+Warning: sybase_close(): Sybase: No connection to close in %s on line %d
--- /dev/null
+--TEST--
+Sybase-CT connection caching
+--SKIPIF--
+<?php require('skipif.inc'); ?>
+--FILE--
+<?php
+/* This file is part of PHP test framework for ext/sybase_ct
+ *
+ * $Id$
+ */
+
+ require('test.inc');
+
+ $db1= sybase_connect_ex();
+ $db2= sybase_connect_ex();
+ $db3= sybase_connect_ex(NULL, NULL, $new= TRUE);
+ var_dump($db1, $db2, $db3, (string)$db1 == (string)$db2, (string)$db2 == (string)$db3);
+ sybase_close($db1);
+
+?>
+--EXPECTF--
+resource(%d) of type (sybase-ct link)
+resource(%d) of type (sybase-ct link)
+resource(%d) of type (sybase-ct link)
+bool(true)
+bool(false)
--- /dev/null
+--TEST--
+Sybase-CT unbuffered query without full fetching
+--SKIPIF--
+<?php require('skipif.inc'); ?>
+--FILE--
+<?php
+/* This file is part of PHP test framework for ext/sybase_ct
+ *
+ * $Id$
+ */
+
+ require('test.inc');
+
+ $db= sybase_connect_ex();
+ var_dump($db);
+
+ // Fetch #1
+ $q= sybase_unbuffered_query('select name from master..systypes', $db);
+ var_dump($q, key(sybase_fetch_assoc($q)));
+
+ // Fetch #2 - without having fetched all rows from previous query
+ $q= sybase_unbuffered_query('select name from master..systypes', $db);
+ var_dump($q, key(sybase_fetch_assoc($q)));
+
+ // Fetch #3 - free first, without having fetched all rows from previous query
+ sybase_free_result($q);
+ $q= sybase_unbuffered_query('select name from master..systypes', $db);
+ var_dump($q, key(sybase_fetch_assoc($q)));
+
+ // Close - without having fetched all rows from previous query
+ sybase_close($db);
+ echo 'CLOSED';
+?>
+--EXPECTF--
+resource(%d) of type (sybase-ct link)
+resource(%d) of type (sybase-ct result)
+string(4) "name"
+
+Notice: sybase_unbuffered_query(): Sybase: Called without first fetching all rows from a previous unbuffered query in %s on line %d
+resource(%d) of type (sybase-ct result)
+string(4) "name"
+resource(%d) of type (sybase-ct result)
+string(4) "name"
+CLOSED