]> granicus.if.org Git - php/commitdiff
Remove support for local infile handler in mysqli from 5.5
authorandrey <andrey@php.net>
Thu, 3 May 2012 10:55:03 +0000 (12:55 +0200)
committerandrey <andrey@php.net>
Thu, 3 May 2012 10:55:03 +0000 (12:55 +0200)
This removes the following functions from the API:
mysqli_set_local_infile_default()
mysqli_set_local_infile_handler()

Using these functions is known to be lead to stability problems in
mysqli. It was only enabled when compiling against libmysql. mysqlnd
doesn't have this support for local infile. However, with mysqlnd it can
be emulated by using stream handlers like in:

$c->query("LOAD DATA LOCAL INFILE "http://example.com/import.csv" INTO ...")
All available protocols, as well as user implemented ones can be added.

25 files changed:
ext/mysqli/mysqli.c
ext/mysqli/mysqli_api.c
ext/mysqli/mysqli_fe.c
ext/mysqli/mysqli_nonapi.c
ext/mysqli/mysqli_priv.h
ext/mysqli/php_mysqli_structs.h
ext/mysqli/tests/local_infile_tools.inc [deleted file]
ext/mysqli/tests/mysqli_class_mysqli_interface.phpt
ext/mysqli/tests/mysqli_query_local_infile_large.phpt [deleted file]
ext/mysqli/tests/mysqli_set_local_infile_default.phpt [deleted file]
ext/mysqli/tests/mysqli_set_local_infile_handler.phpt [deleted file]
ext/mysqli/tests/mysqli_set_local_infile_handler_bad_character.phpt [deleted file]
ext/mysqli/tests/mysqli_set_local_infile_handler_buffer_overflow.phpt [deleted file]
ext/mysqli/tests/mysqli_set_local_infile_handler_close_link.phpt [deleted file]
ext/mysqli/tests/mysqli_set_local_infile_handler_closefile.phpt [deleted file]
ext/mysqli/tests/mysqli_set_local_infile_handler_closures.phpt [deleted file]
ext/mysqli/tests/mysqli_set_local_infile_handler_kill_link.phpt [deleted file]
ext/mysqli/tests/mysqli_set_local_infile_handler_negative_len.phpt [deleted file]
ext/mysqli/tests/mysqli_set_local_infile_handler_nested_call.phpt [deleted file]
ext/mysqli/tests/mysqli_set_local_infile_handler_new_query.phpt [deleted file]
ext/mysqli/tests/mysqli_set_local_infile_handler_nofileop.phpt [deleted file]
ext/mysqli/tests/mysqli_set_local_infile_handler_openbasedir.phpt [deleted file]
ext/mysqli/tests/mysqli_set_local_infile_handler_replace_buffer.phpt [deleted file]
ext/mysqli/tests/mysqli_set_local_infile_handler_short_len.phpt [deleted file]
ext/mysqli/tests/mysqli_set_local_infile_handler_unregister.phpt [deleted file]

index f18a503b5ee39e6b6750a7971c84462855b82323..54c957449218a892fefcfa4814a9d0279f9bf8cd 100644 (file)
@@ -1321,218 +1321,6 @@ void php_mysqli_fetch_into_hash(INTERNAL_FUNCTION_PARAMETERS, int override_flags
 }
 /* }}} */
 
-
-#if !defined(MYSQLI_USE_MYSQLND)
-
-#define ALLOC_CALLBACK_ARGS(a, b, c)\
-if (c) {\
-       a = (zval ***)safe_emalloc(c, sizeof(zval **), 0);\
-       for (i = b; i < c; i++) {\
-               a[i] = emalloc(sizeof(zval *));\
-               MAKE_STD_ZVAL(*a[i]);\
-       }\
-}
-
-#define FREE_CALLBACK_ARGS(a, b, c)\
-if (a) {\
-       for (i=b; i < c; i++) {\
-               zval_ptr_dtor(a[i]);\
-               efree(a[i]);\
-       }\
-       efree(a);\
-}
-
-#define LOCAL_INFILE_ERROR_MSG(source,dest)\
-       memset(source, 0, LOCAL_INFILE_ERROR_LEN);\
-       memcpy(source, dest, MIN(strlen(dest), LOCAL_INFILE_ERROR_LEN-1));\
-       php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", dest);
-
-
-/* {{{ php_local_infile_init
- */
-static int php_local_infile_init(void **ptr, const char *filename, void *userdata)
-{
-       mysqli_local_infile                     *data;
-       MY_MYSQL                                        *mysql;
-       php_stream_context                      *context = NULL;
-
-       TSRMLS_FETCH();
-
-       /* save pointer to MY_MYSQL structure (userdata) */
-       if (!(*ptr= data= ((mysqli_local_infile *)calloc(1, sizeof(mysqli_local_infile))))) {
-               return 1;
-       }
-
-       if (!(mysql = (MY_MYSQL *)userdata)) {
-               LOCAL_INFILE_ERROR_MSG(data->error_msg, ER(CR_UNKNOWN_ERROR));
-               return 1;
-       }
-
-       /* check open_basedir */
-       if (PG(open_basedir)) {
-               if (php_check_open_basedir_ex(filename, 0 TSRMLS_CC) == -1) {
-                       LOCAL_INFILE_ERROR_MSG(data->error_msg, "open_basedir restriction in effect. Unable to open file");
-                       return 1;
-               }
-       }
-
-       mysql->li_stream = php_stream_open_wrapper_ex((char *)filename, "r", 0, NULL, context);
-
-       if (mysql->li_stream == NULL) {
-               snprintf((char *)data->error_msg, sizeof(data->error_msg), "Can't find file '%-.64s'.", filename);
-               return 1;
-       }
-
-       data->userdata = mysql;
-
-       return 0;
-}
-/* }}} */
-
-/* {{{ int php_local_infile_read */
-static int php_local_infile_read(void *ptr, char *buf, uint buf_len)
-{
-       mysqli_local_infile                     *data;
-       MY_MYSQL                                        *mysql;
-       zval                                            ***callback_args;
-       zval                                            *retval;
-       zval                                            *fp;
-       int                                                     argc = 4;
-       int                                                     i;
-       long                                            rc;
-
-       TSRMLS_FETCH();
-
-       data= (mysqli_local_infile *)ptr;
-       mysql = data->userdata;
-
-       /* default processing */
-       if (!mysql->li_read) {
-               int count = (int)php_stream_read(mysql->li_stream, buf, buf_len);
-
-               if (count < 0) {
-                       LOCAL_INFILE_ERROR_MSG(data->error_msg, ER(2));
-               }
-
-               return count;
-       }
-
-       ALLOC_CALLBACK_ARGS(callback_args, 1, argc);
-
-       /* set parameters: filepointer, buffer, buffer_len, errormsg */
-
-       MAKE_STD_ZVAL(fp);
-       php_stream_to_zval(mysql->li_stream, fp);
-       callback_args[0] = &fp;
-       ZVAL_STRING(*callback_args[1], "", 1);
-       ZVAL_LONG(*callback_args[2], buf_len);
-       ZVAL_STRING(*callback_args[3], "", 1);
-
-       if (call_user_function_ex(EG(function_table),
-                                               NULL,
-                                               mysql->li_read,
-                                               &retval,
-                                               argc,
-                                               callback_args,
-                                               0,
-                                               NULL TSRMLS_CC) == SUCCESS) {
-
-               rc = Z_LVAL_P(retval);
-               zval_ptr_dtor(&retval);
-
-               if (rc > 0) {
-                       if (rc >= 0 && rc != Z_STRLEN_P(*callback_args[1])) {
-                               LOCAL_INFILE_ERROR_MSG(data->error_msg,
-                                                       "Mismatch between the return value of the callback and the content "
-                                                       "length of the buffer.");
-                               rc = -1;
-                       } else if (rc > buf_len) {
-                               /* check buffer overflow */
-                               LOCAL_INFILE_ERROR_MSG(data->error_msg, "Too much data returned");
-                               rc = -1;
-                       } else {
-                               memcpy(buf, Z_STRVAL_P(*callback_args[1]), MIN(rc, Z_STRLEN_P(*callback_args[1])));
-                       }
-               } else if (rc < 0) {
-                       LOCAL_INFILE_ERROR_MSG(data->error_msg, Z_STRVAL_P(*callback_args[3]));
-               }
-       } else {
-               LOCAL_INFILE_ERROR_MSG(data->error_msg, "Can't execute load data local init callback function");
-               rc = -1;
-       }
-       /*
-         If the (ab)user has closed the file handle we should
-         not try to use it anymore or even close it
-       */
-       if (!zend_rsrc_list_get_rsrc_type(Z_LVAL_P(fp) TSRMLS_CC)) {
-               LOCAL_INFILE_ERROR_MSG(data->error_msg, "File handle closed");
-               rc = -1;
-               /* Thus the end handler won't try to free already freed memory */
-               mysql->li_stream = NULL;
-       }
-
-       FREE_CALLBACK_ARGS(callback_args, 1, argc);
-       efree(fp);
-       return rc;
-}
-/* }}} */
-
-/* {{{ php_local_infile_error
- */
-static int php_local_infile_error(void *ptr, char *error_msg, uint error_msg_len)
-{
-       mysqli_local_infile *data = (mysqli_local_infile *) ptr;
-
-       if (data) {
-               strlcpy(error_msg, data->error_msg, error_msg_len);
-               return 2000;
-       }
-       strlcpy(error_msg, ER(CR_OUT_OF_MEMORY), error_msg_len);
-       return CR_OUT_OF_MEMORY;
-}
-/* }}} */
-
-/* {{{ php_local_infile_end
- */
-static void php_local_infile_end(void *ptr)
-{
-       mysqli_local_infile             *data;
-       MY_MYSQL                                *mysql;
-
-       TSRMLS_FETCH();
-
-       data= (mysqli_local_infile *)ptr;
-
-       if (!data || !(mysql = data->userdata)) {
-               if (data) {
-                       free(data);
-               }
-               return;
-       }
-
-       if (mysql->li_stream) {
-               php_stream_close(mysql->li_stream);
-       }
-       free(data);
-       return;
-}
-/* }}} */
-
-
-/* {{{ void php_set_local_infile_handler_default
-*/
-void php_set_local_infile_handler_default(MY_MYSQL *mysql) {
-       /* register internal callback functions */
-       mysql_set_local_infile_handler(mysql->mysql, &php_local_infile_init, &php_local_infile_read,
-                               &php_local_infile_end, &php_local_infile_error, (void *)mysql);
-       if (mysql->li_read) {
-               zval_ptr_dtor(&mysql->li_read);
-               mysql->li_read = NULL;
-       }
-}
-/* }}} */
-#endif
-
 /*
  * Local variables:
  * tab-width: 4
index ce7588ecbffff1a83c5c386de88cdd9590e3303f..22eae7ee1ce3254ca7ba8c88907b9c696dfe6132 100644 (file)
@@ -1456,64 +1456,6 @@ PHP_FUNCTION(mysqli_kill)
 }
 /* }}} */
 
-/* {{{ proto void mysqli_set_local_infile_default(object link)
-   unsets user defined handler for load local infile command */
-#if !defined(MYSQLI_USE_MYSQLND)
-PHP_FUNCTION(mysqli_set_local_infile_default)
-{
-       MY_MYSQL        *mysql;
-       zval            *mysql_link;
-
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
-               return;
-       }
-
-       MYSQLI_FETCH_RESOURCE_CONN(mysql, &mysql_link, MYSQLI_STATUS_VALID);
-
-       if (mysql->li_read) {
-               zval_ptr_dtor(&(mysql->li_read));
-               mysql->li_read = NULL;
-       }
-}
-/* }}} */
-
-/* {{{ proto bool mysqli_set_local_infile_handler(object link, callback read_func)
-   Set callback functions for LOAD DATA LOCAL INFILE */
-PHP_FUNCTION(mysqli_set_local_infile_handler)
-{
-       MY_MYSQL        *mysql;
-       zval            *mysql_link;
-       char            *callback_name;
-       zval            *callback_func;
-
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Oz", &mysql_link, mysqli_link_class_entry,
-                       &callback_func) == FAILURE) {
-               return;
-       }
-
-       MYSQLI_FETCH_RESOURCE_CONN(mysql, &mysql_link, MYSQLI_STATUS_VALID);
-
-       /* check callback function */
-       if (!zend_is_callable(callback_func, 0, &callback_name TSRMLS_CC)) {
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Not a valid callback function %s", callback_name);
-               efree(callback_name);
-               RETURN_FALSE;
-       }
-       efree(callback_name);
-
-       /* save callback function */
-       if (!mysql->li_read) {
-               MAKE_STD_ZVAL(mysql->li_read);
-       } else {
-               zval_dtor(mysql->li_read);
-       }
-       ZVAL_ZVAL(mysql->li_read, callback_func, 1, 0);
-
-       RETURN_TRUE;
-}
-#endif
-/* }}} */
-
 /* {{{ proto bool mysqli_more_results(object link)
    check if there any more query results from a multi query */
 PHP_FUNCTION(mysqli_more_results)
