summaryrefslogtreecommitdiff
path: root/ext/mysql/tests/connect.inc
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mysql/tests/connect.inc')
-rw-r--r--ext/mysql/tests/connect.inc82
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");
+?>