diff options
Diffstat (limited to 'ext/mysql/tests/connect.inc')
-rw-r--r-- | ext/mysql/tests/connect.inc | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/ext/mysql/tests/connect.inc b/ext/mysql/tests/connect.inc new file mode 100644 index 0000000..0df5bc3 --- /dev/null +++ b/ext/mysql/tests/connect.inc @@ -0,0 +1,82 @@ +<?php +if (!function_exists('sys_get_temp_dir')) { + function sys_get_temp_dir() { + + if (!empty($_ENV['TMP'])) + return realpath( $_ENV['TMP'] ); + if (!empty($_ENV['TMPDIR'])) + return realpath( $_ENV['TMPDIR'] ); + if (!empty($_ENV['TEMP'])) + return realpath( $_ENV['TEMP'] ); + + $temp_file = tempnam(md5(uniqid(rand(), TRUE)), ''); + if ($temp_file) { + $temp_dir = realpath(dirname($temp_file)); + unlink($temp_file); + return $temp_dir; + } + return FALSE; + } +} + +if (!function_exists('my_mysql_connect')) { + /* wrapper to simplify test porting */ + function my_mysql_connect($host, $user, $passwd, $db, $port, $socket, $flags = NULL, $persistent = false) { + global $connect_flags; + + $flags = ($flags === NULL) ? $connect_flags : $flags; + + if ($socket) + $host = sprintf("%s:%s", $host, $socket); + else if ($port) + $host = sprintf("%s:%s", $host, $port); + + if ($persistent) { + $link = mysql_pconnect($host, $user, $passwd, $flags); + } else { + $link = mysql_connect($host, $user, $passwd, true, $flags); + } + + if (!$link) { + printf("[000-a] Cannot connect using host '%s', user '%s', password '****', persistent = %d, [%d] %s\n", + $host, $user, ($persistent) ? 1 : 0, + mysql_errno(), mysql_error()); + return false; + } + + if (!mysql_select_db($db, $link)) { + printf("[000-b] [%d] %s\n", mysql_errno($link), mysql_error($link)); + return false; + } + + return $link; + } +} else { + printf("skip Eeeek/BUG/FIXME - connect.inc included twice! skipif bug?\n"); +} + +/* +Default values are "localhost", "root", database "test" and empty password. +Change the MYSQL_TEST_* environment values if you want to use another configuration. +*/ + +$host = getenv("MYSQL_TEST_HOST") ? getenv("MYSQL_TEST_HOST") : "localhost"; +$port = getenv("MYSQL_TEST_PORT") ? getenv("MYSQL_TEST_PORT") : 3306; +$user = getenv("MYSQL_TEST_USER") ? getenv("MYSQL_TEST_USER") : "root"; +$passwd = getenv("MYSQL_TEST_PASSWD") ? getenv("MYSQL_TEST_PASSWD") : ""; + +$db = getenv("MYSQL_TEST_DB") ? getenv("MYSQL_TEST_DB") : "test"; +$engine = getenv("MYSQL_TEST_ENGINE") ? getenv("MYSQL_TEST_ENGINE") : "MyISAM"; +$socket = getenv("MYSQL_TEST_SOCKET") ? getenv("MYSQL_TEST_SOCKET") : null; +$skip_on_connect_failure = getenv("MYSQL_TEST_SKIP_CONNECT_FAILURE") ? getenv("MYSQL_TEST_SKIP_CONNECT_FAILURE") : true; +$connect_flags = getenv("MYSQL_TEST_CONNECT_FLAGS") ? (int)getenv("MYSQL_TEST_CONNECT_FLAGS") : 0; +if ($socket) { + ini_set('mysql.default_socket', $socket); +} +/* Development setting: test experimal features and/or feature requests that never worked before? */ +$TEST_EXPERIMENTAL = (in_array(getenv("MYSQL_TEST_EXPERIMENTAL"), array(0, 1))) ? + ((1 == getenv("MYSQL_TEST_EXPERIMENTAL")) ? true : false) : + false; + +$IS_MYSQLND = stristr(mysql_get_client_info(), "mysqlnd"); +?> |