index 9ebb9352fe4a75912f922816cb4ae08b64906410..80ae848f9544df3a6008cbc558fde414f17cd122 100644 (file)
@@ -200,16 +200,6 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_kill, 0, 0, 1)
        ZEND_ARG_INFO(0, connection_id)
 ZEND_END_ARG_INFO()
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_set_local_infile_handler, 0, 0, 2)
-       MYSQLI_ZEND_ARG_OBJ_INFO_LINK()
-       ZEND_ARG_INFO(0, read_callback)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_set_local_infile_handler, 0, 0, 1)
-       MYSQLI_ZEND_ARG_OBJ_INFO_LINK()
-       ZEND_ARG_INFO(0, read_callback)
-ZEND_END_ARG_INFO()
-
 ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_query, 0, 0, 2)
        MYSQLI_ZEND_ARG_OBJ_INFO_LINK()
        ZEND_ARG_INFO(0, query)
@@ -388,10 +378,6 @@ const zend_function_entry mysqli_functions[] = {
        PHP_FE(mysqli_info,                                                                     arginfo_mysqli_only_link)
        PHP_FE(mysqli_insert_id,                                                        arginfo_mysqli_only_link)
        PHP_FE(mysqli_kill,                                                                     arginfo_mysqli_kill)
-#if !defined(MYSQLI_USE_MYSQLND)
-       PHP_FE(mysqli_set_local_infile_default,                         arginfo_mysqli_only_link)
-       PHP_FE(mysqli_set_local_infile_handler,                         arginfo_mysqli_set_local_infile_handler)
-#endif
        PHP_FE(mysqli_more_results,                                                     arginfo_mysqli_only_link)
        PHP_FE(mysqli_multi_query,                                                      arginfo_mysqli_query)
        PHP_FE(mysqli_next_result,                                                      arginfo_mysqli_only_link)
@@ -490,10 +476,6 @@ const zend_function_entry mysqli_link_methods[] = {
        PHP_FALIAS(get_warnings, mysqli_get_warnings, arginfo_mysqli_no_params)
        PHP_FALIAS(init,mysqli_init, arginfo_mysqli_no_params)
        PHP_FALIAS(kill,mysqli_kill, arginfo_class_mysqli_kill)
-#if !defined(MYSQLI_USE_MYSQLND)
-       PHP_FALIAS(set_local_infile_default, mysqli_set_local_infile_default, arginfo_mysqli_no_params)
-       PHP_FALIAS(set_local_infile_handler, mysqli_set_local_infile_handler, arginfo_class_mysqli_set_local_infile_handler)
-#endif
        PHP_FALIAS(multi_query, mysqli_multi_query, arginfo_class_mysqli_query)
        PHP_FALIAS(mysqli, mysqli_link_construct, arginfo_mysqli_connect)
        PHP_FALIAS(more_results, mysqli_more_results, arginfo_mysqli_no_params)
index 0cc1240208a91d39c556ca6d4cea6820b9b3f451..fee65ee290b186df38bc5dcc73e6da3aae484802 100644 (file)
@@ -259,9 +259,6 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne
 
 #if !defined(MYSQLI_USE_MYSQLND)
        mysql->mysql->reconnect = MyG(reconnect);
-
-       /* set our own local_infile handler */
-       php_set_local_infile_handler_default(mysql);
 #endif
 
        mysql_options(mysql->mysql, MYSQL_OPT_LOCAL_INFILE, (char *)&MyG(allow_local_infile));
index 9dd11117d124ca2862ef54e19760277d0fbb3965..ecbdacb4ea87baca90ed420e9297fc5e396b2345 100644 (file)
@@ -76,7 +76,6 @@ extern void php_clear_warnings(MYSQLI_WARNING *w);
 extern void php_free_stmt_bind_buffer(BIND_BUFFER bbuf, int type);
 extern void php_mysqli_report_error(const char *sqlstate, int errorno, const char *error TSRMLS_DC);
 extern void php_mysqli_report_index(const char *query, unsigned int status TSRMLS_DC);
-extern void php_set_local_infile_handler_default(MY_MYSQL *);
 extern void php_mysqli_throw_sql_exception(char *sqlstate, int errorno TSRMLS_DC, char *format, ...);
 
 #ifdef HAVE_SPL
index 32e3e1e8a52ec324e18cbcb499db74de88d69252..1d363ab245a093131a0e4bc99d5e0faf4f3e8399 100644 (file)
@@ -158,12 +158,6 @@ typedef struct _mysqli_property_entry {
        int (*w_func)(mysqli_object *obj, zval *value TSRMLS_DC);
 } mysqli_property_entry;
 
-#if !defined(MYSQLI_USE_MYSQLND)
-typedef struct {
-       char    error_msg[LOCAL_INFILE_ERROR_LEN];
-       void    *userdata;
-} mysqli_local_infile;
-#endif
 
 typedef struct {
        zend_ptr_stack free_links;
diff --git a/ext/mysqli/tests/local_infile_tools.inc b/ext/mysqli/tests/local_infile_tools.inc
deleted file mode 100644 (file)
index bb9872f..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-<?php
-       /* Utility function for mysqli_set_local_infile*.phpt tests */
-       function shutdown_clean($file) {
-               if ($file) {
-                       unlink($file);
-               }
-       }
-
-       function check_local_infile_support($link, $engine, $table_name = 'test') {
-
-               if (!$res = mysqli_query($link, 'SHOW VARIABLES LIKE "local_infile"'))
-                       return "Cannot check if Server variable 'local_infile' is set to 'ON'";
-
-               $row = mysqli_fetch_assoc($res);
-               mysqli_free_result($res);
-               if ('ON' != $row['Value'])
-                       return sprintf("Server variable 'local_infile' seems not set to 'ON', found '%s'", $row['Value']);
-
-               if (!mysqli_query($link, sprintf('DROP TABLE IF EXISTS %s', $table_name))) {
-                       return "Failed to drop old test table";
-               }
-
-               if (!mysqli_query($link, $sql = sprintf('CREATE TABLE %s(id INT, label CHAR(1), PRIMARY KEY(id)) ENGINE=%s',
-                       $table_name, $engine)))
-                       return "Failed to create test table: $sql";
-
-               $file = create_standard_csv(1, false);
-               if (!$file) {
-                       mysqli_query($link, sprintf('DROP TABLE IF EXISTS %s', $table_name));
-                       return "Cannot create CSV file";
-               }
-
-               if (!@mysqli_query($link, sprintf("LOAD DATA LOCAL INFILE '%s'
-                       INTO TABLE %s
-                       FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '\''
-                       LINES TERMINATED BY '\n'",
-                       mysqli_real_escape_string($link, $file),
-                       $table_name))) {
-                         if (1148 == mysqli_errno($link)) {
-                                 mysqli_query($link, sprintf('DROP TABLE IF EXISTS %s', $table_name));
-                                 return "Cannot test LOAD DATA LOCAL INFILE, [1148] The used command is not allowed with this MySQL version";
-                         } else if ($link->errno) {
-                                 return $link->error;
-                         }
-               }
-               mysqli_query($link, sprintf('DROP TABLE IF EXISTS %s', $table_name));
-               return "";
-       }
-
-       function create_standard_csv($offset, $verbose = true) {
-               // create a CVS file
-               $file = tempnam(sys_get_temp_dir(), 'mysqli_test');
-               if (!$fp = fopen($file, 'w')) {
-                       if ($verbose)
-                               printf("[%03d + 1] Cannot create CVS file '%s'\n", $offset, $file);
-                       return NULL;
-               } else {
-                       /* Looks ugly? No, handy if you have crashes... */
-                       register_shutdown_function("shutdown_clean", $file);
-               }
-
-               if ((version_compare(PHP_VERSION, '5.9.9', '>') == 1)) {
-                       if (!fwrite($fp, (binary)"'97';'x';\n") ||
-                               !fwrite($fp, (binary)"'98';'y';\n") ||
-                               !fwrite($fp, (binary)"99;'z';\n")) {
-                               if ($verbose)
-                                       printf("[%03d + 2] Cannot write CVS file '%s'\n", $offset, $file);
-                               return NULL;
-                       }
-               } else {
-                       if (!fwrite($fp, "97;'x';\n") ||
-                               !fwrite($fp, "98;'y';\n") ||
-                               !fwrite($fp, "99;'z';\n")) {
-                               if ($verbose)
-                                       printf("[%03d + 3] Cannot write CVS file '%s'\n", $offset, $file);
-                               return NULL;
-                       }
-               }
-
-               fclose($fp);
-
-               if (!chmod($file, 0644)) {
-                       if ($verbose)
-                               printf("[%03d + 4] Cannot change the file perms of '%s' from 0600 to 0644, MySQL might not be able to read it\n",
-                                       $offset, $file);
-                       return NULL;
-               }
-               return $file;
-       }
-
-       function try_handler($offset, $link, $file, $handler, $expected = null) {
-
-               if ('default' == $handler) {
-                       mysqli_set_local_infile_default($link);
-               } else if (!mysqli_set_local_infile_handler($link, $handler)) {
-                       printf("[%03d] Cannot set infile handler to '%s'\n", $offset, $handler);
-                       return false;
-               }
-               printf("Callback set to '%s'\n", $handler);
-
-               if (!mysqli_query($link, sprintf("DELETE FROM test"))) {
-                       printf("[%03d] Cannot remove records, [%d] %s\n", $offset + 1, mysqli_errno($link), mysqli_error($link));
-                       return false;
-               }
-
-               if (!@mysqli_query($link, sprintf("LOAD DATA LOCAL INFILE '%s'
-                       INTO TABLE test
-                       FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '\''
-                       LINES TERMINATED BY '\n'",
-                       mysqli_real_escape_string($link, $file)))) {
-                       printf("[%03d] LOAD DATA failed, [%d] %s\n",
-                               $offset + 2,
-                               mysqli_errno($link), mysqli_error($link));
-               }
-
-               if (!$res = mysqli_query($link, "SELECT id, label FROM test ORDER BY id")) {
-                       printf("[%03d] [%d] %s\n", $offset + 3, mysqli_errno($link), mysqli_error($link));
-                       return false;
-               }
-
-               if (!is_array($expected))
-                       return true;
-
-               foreach ($expected as $k => $values) {
-                       if (!$tmp = mysqli_fetch_assoc($res)) {
-                               printf("[%03d/%d] [%d] '%s'\n", $offset + 4, $k, mysqli_errno($link), mysqli_error($link));
-                               return false;
-                       }
-                       if ($values['id'] != $tmp['id']) {
-                               printf("[%03d/%d] Expecting %s got %s\n",
-                                       $offset + 5, $k,
-                                       $values['id'], $tmp['id']);
-                                       return false;
-                       }
-                       if ($values['label'] != $tmp['label']) {
-                               printf("[%03d/%d] Expecting %s got %s\n",
-                                       $offset + 6, $k,
-                                       $values['label'], $tmp['label']);
-                                       return false;
-                       }
-               }
-
-               if ($res && $tmp = mysqli_fetch_assoc($res)) {
-                       printf("[%03d] More results than expected!\n", $offset + 7);
-                       do {
-                               var_dump($tmp);
-                       } while ($tmp = mysqli_fetch_assoc($res));
-                       return false;
-               }
-
-               if ($res)
-                       mysqli_free_result($res);
-
-               return true;
-       }
-?>
\ No newline at end of file
index c6d4e7cc328e50716dbfe1092b2012916dc7de92..139325a3f1988bddfcfa36ac3bb41acd5bde9a8a 100644 (file)
@@ -67,12 +67,6 @@ require_once('skipifconnectfailure.inc');
                $expected_methods['get_connection_stats']       = true;
                $expected_methods['reap_async_query']   = true;
                $expected_methods['poll'] = true;
-       } else {
-               // libmysql only
-               if (function_exists('mysqli_ssl_set'))
-                       $expected_methods['ssl_set'] = true;
-               $expected_methods['set_local_infile_default']   = true;
-               $expected_methods['set_local_infile_handler']   = true;
        }
 
        /* we should add ruled when to expect them */
diff --git a/ext/mysqli/tests/mysqli_query_local_infile_large.phpt b/ext/mysqli/tests/mysqli_query_local_infile_large.phpt
deleted file mode 100644 (file)
index 76bc415..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
---TEST--
-mysql_query(LOAD DATA LOCAL INFILE) with large data set (10MB)
---SKIPIF--
-<?php
-require_once('skipif.inc');
-require_once('skipifconnectfailure.inc');
-
-$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket);
-if (!$link)
-       die(sprintf("skip Can't connect [%d] %s", mysqli_connect_errno(), mysqli_connect_error()));
-
-include_once("local_infile_tools.inc");
-if ($msg = check_local_infile_support($link, $engine))
-       die(sprintf("skip %s, [%d] %s", $msg, $link->errno, $link->error));
-
-mysqli_close($link);
-?>
---INI--
-mysqli.allow_local_infile=1
---FILE--
-<?php
-       // Create a large CVS file
-       $file = tempnam(sys_get_temp_dir(), 'mysqli_test.cvs');
-       if (!$fp = fopen($file, 'w'))
-               printf("[001] Cannot create CVS file '%s'\n", $file);
-
-       $data = str_repeat("a", 127) . ";" . str_repeat("b", 127) . "\n";
-
-       $runtime = 5;
-       $max_bytes = 1024 * 1024 * 10;
-
-       $start = microtime(true);
-       $bytes = 0;
-       $rowno = 0;
-       while (($bytes < $max_bytes) && ((microtime(true) - $start) < $runtime)) {
-               if ((version_compare(PHP_VERSION, '5.9.9', '>') == 1))
-                       $bytes += fwrite($fp, (binary)(++$rowno . ";" . $data));
-               else
-                       $bytes += fwrite($fp, ++$rowno . ";" . $data);
-       }
-       fclose($fp);
-       printf("Filesize in bytes: %d\nRows: %d\n", $bytes, $rowno);
-
-       require_once("connect.inc");
-       if (!($link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)))
-               printf("[002] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
-
-       if (!mysqli_query($link, "DROP TABLE IF EXISTS test") ||
-                       !mysqli_query($link, "CREATE TABLE test(id INT, col1 VARCHAR(255), col2 VARCHAR(255)) ENGINE = " . $engine))
-               printf("[003] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
-
-       if (!mysqli_query($link, sprintf("LOAD DATA LOCAL INFILE '%s' INTO TABLE test FIELDS TERMINATED BY ';'", mysqli_real_escape_string($link, $file))))
-               printf("[004] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
-
-       if ((!is_string(mysqli_info($link))) || ('' == mysqli_info($link))) {
-               printf("[005] [%d] %s, mysqli_info not set \n", mysqli_errno($link), mysqli_error($link));
-       }
-
-       if (!($res = mysqli_query($link, "SELECT COUNT(*) AS _num FROM test")))
-               printf("[006] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
-
-       $row = mysqli_fetch_assoc($res);
-       if (($row["_num"] != $rowno))
-               printf("[007] Expecting %d rows, found %d\n", $rowno, $row["_num"]);
-
-       mysqli_free_result($res);
-
-       $random = mt_rand(1, $rowno);
-       if (!$res = mysqli_query($link, "SELECT id, col1, col2 FROM test WHERE id = " . $random))
-                       printf("[008] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
-
-       $row = mysqli_fetch_assoc($res);
-       var_dump($row);
-       mysqli_free_result($res);
-
-       mysqli_close($link);
-       print "done!";
-?>
---CLEAN--
-<?php
-$file = tempnam(sys_get_temp_dir(), 'mysqli_test.cvs');
-if (file_exists($file))
-       unlink($file);
-
-require_once("connect.inc");
-if (!($link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)))
-       printf("[c001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
-
-if (!mysqli_query($link, "DROP TABLE IF EXISTS test"))
-       printf("[c002] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
-?>
---EXPECTF--
-Filesize in bytes: %d
-Rows: %d
-array(3) {
-  [%u|b%"id"]=>
-  %unicode|string%(%d) "%d"
-  [%u|b%"col1"]=>
-  %unicode|string%(127) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
-  [%u|b%"col2"]=>
-  %unicode|string%(127) "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
-}
-done!
\ No newline at end of file
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_default.phpt b/ext/mysqli/tests/mysqli_set_local_infile_default.phpt
deleted file mode 100644 (file)
index 0348b01..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
---TEST--
-mysqli_set_local_infile_default()
---SKIPIF--
-<?php
-require_once('skipif.inc');
-require_once('skipifemb.inc');
-require_once('skipifconnectfailure.inc');
-
-if (!function_exists('mysqli_set_local_infile_handler'))
-       die("skip - function not available.");
-
-$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket);
-if (!$link)
-       die(sprintf("skip Can't connect [%d] %s", mysqli_connect_errno(), mysqli_connect_error()));
-
-include_once("local_infile_tools.inc");
-if ($msg = check_local_infile_support($link, $engine))
-       die(sprintf("skip %s, [%d] %s", $msg, $link->errno, $link->error));
-
-mysqli_close($link);
-?>
---INI--
-mysqli.allow_local_infile=1
---FILE--
-<?php
-       require_once('connect.inc');
-       require_once('local_infile_tools.inc');
-
-       $link = $tmp = null;
-       if (!is_null($tmp = @mysqli_set_local_infile_default()))
-               printf("[001] Expecting NULL got %s/%s\n", gettype($tmp), $tmp);
-
-       if (!is_null($tmp = @mysqli_set_local_infile_default($link)))
-               printf("[002] Expecting NULL got %s/%s\n", gettype($tmp), $tmp);
-
-       $link = new mysqli();
-       if (!is_null($tmp = @mysqli_set_local_infile_default($link)))
-               printf("[002a] Expecting NULL got %s/%s\n", gettype($tmp), $tmp);
-
-       include("table.inc");
-
-       if (!is_null($tmp = @mysqli_set_local_infile_default($link, 'foo')))
-               printf("[003] Expecting NULL got %s/%s\n", gettype($tmp), $tmp);
-
-
-       function callback_simple($fp, &$buffer, $buflen, &$error) {
-               static $invocation = 0;
-
-               printf("Callback: %d\n", $invocation);
-
-               $invocation++;
-               if (!is_resource($fp))
-                       printf("[012] First argument passed to callback is not a resource but %s/%s\n",
-                               $fp, gettype($fp));
-
-               if (!$buffer = fread($fp, $buflen)) {
-                       if ($invocation == 1) {
-                               printf("[013] Cannot read from stream\n");
-                               $error = 'Cannot read from stream';
-                       } else {
-                               return strlen($buffer);
-                       }
-               }
-
-               $lines = explode("\n", $buffer);
-               if (count($lines) != 4 && strlen($buffer) > 0) {
-                       printf("[014] Test is too simple to handle a buffer of size %d that cannot hold all lines\n", $buflen);
-                       $error = 'Parser too simple';
-               }
-
-               $buffer = '';
-               foreach ($lines as $k => $line) {
-                       if ('' === trim($line))
-                               continue;
-
-                       $columns = explode(';', $line);
-                       if (empty($columns)) {
-                               printf("[015] Cannot parse columns\n");
-                               $error = 'Cannot parse columns';
-                       }
-
-                       // increase id column value
-                       $columns[0] += 1;
-                       $buffer .= implode(';', $columns);
-                       $buffer .= "\n";
-               }
-
-               return strlen($buffer);
-       }
-
-       $file = create_standard_csv(4);
-       $expected = array(
-               array('id' => 98,   'label' => 'x'),
-               array('id' => 99,   'label' => 'y'),
-               array('id' => 100,  'label' => 'z'),
-       );
-       try_handler(10, $link, $file, 'callback_simple', $expected);
-
-       $expected = array(
-               array('id' => 97,   'label' => 'x'),
-               array('id' => 98,   'label' => 'y'),
-               array('id' => 99,   'label' => 'z'),
-       );
-       try_handler(20, $link, $file, 'default', $expected);
-
-       $expected = array(
-               array('id' => 98,   'label' => 'x'),
-               array('id' => 99,   'label' => 'y'),
-               array('id' => 100,  'label' => 'z'),
-       );
-       try_handler(30, $link, $file, 'callback_simple', $expected);
-
-       mysqli_close($link);
-
-       if (!is_null($tmp = @mysqli_set_local_infile_default($link)))
-               printf("[300] Expecting NULL/NULL got %s/%s\n", $tmp, gettype($tmp));
-
-       print "done!";
-?>
---CLEAN--
-<?php
-       require_once("clean_table.inc");
-?>
---EXPECTF--
-Callback set to 'callback_simple'
-Callback: 0
-Callback: 1
-Callback set to 'default'
-Callback set to 'callback_simple'
-Callback: 2
-Callback: 3
-done!
\ No newline at end of file
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler.phpt
deleted file mode 100644 (file)
index 58f4c70..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
---TEST--
-mysqli_set_local_infile_handler()
---SKIPIF--
-<?php
-require_once('skipif.inc');
-require_once('skipifemb.inc');
-require_once('skipifconnectfailure.inc');
-
-if (!function_exists('mysqli_set_local_infile_handler'))
-       die("skip - function not available.");
-
-require_once('connect.inc');
-if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
-       die("skip Cannot connect to MySQL");
-
-include_once("local_infile_tools.inc");
-if ($msg = check_local_infile_support($link, $engine))
-       die(sprintf("skip %s, [%d] %s", $msg, $link->errno, $link->error));
-
-mysqli_close($link);
-?>
---INI--
-mysqli.allow_local_infile=1
---FILE--
-<?php
-       require_once('connect.inc');
-       require_once('local_infile_tools.inc');
-       require_once('table.inc');
-
-       function callback_simple($fp, &$buffer, $buflen, &$error) {
-               static $invocation = 0;
-
-               printf("Callback: %d\n", $invocation);
-
-               $invocation++;
-               if (!is_resource($fp))
-                       printf("[012] First argument passed to callback is not a resource but %s/%s\n",
-                               $fp, gettype($fp));
-
-               if (!$buffer = fread($fp, $buflen)) {
-                       if ($invocation == 1) {
-                               printf("[013] Cannot read from stream\n");
-                                       $error = 'Cannot read from stream';
-                       } else {
-                               return strlen($buffer);
-                       }
-               }
-
-               $lines = explode("\n", $buffer);
-               if (count($lines) != 4 && strlen($buffer) > 0) {
-                       printf("[014] Test is too simple to handle a buffer of size %d that cannot hold all lines\n", $buflen);
-                       $error = 'Parser too simple';
-               }
-
-               $buffer = '';
-               foreach ($lines as $k => $line) {
-                       if ('' === trim($line))
-                               continue;
-
-                       $columns = explode(';', $line);
-                       if (empty($columns)) {
-                               printf("[015] Cannot parse columns\n");
-                               $error = 'Cannot parse columns';
-                       }
-
-                       // increase id column value
-                       $columns[0] += 1;
-                       $buffer .= implode(';', $columns);
-                       $buffer .= "\n";
-               }
-
-               return strlen($buffer);
-       }
-
-       function callback_fclose($fp, &$buffer, $buflen, &$error) {
-               static $invocation = 0;
-
-               printf("Callback: %d\n", $invocation++);
-
-               fclose($fp);
-               return strlen($buffer);
-       }
-
-       function callback_closefile($fp, &$buffer, $buflen, &$error) {
-               static $invocation = 0;
-
-               printf("Callback: %d\n", $invocation++);
-               flush();
-               if (is_resource($fp))
-                       fclose($fp);
-               $buffer = "1;'a';\n";
-               if ($invocation > 10)
-                       return 0;
-
-               return strlen($buffer);
-       }
-
-       function callback_invalid_args($fp, &$buffer, $buflen) {
-               static $invocation = 0;
-
-               printf("Callback: %d\n", $invocation++);
-               $buffer = fread($fp, $buflen);
-
-               return strlen($buffer);
-       }
-
-       function callback_error($fp, &$buffer, $buflen, &$error) {
-               static $invocation = 0;
-
-               printf("Callback: %d\n", $invocation++);
-               $buffer = fread($fp, $buflen);
-               $error = 'How to access this error?';
-
-               return -1;
-       }
-
-       if (!is_null($tmp = @mysqli_set_local_infile_handler()))
-               printf("[001] Expecting NULL/NULL got %s/%s\n", $tmp, gettype($tmp));
-
-       $handle = null;
-       if (!is_null($tmp = @mysqli_set_local_infile_handler($handle)))
-               printf("[002] Expecting NULL/NULL got %s/%s\n", $tmp, gettype($tmp));
-
-       $handle = @new mysqli();
-       if (!is_null($tmp = @mysqli_set_local_infile_handler($handle, 'callback_simple')))
-               printf("[003] Expecting NULL/NULL got %s/%s\n", $tmp, gettype($tmp));
-
-       if (false !== ($tmp = @mysqli_set_local_infile_handler($link, 'unknown')))
-               printf("[004] Expecting false/boolean got %s/%s\n", $tmp, gettype($tmp));
-
-       $file = create_standard_csv(5);
-
-       $expected = array(
-               array('id' => 98,   'label' => 'x'),
-               array('id' => 99,   'label' => 'y'),
-               array('id' => 100,  'label' => 'z'),
-       );
-       try_handler(10, $link, $file, 'callback_simple', $expected);
-
-       $expected = array();
-       try_handler(20, $link, $file, 'callback_fclose', $expected);
-
-       // FIXME - TODO - KLUDGE -
-  // IMHO this is wrong. ext/mysqli should bail as the function signature
-  // is not complete. That's a BC break, OK, but it makes perfectly sense.
-       $expected = array();
-       try_handler(30, $link, $file, 'callback_invalid_args', $expected);
-
-       $expected = array();
-       try_handler(40, $link, $file, 'callback_error', $expected);
-
-
-       mysqli_close($link);
-
-       if (!is_null($tmp = @mysqli_set_local_infile_handler($link, 'callback_simple')))
-               printf("[300] Expecting NULL/NULL got %s/%s\n", $tmp, gettype($tmp));
-
-       print "done!";
-?>
---CLEAN--
-<?php
-       require_once("clean_table.inc");
-?>
---EXPECTF--
-Callback set to 'callback_simple'
-Callback: 0
-Callback: 1
-Callback set to 'callback_fclose'
-Callback: 0
-[022] LOAD DATA failed, [2000] File handle close%s
-Callback set to 'callback_invalid_args'
-Callback: 0
-Callback: 1
-[037] More results than expected!
-array(2) {
-  [%u|b%"id"]=>
-  %unicode|string%(2) "97"
-  [%u|b%"label"]=>
-  %unicode|string%(1) "x"
-}
-array(2) {
-  [%u|b%"id"]=>
-  %unicode|string%(2) "98"
-  [%u|b%"label"]=>
-  %unicode|string%(1) "y"
-}
-array(2) {
-  [%u|b%"id"]=>
-  %unicode|string%(2) "99"
-  [%u|b%"label"]=>
-  %unicode|string%(1) "z"
-}
-Callback set to 'callback_error'
-Callback: 0
-[042] LOAD DATA failed, [2000] How to access this error?
-done!
\ No newline at end of file
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_bad_character.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_bad_character.phpt
deleted file mode 100644 (file)
index b8f51c2..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
---TEST--
-mysqli_set_local_infile_handler() - random ASCII character including \0
---SKIPIF--
-<?php
-require_once('skipif.inc');
-require_once('skipifemb.inc');
-require_once('skipifconnectfailure.inc');
-require_once('connect.inc');
-
-if (!function_exists('mysqli_set_local_infile_handler'))
-    die("skip - function not available.");
-
-if (!$TEST_EXPERIMENTAL)
-    die("skip - experimental (= unsupported) feature");
-
-if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
-       die("skip Cannot connect to MySQL");
-
-include_once("local_infile_tools.inc");
-if ($msg = check_local_infile_support($link, $engine))
-       die(sprintf("skip %s, [%d] %s", $msg, $link->errno, $link->error));
-
-mysqli_close($link);
-?>
---INI--
-mysqli.allow_local_infile=1
---FILE--
-<?php
-       require_once('connect.inc');
-       require_once('local_infile_tools.inc');
-       require_once('table.inc');
-
-       function callback_bad_character($fp, &$buffer, $buflen, &$error) {
-               static $invocation = 0;
-
-               printf("Callback: %d\n", $invocation++);
-
-               $num_chars = (version_compare(PHP_VERSION, '5.9.9', '>') == 1) ? (floor($buflen / 2) - 10) : ($buflen - 5);
-               $part1 = floor($num_chars / 2);
-               $part2 = $num_chars - $part1;
-
-               $buffer = '';
-               for ($i = 0; $i < $part1; $i++)
-                       $buffer .= chr(mt_rand(0, 255));
-
-               $buffer .= ';"';
-
-               for ($i = 0; $i < $part2; $i++)
-                       $buffer .= chr(mt_rand(0, 255));
-
-               $buffer .= '";';
-               if ($invocation > 10)
-                       return 0;
-
-               return strlen($buffer);
-       }
-
-       $file = create_standard_csv(5);
-       /* we feed the handler with random data, therefore we cannot specify and expected rows */
-       try_handler(20, $link, $file, 'callback_bad_character');
-
-       mysqli_close($link);
-       print "done!";
-?>
---CLEAN--
-<?php
-       require_once("clean_table.inc");
-?>
---EXPECTF--
-Callback set to 'callback_bad_character'
-Callback: 0
-Callback: 1
-Callback: 2
-Callback: 3
-Callback: 4
-Callback: 5
-Callback: 6
-Callback: 7
-Callback: 8
-Callback: 9
-Callback: 10
-done!
\ No newline at end of file
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_buffer_overflow.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_buffer_overflow.phpt
deleted file mode 100644 (file)
index a3c8801..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
---TEST--
-mysqli_set_local_infile_handler() - buffer overflow
---SKIPIF--
-<?php
-require_once('skipif.inc');
-require_once('skipifemb.inc');
-require_once('skipifconnectfailure.inc');
-
-if (!function_exists('mysqli_set_local_infile_handler'))
-       die("skip - function not available.");
-
-require_once('connect.inc');
-if (!$TEST_EXPERIMENTAL)
-       die("skip - experimental (= unsupported) feature");
-
-if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
-       die("skip Cannot connect to MySQL");
-
-include_once("local_infile_tools.inc");
-if ($msg = check_local_infile_support($link, $engine))
-       die(sprintf("skip %s, [%d] %s", $msg, $link->errno, $link->error));
-
-mysqli_close($link);
-?>
---INI--
-mysqli.allow_local_infile=1
---FILE--
-<?php
-       require_once('connect.inc');
-       require_once('local_infile_tools.inc');
-       require_once('table.inc');
-
-       function callback_buffer_overflow($fp, &$buffer, $buflen, &$error) {
-               static $invocation = 0;
-
-               printf("Callback: %d\n", $invocation);
-               $buffer = fread($fp, $buflen);
-
-               $buffer = str_repeat(';', $buflen * 2);
-               return strlen($buffer);
-       }
-
-       $file = create_standard_csv(5);
-       $expected = array();
-       try_handler(20, $link, $file, 'callback_buffer_overflow', $expected);
-
-       mysqli_close($link);
-       print "done!";
-?>
---CLEAN--
-<?php
-       require_once("clean_table.inc");
-?>
---EXPECTF--
-Callback set to 'callback_buffer_overflow'
-Callback: 0
-
-Warning: mysqli_query(): Too much data returned in %s on line %d
-[022] LOAD DATA failed, [%d] Too much data returned
-done!
\ No newline at end of file
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_close_link.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_close_link.phpt
deleted file mode 100644 (file)
index 408bb29..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
---TEST--
-mysqli_set_local_infile_handler() - close database link
---SKIPIF--
-<?php
-require_once('skipif.inc');
-require_once('skipifemb.inc');
-require_once('skipifconnectfailure.inc');
-
-if (!function_exists('mysqli_set_local_infile_handler'))
-       die("skip - function not available.");
-
-require_once('connect.inc');
-if (!$TEST_EXPERIMENTAL)
-       die("skip - experimental (= unsupported) feature");
-
-if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
-       die("skip Cannot connect to MySQL");
-
-include_once("local_infile_tools.inc");
-if ($msg = check_local_infile_support($link, $engine))
-       die(sprintf("skip %s, [%d] %s", $msg, $link->errno, $link->error));
-
-mysqli_close($link);
-?>
---INI--
-mysqli.allow_local_infile=1
---FILE--
-<?php
-       require("table.inc");
-       require_once('local_infile_tools.inc');
-
-       function callback_close_link($fp, &$buffer, $buflen, &$error) {
-               global $link;
-               static $invocation = 0;
-
-               printf("Callback: %d\n", $invocation++);
-               flush();
-               if (is_object($link))
-                       mysqli_close($link);
-
-               $buffer = "1;'a';\n";
-               if ($invocation > 10)
-                       return 0;
-
-               return strlen($buffer);
-       }
-
-       $file = create_standard_csv(1);
-       $expected = array(array('id' => 1, 'label' => 'a'));
-       try_handler(20, $link, $file, 'callback_close_link', $expected);
-       mysqli_close($link);
-       print "done!";
-?>
---CLEAN--
-<?php
-       require_once("clean_table.inc");
-?>
---EXPECTF--
-Callback set to 'callback_close_link'
-Callback: 0
-done!
\ No newline at end of file
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_closefile.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_closefile.phpt
deleted file mode 100644 (file)
index 168cbc1..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
---TEST--
-mysqli_set_local_infile_handler() - do not use the file pointer
---SKIPIF--
-<?php
-require_once('skipif.inc');
-require_once('skipifemb.inc');
-require_once('skipifconnectfailure.inc');
-
-if (!function_exists('mysqli_set_local_infile_handler'))
-       die("skip - function not available.");
-
-require_once('connect.inc');
-if (!$TEST_EXPERIMENTAL)
-       die("skip - experimental (= unsupported) feature");
-
-if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
-       die("skip Cannot connect to MySQL");
-
-include_once("local_infile_tools.inc");
-if ($msg = check_local_infile_support($link, $engine))
-       die(sprintf("skip %s, [%d] %s", $msg, $link->errno, $link->error));
-
-mysqli_close($link);
-?>
---INI--
-mysqli.allow_local_infile=1
---FILE--
-<?php
-       require_once("table.inc");
-       require_once('local_infile_tools.inc');
-
-       function callback_closefile($fp, &$buffer, $buflen, &$error) {
-               static $invocation = 0;
-
-               printf("Callback: %d\n", $invocation++);
-               flush();
-               if (is_resource($fp))
-                       fclose($fp);
-               $buffer = "1;'a';\n";
-               if ($invocation > 10)
-                       return 0;
-
-               return strlen($buffer);
-       }
-
-       $file = create_standard_csv(1);
-       $expected = array(array('id' => 1, 'label' => 'a'));
-       try_handler(20, $link, $file, 'callback_closefile', $expected);
-
-       mysqli_close($link);
-       print "done!";
-?>
---CLEAN--
-<?php
-       require_once("clean_table.inc");
-?>
---EXPECTF--
-Callback set to 'callback_closefile'
-Callback: 0
-Callback: 1
-Callback: 2
-Callback: 3
-Callback: 4
-Callback: 5
-Callback: 6
-Callback: 7
-Callback: 8
-Callback: 9
-Callback: 10
-done!
\ No newline at end of file
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_closures.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_closures.phpt
deleted file mode 100755 (executable)
index ad7ab32..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
---TEST--
-mysqli_set_local_infile_handler() - use closures as handler
---SKIPIF--
-<?php
-require_once('skipif.inc');
-require_once('skipifemb.inc');
-require_once('skipifconnectfailure.inc');
-
-if (!function_exists('mysqli_set_local_infile_handler'))
-       die("skip - function not available.");
-
-require_once('connect.inc');
-if (!$TEST_EXPERIMENTAL)
-       die("skip - experimental (= unsupported) feature");
-
-if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
-       die("skip Cannot connect to MySQL");
-
-include_once("local_infile_tools.inc");
-if ($msg = check_local_infile_support($link, $engine))
-       die(sprintf("skip %s, [%d] %s", $msg, $link->errno, $link->error));
-
-mysqli_close($link);
-?>
---INI--
-mysqli.allow_local_infile=1
---FILE--
-<?php
-       require_once('connect.inc');
-       require_once('local_infile_tools.inc');
-       require_once('table.inc');
-
-       $callback_replace_buffer = function ($fp, &$buffer, $buflen, &$error) {
-               static $invocation = 0;
-
-               printf("Callback: %d\n", $invocation++);
-               flush();
-
-               $buffer = fread($fp, $buflen);
-
-               if ($invocation > 10)
-                       return 0;
-
-               return strlen($buffer);
-       };
-
-       $file = create_standard_csv(1);
-       if (!try_handler(20, $link, $file, $callback_replace_buffer, null))
-               printf("[008] Failure\n");
-
-       mysqli_close($link);
-       print "done!";
-?>
---CLEAN--
-<?php
-       require_once("clean_table.inc");
-?>
---EXPECTF--
-Callback set to 'Closure object'
-Callback: 0
-Callback: 1
-done!
\ No newline at end of file
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_kill_link.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_kill_link.phpt
deleted file mode 100644 (file)
index b2b42a2..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
---TEST--
-mysqli_set_local_infile_handler() - kill database link
---SKIPIF--
-<?php
-require_once('skipif.inc');
-require_once('skipifemb.inc');
-require_once('skipifconnectfailure.inc');
-
-if (!function_exists('mysqli_set_local_infile_handler'))
-       die("skip - function not available.");
-
-require_once('connect.inc');
-if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
-       die("skip Cannot connect to MySQL");
-
-include_once("local_infile_tools.inc");
-if ($msg = check_local_infile_support($link, $engine))
-       die(sprintf("skip %s, [%d] %s", $msg, $link->errno, $link->error));
-
-mysqli_close($link);
-?>
---INI--
-mysqli.allow_local_infile=1
---FILE--
-<?php
-       require("table.inc");
-       require_once('local_infile_tools.inc');
-
-       function callback_kill_link($fp, &$buffer, $buflen, &$error) {
-               global $link;
-               static $invocation = 0;
-
-               printf("Callback: %d\n", $invocation++);
-               flush();
-               if (is_object($link))
-                       mysqli_kill($link, mysqli_thread_id($link));
-
-               $buffer = "1;'a';\n";
-               if ($invocation > 10)
-                       return 0;
-
-               mysqli_set_local_infile_default($link);
-               return strlen($buffer);
-       }
-
-       $file = create_standard_csv(1);
-       $expected = array(array('id' => 1, 'label' => 'a'));
-       try_handler(20, $link, $file, 'callback_kill_link', $expected);
-
-       mysqli_close($link);
-       print "done!";
-?>
---CLEAN--
-<?php
-       require_once("clean_table.inc");
-?>
---EXPECTF--
-Callback set to 'callback_kill_link'
-Callback: 0
-[022] LOAD DATA failed, [2000] Can't execute load data local init callback function
-done!
\ No newline at end of file
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_negative_len.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_negative_len.phpt
deleted file mode 100644 (file)
index 16e38c5..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
---TEST--
-mysqli_set_local_infile_handler() - negative return value/buflen to indicate an error
---SKIPIF--
-<?php
-require_once('skipif.inc');
-require_once('skipifemb.inc');
-require_once('skipifconnectfailure.inc');
-
-if (!function_exists('mysqli_set_local_infile_handler'))
-       die("skip - function not available.");
-
-require_once('connect.inc');
-if (!$TEST_EXPERIMENTAL)
-       die("skip - experimental (= unsupported) feature");
-
-if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
-       die("skip Cannot connect to MySQL");
-
-include_once("local_infile_tools.inc");
-if ($msg = check_local_infile_support($link, $engine))
-       die(sprintf("skip %s, [%d] %s", $msg, $link->errno, $link->error));
-
-mysqli_close($link);
-?>
---INI--
-mysqli.allow_local_infile=1
---FILE--
-<?php
-       require_once('connect.inc');
-       require_once('local_infile_tools.inc');
-       require_once('table.inc');
-
-       function callback_negative_len($fp, &$buffer, $buflen, &$error) {
-               static $invocation = 0;
-
-               printf("Callback: %d\n", $invocation);
-               $buffer = fread($fp, $buflen);
-
-               $error = "negative length means error";
-               return -1;
-       }
-
-       $file = create_standard_csv(1);
-       $expected = array();
-       try_handler(20, $link, $file, 'callback_negative_len', $expected);
-
-       mysqli_close($link);
-       print "done!";
-?>
---CLEAN--
-<?php
-       require_once("clean_table.inc");
-?>
---EXPECTF--
-Callback set to 'callback_negative_len'
-Callback: 0
-[022] LOAD DATA failed, [2000] negative length means error
-done!
\ No newline at end of file
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_nested_call.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_nested_call.phpt
deleted file mode 100644 (file)
index 4663fe2..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
---TEST--
-mysqli_set_local_infile_handler() - nested calls
---SKIPIF--
-<?php
-require_once('skipif.inc');
-require_once('skipifemb.inc');
-require_once('skipifconnectfailure.inc');
-
-if (!function_exists('mysqli_set_local_infile_handler'))
-       die("skip - function not available.");
-
-require_once('connect.inc');
-if (!$TEST_EXPERIMENTAL)
-       die("skip - experimental (= unsupported) feature");
-
-if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
-       die("skip Cannot connect to MySQL");
-
-include_once("local_infile_tools.inc");
-if ($msg = check_local_infile_support($link, $engine))
-       die(sprintf("skip %s, [%d] %s", $msg, $link->errno, $link->error));
-
-mysqli_close($link);
-?>
---INI--
-mysqli.allow_local_infile=1
---FILE--
-<?php
-       require_once('connect.inc');
-       require_once('local_infile_tools.inc');
-       require_once('table.inc');
-
-       function callback_simple($fp, &$buffer, $buflen, &$error) {
-               static $invocation = 0;
-
-               printf("Callback - callback_simple(): %d\n", $invocation);
-
-               $invocation++;
-               if (!is_resource($fp))
-                       printf("[012] First argument passed to callback is not a resource but %s/%s\n",
-                               $fp, gettype($fp));
-
-               if (!$buffer = fread($fp, $buflen)) {
-                       if ($invocation == 1) {
-                               printf("[013] Cannot read from stream\n");
-                               $error = 'Cannot read from stream';
-                       } else {
-                               return strlen($buffer);
-                       }
-               }
-
-               $lines = explode("\n", $buffer);
-               if (count($lines) != 4 && strlen($buffer) > 0) {
-                       printf("[014] Test is too simple to handle a buffer of size %d that cannot hold all lines\n", $buflen);
-                       $error = 'Parser too simple';
-               }
-
-               $buffer = '';
-               foreach ($lines as $k => $line) {
-                       if ('' === trim($line))
-                               continue;
-
-                       $columns = explode(';', $line);
-                       if (empty($columns)) {
-                               printf("[015] Cannot parse columns\n");
-                               $error = 'Cannot parse columns';
-                       }
-
-                       // increase id column value
-                       $columns[0] += 1;
-                       $buffer .= implode(';', $columns);
-                       $buffer .= "\n";
-               }
-
-               /* report the wrong length */
-               return strlen($buffer);
-       }
-
-       function callback_report_short_len($fp, &$buffer, $buflen, &$error) {
-               static $invocation = 0;
-
-               printf("Callback - report_short_len(): %d\n", $invocation++);
-               return callback_simple($fp, $buffer, $buflen, $error);
-       }
-
-       $file = create_standard_csv(1);
-       $expected = array(
-               array('id' => 98,   'label' => 'x'),
-               array('id' => 99,   'label' => 'y'),
-               array('id' => 100,  'label' => 'z'),
-       );
-       try_handler(20, $link, $file, 'callback_report_short_len', $expected);
-
-       mysqli_close($link);
-       print "done!";
-?>
---CLEAN--
-<?php
-       require_once("clean_table.inc");
-?>
---EXPECTF--
-Callback set to 'callback_report_short_len'
-Callback - report_short_len(): 0
-Callback - callback_simple(): 0
-Callback - report_short_len(): 1
-Callback - callback_simple(): 1
-done!
\ No newline at end of file
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_new_query.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_new_query.phpt
deleted file mode 100644 (file)
index ca06435..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
---TEST--
-mysqli_set_local_infile_handler() - run new query on db link
---SKIPIF--
-<?php
-require_once('skipif.inc');
-require_once('skipifemb.inc');
-require_once('skipifconnectfailure.inc');
-
-if (!function_exists('mysqli_set_local_infile_handler'))
-       die("skip - function not available.");
-
-require_once('connect.inc');
-if (!$TEST_EXPERIMENTAL)
-       die("skip - experimental (= unsupported) feature");
-
-if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
-       die("skip Cannot connect to MySQL");
-
-include_once("local_infile_tools.inc");
-if ($msg = check_local_infile_support($link, $engine))
-       die(sprintf("skip %s, [%d] %s", $msg, $link->errno, $link->error));
-
-mysqli_close($link);
-?>
---INI--
-mysqli.allow_local_infile=1
---FILE--
-<?php
-       require_once('connect.inc');
-       require_once('local_infile_tools.inc');
-       require_once('table.inc');
-
-       function callback_new_query($fp, &$buffer, $buflen, &$error) {
-               global $link;
-               static $invocation = 0;
-
-               printf("Callback: %d\n", $invocation++);
-               flush();
-               if (is_object($link)) {
-                       if (!$res = mysqli_query($link, "SELECT id, label FROM test")) {
-                               printf("[Callback 001 - %03d] Cannot run query, [%d] %s\n",
-                                       $invocation, mysqli_errno($link), mysqli_error($link));
-                       }
-                       if ($res)
-                               mysqli_free_result($res);
-                       }
-                       $buffer = "1;'a';\n";
-                       if ($invocation > 10)
-                               return 0;
-
-                       mysqli_set_local_infile_default($link);
-                       return strlen($buffer);
-       }
-
-       $file = create_standard_csv(1);
-       $expected = array(array('id' => 1, 'label' => 'a'));
-       try_handler(20, $link, $file, 'callback_new_query', $expected);
-
-       mysqli_close($link);
-       print "done!";
-?>
---CLEAN--
-<?php
-       require_once("clean_table.inc");
-?>
---EXPECTF--
-Callback set to 'callback_new_query'
-Callback: 0
-[Callback 001 - 001] Cannot run query, [2014] Commands out of sync; you can't run this command now
-[022] LOAD DATA failed, [2000] Can't execute load data local init callback function
-done!
\ No newline at end of file
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_nofileop.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_nofileop.phpt
deleted file mode 100644 (file)
index 601a09e..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
---TEST--
-mysqli_set_local_infile_handler() - do not use the file pointer
---SKIPIF--
-<?php
-require_once('skipif.inc');
-require_once('skipifemb.inc');
-require_once('skipifconnectfailure.inc');
-
-if (!function_exists('mysqli_set_local_infile_handler'))
-       die("skip - function not available.");
-
-require_once('connect.inc');
-if (!$TEST_EXPERIMENTAL)
-       die("skip - experimental (= unsupported) feature");
-
-if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
-       die("skip Cannot connect to MySQL");
-
-include_once("local_infile_tools.inc");
-if ($msg = check_local_infile_support($link, $engine))
-       die(sprintf("skip %s, [%d] %s", $msg, $link->errno, $link->error));
-
-mysqli_close($link);
-?>
---INI--
-mysqli.allow_local_infile=1
---FILE--
-<?php
-       require_once('connect.inc');
-       require_once('local_infile_tools.inc');
-       require_once('table.inc');
-
-       function callback_nofileop($fp, &$buffer, $buflen, &$error) {
-               static $invocation = 0;
-
-               printf("Callback: %d\n", $invocation++);
-               flush();
-
-               $buffer = "1;'a';\n";
-               if ($invocation > 10)
-                       return 0;
-
-               return strlen($buffer);
-       }
-
-       $file = create_standard_csv(1);
-       $expected = array(array('id' => 1, 'label' => 'a'));
-       try_handler(20, $link, $file, 'callback_nofileop', $expected);
-
-       mysqli_close($link);
-       print "done!";
-?>
---CLEAN--
-<?php
-       require_once("clean_table.inc");
-?>
---EXPECTF--
-Callback set to 'callback_nofileop'
-Callback: 0
-Callback: 1
-Callback: 2
-Callback: 3
-Callback: 4
-Callback: 5
-Callback: 6
-Callback: 7
-Callback: 8
-Callback: 9
-Callback: 10
-done!
\ No newline at end of file
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_openbasedir.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_openbasedir.phpt
deleted file mode 100644 (file)
index 7163aca..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
---TEST--
-mysqli_set_local_infile_handler() - open basedir restrictions
---SKIPIF--
-<?php
-if (!$fp = @fopen('skipif.inc', 'r'))
-  die("skip open_basedir restrictions forbid opening include files");
-
-include_once('skipif.inc');
-include_once('skipifemb.inc');
-include_once('skipifconnectfailure.inc');
-
-if (!function_exists('mysqli_set_local_infile_handler'))
-       die("skip - function not available.");
-
-include_once('connect.inc');
-if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
-       die("skip Cannot connect to MySQL");
-
-if (!$res = mysqli_query($link, 'SHOW VARIABLES LIKE "local_infile"')) {
-       mysqli_close($link);
-       die("skip Cannot check if Server variable 'local_infile' is set to 'ON'");
-}
-
-include_once("local_infile_tools.inc");
-if ($msg = check_local_infile_support($link, $engine))
-       die(sprintf("skip %s, [%d] %s", $msg, $link->errno, $link->error));
-
-mysqli_close($link);
-?>
---INI--
-open_basedir="."
---FILE--
-<?php
-       @include('connect.inc');
-       if (!isset($db)) {
-               // stupid run-tests.php - any idea how to set system ini setting dynamically???
-               print "Warning: tempnam(): open_basedir restriction in effect. File(grrr) is not within the allowed path(s): (grrr) in grrr on line 0
-[005 + 1] Cannot create CVS file ''
-Callback set to 'callback_simple'
-[012] LOAD DATA failed, [0] grrr
-[014/0] [0] ''
-done!";
-               die();
-       }
-
-       require_once('connect.inc');
-       require_once('local_infile_tools.inc');
-       require_once('table.inc');
-
-       function callback_simple($fp, &$buffer, $buflen, &$error) {
-               static $invocation = 0;
-
-               printf("Callback: %d\n", $invocation);
-
-               $invocation++;
-               if (!is_resource($fp))
-                       printf("[012] First argument passed to callback is not a resource but %s/%s\n",
-                               $fp, gettype($fp));
-
-               if (!$buffer = fread($fp, $buflen)) {
-                       if ($invocation == 1) {
-                               printf("[013] Cannot read from stream\n");
-                                       $error = 'Cannot read from stream';
-                       } else {
-                               return strlen($buffer);
-                       }
-               }
-
-               $lines = explode("\n", $buffer);
-               if (count($lines) != 4 && strlen($buffer) > 0) {
-                       printf("[014] Test is too simple to handle a buffer of size %d that cannot hold all lines\n", $buflen);
-                       $error = 'Parser too simple';
-               }
-
-               $buffer = '';
-               foreach ($lines as $k => $line) {
-                       if ('' === trim($line))
-                               continue;
-
-                       $columns = explode(';', $line);
-                       if (empty($columns)) {
-                               printf("[015] Cannot parse columns\n");
-                               $error = 'Cannot parse columns';
-                       }
-
-                       // increase id column value
-                       $columns[0] += 1;
-                       $buffer .= implode(';', $columns);
-                       $buffer .= "\n";
-               }
-
-               return strlen($buffer);
-       }
-
-       $file = create_standard_csv(5);
-       $expected = array(
-               array('id' => 98,   'label' => 'x'),
-               array('id' => 99,   'label' => 'y'),
-               array('id' => 100,  'label' => 'z'),
-       );
-       try_handler(10, $link, $file, 'callback_simple', $expected);
-       mysqli_close($link);
-       print "done!";
-?>
---CLEAN--
-<?php
-       require_once("clean_table.inc");
-?>
---EXPECTF--
-Warning: tempnam(): open_basedir restriction in effect. File(%s) is not within the allowed path(s): (%s) in %s on line %d
-[005 + 1] Cannot create CVS file ''
-Callback set to 'callback_simple'
-[012] LOAD DATA failed, [%d] %s
-[014/0] [0] ''
-done!
\ No newline at end of file
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_replace_buffer.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_replace_buffer.phpt
deleted file mode 100644 (file)
index 0d4024e..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
---TEST--
-mysqli_set_local_infile_handler() - replace buffer pointer
---SKIPIF--
-<?php
-require_once('skipif.inc');
-require_once('skipifemb.inc');
-require_once('skipifconnectfailure.inc');
-
-if (!function_exists('mysqli_set_local_infile_handler'))
-       die("skip - function not available.");
-
-require_once('connect.inc');
-if (!$TEST_EXPERIMENTAL)
-       die("skip - experimental (= unsupported) feature");
-
-if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
-       die("skip Cannot connect to MySQL");
-
-include_once("local_infile_tools.inc");
-if ($msg = check_local_infile_support($link, $engine))
-       die(sprintf("skip %s, [%d] %s", $msg, $link->errno, $link->error));
-
-mysqli_close($link);
-?>
---INI--
-mysqli.allow_local_infile=1
---FILE--
-<?php
-       require_once('connect.inc');
-       require_once('local_infile_tools.inc');
-       require_once('table.inc');
-
-       function callback_replace_buffer($fp, &$buffer, $buflen, &$error) {
-               static $invocation = 0;
-
-               printf("Callback: %d\n", $invocation++);
-               flush();
-
-               $buffer = fread($fp, $buflen);
-
-               $ret = "1;'a';\n";
-               $buffer = $ret;
-
-               $num_chars = ((version_compare(PHP_VERSION, '5.9.9', '>') == 1)) ? floor($buflen / 2) : $buflen;
-               assert(strlen($buffer) < $num_chars);
-
-               if ($invocation > 10)
-                       return 0;
-
-               return strlen($buffer);
-       }
-
-       $file = create_standard_csv(1);
-       $expected = array(array('id' => 1, 'label' => 'a'));
-       if (!try_handler(20, $link, $file, 'callback_replace_buffer', $expected))
-               printf("[008] Failure\n");
-
-       mysqli_close($link);
-       print "done!";
-?>
---CLEAN--
-<?php
-       require_once("clean_table.inc");
-?>
---EXPECTF--
-Callback set to 'callback_replace_buffer'
-Callback: 0
-Callback: 1
-Callback: 2
-Callback: 3
-Callback: 4
-Callback: 5
-Callback: 6
-Callback: 7
-Callback: 8
-Callback: 9
-Callback: 10
-done!
\ No newline at end of file
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_short_len.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_short_len.phpt
deleted file mode 100644 (file)
index b3144e4..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
---TEST--
-mysqli_set_local_infile_handler() - report shorter buffer
---SKIPIF--
-<?php
-require_once('skipif.inc');
-require_once('skipifemb.inc');
-require_once('skipifconnectfailure.inc');
-
-if (!function_exists('mysqli_set_local_infile_handler'))
-       die("skip - function not available.");
-
-require_once('connect.inc');
-if (!$TEST_EXPERIMENTAL)
-       die("skip - experimental (= unsupported) feature");
-
-if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
-       die("skip Cannot connect to MySQL");
-
-include_once("local_infile_tools.inc");
-if ($msg = check_local_infile_support($link, $engine))
-       die(sprintf("skip %s, [%d] %s", $msg, $link->errno, $link->error));
-
-mysqli_close($link);
-?>
---INI--
-mysqli.allow_local_infile=1
---FILE--
-<?php
-       require_once('connect.inc');
-       require_once('local_infile_tools.inc');
-       require_once('table.inc');
-
-       function callback_short_len($fp, &$buffer, $buflen, &$error) {
-               static $invocation = 0;
-
-               printf("Callback: %d\n", $invocation);
-
-               $invocation++;
-               if (!is_resource($fp))
-                       printf("[012] First argument passed to callback is not a resource but %s/%s\n",
-                               $fp, gettype($fp));
-
-               if (!$buffer = fread($fp, $buflen)) {
-                       if ($invocation == 1) {
-                               printf("[013] Cannot read from stream\n");
-                               $error = 'Cannot read from stream';
-                       } else {
-                               return strlen($buffer);
-                       }
-               }
-
-               $lines = explode("\n", $buffer);
-               if (count($lines) != 4 && strlen($buffer) > 0) {
-                       printf("[014] Test is too simple to handle a buffer of size %d that cannot hold all lines\n", $buflen);
-                       $error = 'Parser too simple';
-               }
-
-               $buffer = '';
-               foreach ($lines as $k => $line) {
-                       if ('' === trim($line))
-                                       continue;
-
-                       $columns = explode(';', $line);
-                       if (empty($columns)) {
-                               printf("[015] Cannot parse columns\n");
-                               $error = 'Cannot parse columns';
-                       }
-
-                       // increase id column value
-                       $columns[0] += 1;
-                       $buffer .= implode(';', $columns);
-                       $buffer .= "\n";
-               }
-
-               /* report the wrong length */
-               return strlen($buffer) - 1;
-       }
-
-       $file = create_standard_csv(1);
-       $expected = array(
-               array('id' => 98,   'label' => 'x'),
-               array('id' => 99,   'label' => 'y'),
-               array('id' => 100,  'label' => 'z'),
-       );
-       try_handler(20, $link, $file, 'callback_short_len', $expected);
-
-       mysqli_close($link);
-       print "done!";
-?>
---CLEAN--
-<?php
-       require_once("clean_table.inc");
-?>
---EXPECTF--
-Callback set to 'callback_short_len'
-Callback: 0
-
-Warning: mysqli_query(): Mismatch between the return value of the callback and the content length of the buffer. in %s on line %d
-[022] LOAD DATA failed, [2000] Mismatch between the return value of the callback and the content length of the buffer.
-[024/0] [0] ''
-done!
\ No newline at end of file
diff --git a/ext/mysqli/tests/mysqli_set_local_infile_handler_unregister.phpt b/ext/mysqli/tests/mysqli_set_local_infile_handler_unregister.phpt
deleted file mode 100644 (file)
index f287f4d..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
---TEST--
-mysqli_set_local_infile_handler() - do not use the file pointer
---SKIPIF--
-<?php
-require_once('skipif.inc');
-require_once('skipifemb.inc');
-require_once('skipifconnectfailure.inc');
-
-if (!function_exists('mysqli_set_local_infile_handler'))
-       die("skip - function not available.");
-
-require_once('connect.inc');
-if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
-       die("skip Cannot connect to MySQL");
-
-include_once("local_infile_tools.inc");
-if ($msg = check_local_infile_support($link, $engine))
-       die(sprintf("skip %s, [%d] %s", $msg, $link->errno, $link->error));
-
-mysqli_close($link);
-?>
---INI--
-mysqli.allow_local_infile=1
---FILE--
-<?php
-       require_once('connect.inc');
-       require_once('local_infile_tools.inc');
-       require_once('table.inc');
-
-       function callback_unregister($fp, &$buffer, $buflen, &$error) {
-               global $link;
-               static $invocation = 0;
-
-               printf("Callback: %d\n", $invocation++);
-               flush();
-               if (is_resource($fp))
-                               fclose($fp);
-               $buffer = "1;'a';\n";
-               if ($invocation > 10)
-                       return 0;
-
-               mysqli_set_local_infile_default($link);
-               return strlen($buffer);
-       }
-
-       $file = create_standard_csv(1);
-       $expected = array(array('id' => 1, 'label' => 'a'));
-       try_handler(20, $link, $file, 'callback_unregister', $expected);
-
-       mysqli_close($link);
-       print "done!";
-?>
---CLEAN--
-<?php
-       require_once("clean_table.inc");
-?>
---EXPECTF--
-Callback set to 'callback_unregister'
-Callback: 0
-
-Warning: mysqli_query(): File handle closed in %s on line %d
-[022] LOAD DATA failed, [2000] File handle closed
-[024/0] [0] ''
-done!