diff options
author | unknown <knielsen@knielsen-hq.org> | 2012-02-21 22:15:44 +0100 |
---|---|---|
committer | unknown <knielsen@knielsen-hq.org> | 2012-02-21 22:15:44 +0100 |
commit | f6b68a10707c95e24f67d338eaaa03f1bd575598 (patch) | |
tree | bd7748f0d0a239145e4c02b223f523b4c571aacb /tests/mysql_client_test.c | |
parent | 4b9907979ce316be12a7ce2b62874b42edf2e39e (diff) | |
parent | 7c8ebb532eef543a9b98107c164a12a49e28d0ca (diff) | |
download | mariadb-git-f6b68a10707c95e24f67d338eaaa03f1bd575598.tar.gz |
Merge MWL#192: Non-blocking client library, into MariaDB 5.5.
Diffstat (limited to 'tests/mysql_client_test.c')
-rw-r--r-- | tests/mysql_client_test.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index f1475516586..6bee26129e7 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -38,6 +38,18 @@ #include <sql_common.h> #include <mysql/client_plugin.h> +/* + If non_blocking_api_enabled is true, we will re-define all the blocking + API functions as wrappers that call the corresponding non-blocking API + and use poll()/select() to wait for them to complete. This way we can get + a good coverage testing of the non-blocking API as well. +*/ +static my_bool non_blocking_api_enabled= 0; +#if !defined(EMBEDDED_LIBRARY) +#define WRAP_NONBLOCK_ENABLED non_blocking_api_enabled +#include "nonblock-wrappers.h" +#endif + #define VER "2.1" #define MAX_TEST_QUERY_LENGTH 300 /* MAX QUERY BUFFER LENGTH */ #define MAX_KEY MAX_INDEXES @@ -251,6 +263,8 @@ static MYSQL *mysql_client_init(MYSQL* con) if (res && shared_memory_base_name) mysql_options(res, MYSQL_SHARED_MEMORY_BASE_NAME, shared_memory_base_name); #endif + if (res && non_blocking_api_enabled) + mysql_options(res, MYSQL_OPT_NONBLOCK, 0); if (opt_plugin_dir && *opt_plugin_dir) mysql_options(res, MYSQL_PLUGIN_DIR, opt_plugin_dir); @@ -19937,6 +19951,10 @@ static struct my_option client_test_long_options[] = #endif {"vardir", 'v', "Data dir for tests.", (char**) &opt_vardir, (char**) &opt_vardir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, + {"non-blocking-api", 'n', + "Use the non-blocking client API for communication.", + &non_blocking_api_enabled, &non_blocking_api_enabled, 0, + GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, {"getopt-ll-test", 'g', "Option for testing bug in getopt library", &opt_getopt_ll_test, &opt_getopt_ll_test, 0, GET_LL, REQUIRED_ARG, 0, 0, LONGLONG_MAX, 0, 0, 0}, |