thekid Fri Jan 23 21:18:14 2004 EDT Added files: /php-src/ext/sybase_ct/tests bug22403.phpt bug6339.phpt skipif.inc test.inc test_connect.phpt test_msghandler.phpt test_types.phpt Log: - Initial release
http://cvs.php.net/co.php/php-src/ext/sybase_ct/tests/bug22403.phpt?r=1.1&p=1 Index: php-src/ext/sybase_ct/tests/bug22403.phpt +++ php-src/ext/sybase_ct/tests/bug22403.phpt --TEST-- Sybase-CT bug #22403 (crash when executing a stored procedure without parameters) --SKIPIF-- <?php require('skipif.inc'); ?> --FILE-- <?php /* This file is part of PHP test framework for ext/sybase_ct * * $Id: bug22403.phpt,v 1.1 2004/01/24 02:18:13 thekid Exp $ */
require('test.inc'); $db= sybase_connect_ex(); sybase_set_message_handler('sybase_msg_handler'); error_reporting(error_reporting() & !E_NOTICE); // Suppress notices // Check if stored procedure already exists $sp_name= basename(__FILE__, '.php'); var_dump(sybase_select_db('tempdb', $db)); if (!sybase_select_single($db, 'select object_id("'.$sp_name.'")')) { echo "Stored procedure {$sp_name} not found, creating\n"; var_dump(sybase_query(' create proc '.$sp_name.' (@param int) as begin select @param select @param + 1 return @param end ')); } else { echo "Stored procedure {$sp_name} found, using\n"; var_dump(TRUE); } // These don't work var_dump(sybase_select_ex($db, 'exec '.$sp_name)); var_dump(sybase_select_ex($db, 'exec '.$sp_name.' "foo"')); var_dump(sybase_select_ex($db, 'exec does_not_exist')); // These do var_dump(sybase_select_ex($db, 'exec '.$sp_name.' NULL')); var_dump(sybase_select_ex($db, 'exec '.$sp_name.' 1')); // Clean up after ourselves var_dump(sybase_query('drop proc '.$sp_name)); sybase_close($db); ?> --EXPECTF-- bool(true) Stored procedure %s bool(true) >>> Query: exec %s *** Caught Sybase Server Message #201 [Severity 16, state 2] at line 0 %s <<< Return: boolean bool(false) >>> Query: exec %s "foo" *** Caught Sybase Server Message #257 [Severity 16, state 1] at line 0 %s <<< Return: boolean bool(false) >>> Query: exec does_not_exist *** Caught Sybase Server Message #2812 [Severity 16, state 4] at line 1 %s <<< Return: boolean bool(false) >>> Query: exec %s NULL <<< Return: resource array(1) { [0]=> array(1) { ["computed"]=> NULL } } >>> Query: exec %s 1 <<< Return: resource array(1) { [0]=> array(1) { ["computed"]=> int(1) } } bool(true) http://cvs.php.net/co.php/php-src/ext/sybase_ct/tests/bug6339.phpt?r=1.1&p=1 Index: php-src/ext/sybase_ct/tests/bug6339.phpt +++ php-src/ext/sybase_ct/tests/bug6339.phpt --TEST-- Sybase-CT bug #6339 (invalid Sybase-link resource) --SKIPIF-- <?php require('skipif.inc'); ?> --FILE-- <?php /* This file is part of PHP test framework for ext/sybase_ct * * $Id: bug6339.phpt,v 1.1 2004/01/24 02:18:13 thekid Exp $ */ require('test.inc'); // Suppress "Changed database context" warnings sybase_min_server_severity(11); sybase_connect(HOST, USER, PASSWORD); var_dump(sybase_fetch_row(sybase_query('select 1'))); sybase_close(); ?> --EXPECTF-- array(1) { [0]=> int(1) } http://cvs.php.net/co.php/php-src/ext/sybase_ct/tests/skipif.inc?r=1.1&p=1 Index: php-src/ext/sybase_ct/tests/skipif.inc +++ php-src/ext/sybase_ct/tests/skipif.inc <?php /* This file is part of PHP test framework for ext/sybase_ct * * $Id: skipif.inc,v 1.1 2004/01/24 02:18:13 thekid Exp $ */ if (!extension_loaded('sybase_ct')) die('Sybase-CT extension not loaded'); ?> http://cvs.php.net/co.php/php-src/ext/sybase_ct/tests/test.inc?r=1.1&p=1 Index: php-src/ext/sybase_ct/tests/test.inc +++ php-src/ext/sybase_ct/tests/test.inc <?php /* This file is part of PHP test framework for ext/sybase_ct * * $Id: test.inc,v 1.1 2004/01/24 02:18:13 thekid Exp $ */ // Change if needed define('HOST', 'php3'); define('USER', 'news'); define('PASSWORD', 'stuemper'); // {{{ bool sybase_msg_handler(int msgnumber, int severity, int state, int line, string text) // Handles server messages function sybase_msg_handler($msgnumber, $severity, $state, $line, $text) { printf( "*** Caught Sybase Server Message #%d [Severity %d, state %d] at line %d\n '%s'\n", $msgnumber, $severity, $state, $line, chop($text) ); } // }}} // {{{ public class sybase class sybase { // {{{ public static bool static_handler(int msgnumber, int severity, int state, int line, string text) // Handles server messages function static_handler($msgnumber, $severity, $state, $line, $text) { return sybase_msg_handler($msgnumber, $severity, $state, $line, $text); } // }}} // {{{ public bool static_handler(int msgnumber, int severity, int state, int line, string text) // Handles server messages function handler($msgnumber, $severity, $state, $line, $text) { return sybase_msg_handler($msgnumber, $severity, $state, $line, $text); } // }}} } // }}} // {{{ void sybase_set_messagehandler_ex(string handler) // Sets the sybase message handler and dumps the result function sybase_set_messagehandler_ex($handler) { var_dump(sybase_set_message_handler($handler)); } // {{{ resource sybase_connect_ex(string charset= NULL, string appname= NULL) // Connect to the sybase server using the defines HOST, USER and PASSWORD function sybase_connect_ex($charset= NULL, $appname= NULL) { sybase_min_server_severity(11); // Suppress "changed database context" if (!($db= sybase_connect(HOST, USER, PASSWORD, $charset, $appname))) { die('Connect to '.USER.'@'.HOST.' failed (using password: '.(PASSWORD ? 'yes' : 'no').')'); } return $db; } // }}} // {{{ void sybase_select_ex(resource dbh, string query) // Returns all fetched rows from an SQL query function sybase_select_ex($dbh, $query) { printf(">>> Query: %s\n", $query); $h= sybase_query($query, $dbh); printf("<<< Return: %s\n", gettype($h)); flush(); if (!is_resource($h)) return $h; $return= array(); while ($row= sybase_fetch_assoc($h)) { $return[]= $row; } return $return; } // {{{ mixed sybase_select_single(resource dbh, string query) // Fires an SQL query and returns the first value from the first row function sybase_select_single($dbh, $query) { return array_shift(sybase_fetch_row(sybase_query($query, $dbh))); } // }}} ?> http://cvs.php.net/co.php/php-src/ext/sybase_ct/tests/test_connect.phpt?r=1.1&p=1 Index: php-src/ext/sybase_ct/tests/test_connect.phpt +++ php-src/ext/sybase_ct/tests/test_connect.phpt --TEST-- Sybase-CT connectivity --SKIPIF-- <?php require('skipif.inc'); ?> --FILE-- <?php /* This file is part of PHP test framework for ext/sybase_ct * * $Id: test_connect.phpt,v 1.1 2004/01/24 02:18:13 thekid Exp $ */ require('test.inc'); $db= sybase_connect_ex(); var_dump($db); sybase_close($db); ?> --EXPECTF-- resource(%d) of type (sybase-ct link) http://cvs.php.net/co.php/php-src/ext/sybase_ct/tests/test_msghandler.phpt?r=1.1&p=1 Index: php-src/ext/sybase_ct/tests/test_msghandler.phpt +++ php-src/ext/sybase_ct/tests/test_msghandler.phpt --TEST-- Sybase-CT server message handler --SKIPIF-- <?php require('skipif.inc'); ?> --FILE-- <?php /* This file is part of PHP test framework for ext/sybase_ct * * $Id: test_msghandler.phpt,v 1.1 2004/01/24 02:18:13 thekid Exp $ */ require('test.inc'); $db= sybase_connect_ex(); echo 'Nonexistant: '; sybase_set_messagehandler_ex('function_does_not_exist'); echo 'Static method: '; sybase_set_messagehandler_ex(array('sybase', 'static_handler')); echo 'Instance method: '; sybase_set_messagehandler_ex(array(new sybase(), 'handler')); echo 'Lambda function: '; sybase_set_messagehandler_ex(create_function('', 'return FALSE;')); echo 'Unset: '; sybase_set_messagehandler_ex(NULL); echo 'Function: '; sybase_set_messagehandler_ex('sybase_msg_handler'); var_dump(sybase_select_ex($db, 'select getdate(NULL)')); sybase_close($db); ?> --EXPECTF-- Nonexistant: Warning: sybase_set_message_handler(): First argumented is expected to be a valid callback, 'function_does_not_exist' was given in %s/test.inc on line %d bool(false) Static method: bool(true) Instance method: bool(true) Lambda function: bool(true) Unset: bool(true) Function: bool(true) >>> Query: select getdate(NULL) *** Caught Sybase Server Message #%d [Severity %d, state %d] at line %d %s <<< Return: boolean bool(false) http://cvs.php.net/co.php/php-src/ext/sybase_ct/tests/test_types.phpt?r=1.1&p=1 Index: php-src/ext/sybase_ct/tests/test_types.phpt +++ php-src/ext/sybase_ct/tests/test_types.phpt --TEST-- Sybase-CT select and types --SKIPIF-- <?php require('skipif.inc'); ?> --FILE-- <?php /* This file is part of PHP test framework for ext/sybase_ct * * $Id: test_types.phpt,v 1.1 2004/01/24 02:18:13 thekid Exp $ */ require('test.inc'); $db= sybase_connect_ex(); var_dump(sybase_select_ex($db, 'select 1 as "integer", -2147483647 as "integer_min", -2147483648 as "integer_min_exceed", 2147483647 as "integer_max", 2147483648 as "integer_max_exceed", 1.0 as "float", $22.36 as "money", "Binford" as "string", convert(datetime, "2004-01-23") as "date", NULL as "null", convert(bit, 1) as "bit", convert(smalldatetime, "2004-01-23") as "smalldate" ')); sybase_close($db); ?> --EXPECTF-- >>> Query: select 1 as "integer", -2147483647 as "integer_min", -2147483648 as "integer_min_exceed", 2147483647 as "integer_max", 2147483648 as "integer_max_exceed", 1.0 as "float", $22.36 as "money", "Binford" as "string", convert(datetime, "2004-01-23") as "date", NULL as "null", convert(bit, 1) as "bit", convert(smalldatetime, "2004-01-23") as "smalldate" <<< Return: resource array(1) { [0]=> array(%d) { ["integer"]=> int(1) ["integer_min"]=> int(-2147483647) ["integer_min_exceed"]=> float(-2147483648) ["integer_max"]=> int(2147483647) ["integer_max_exceed"]=> float(2147483648) ["float"]=> float(1) ["money"]=> float(22.36) ["string"]=> string(7) "Binford" ["date"]=> string(19) "Jan 23 2004 12:00AM" ["null"]=> NULL ["bit"]=> int(1) ["smalldate"]=> string(19) "Jan 23 2004 12:00AM" } }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php