diff options
-rw-r--r-- | mysql-test/include/have_example_plugin.inc | 16 | ||||
-rw-r--r-- | mysql-test/include/have_udf.inc | 2 | ||||
-rwxr-xr-x | mysql-test/mysql-test-run.pl | 30 | ||||
-rw-r--r-- | mysql-test/r/have_dynamic_loading.require (renamed from mysql-test/r/have_udf.require) | 0 | ||||
-rw-r--r-- | mysql-test/r/have_example_plugin.require | 2 | ||||
-rw-r--r-- | mysql-test/r/plugin.result | 15 | ||||
-rw-r--r-- | mysql-test/t/plugin.test | 26 |
7 files changed, 85 insertions, 6 deletions
diff --git a/mysql-test/include/have_example_plugin.inc b/mysql-test/include/have_example_plugin.inc new file mode 100644 index 00000000000..b84f6d2f161 --- /dev/null +++ b/mysql-test/include/have_example_plugin.inc @@ -0,0 +1,16 @@ +# +# Check if server has support for loading udf's +# i.e it will support dlopen +# +--require r/have_dynamic_loading.require +disable_query_log; +show variables like "have_dynamic_loading"; +enable_query_log; + +# +# Check if the variable EXAMPLE_PLUGIN is set +# +--require r/have_example_plugin.require +disable_query_log; +eval select LENGTH("$EXAMPLE_PLUGIN") > 0 as "have_example_plugin"; +enable_query_log; diff --git a/mysql-test/include/have_udf.inc b/mysql-test/include/have_udf.inc index 42b9942f74d..068ce9026e0 100644 --- a/mysql-test/include/have_udf.inc +++ b/mysql-test/include/have_udf.inc @@ -2,7 +2,7 @@ # Check if server has support for loading udf's # i.e it will support dlopen # ---require r/have_udf.require +--require r/have_dynamic_loading.require disable_query_log; show variables like "have_dynamic_loading"; enable_query_log; diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index c8ed0ecb6fb..0c5c0f2b3fa 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -159,6 +159,7 @@ our $exe_im; our $exe_my_print_defaults; our $exe_perror; our $lib_udf_example; +our $lib_example_plugin; our $exe_libtool; our $opt_bench= 0; @@ -1493,6 +1494,11 @@ sub executable_setup () { mtr_file_exists(vs_config_dirs('sql', 'udf_example.dll'), "$glob_basedir/sql/.libs/udf_example.so",); + # Look for the ha_example library + $lib_example_plugin= + mtr_file_exists(vs_config_dirs('storage/example', 'ha_example.dll'), + "$glob_basedir/storage/example/.libs/ha_example.so",); + # Look for mysqltest executable if ( $glob_use_embedded_server ) { @@ -1649,6 +1655,14 @@ sub environment_setup () { } # -------------------------------------------------------------------------- + # Add the path where mysqld will find ha_example.so + # -------------------------------------------------------------------------- + if ( $lib_example_plugin ) + { + push(@ld_library_paths, dirname($lib_example_plugin)); + } + + # -------------------------------------------------------------------------- # Valgrind need to be run with debug libraries otherwise it's almost # impossible to add correct supressions, that means if "/usr/lib/debug" # is available, it should be added to @@ -1922,10 +1936,11 @@ sub environment_setup () { $ENV{'UDF_EXAMPLE_LIB'}= ($lib_udf_example ? basename($lib_udf_example) : ""); - $ENV{'LD_LIBRARY_PATH'}= - ($lib_udf_example ? dirname($lib_udf_example) : "") . - ($ENV{'LD_LIBRARY_PATH'} ? ":$ENV{'LD_LIBRARY_PATH'}" : ""); - + # ---------------------------------------------------- + # Add the path where mysqld will find ha_example.so + # ---------------------------------------------------- + $ENV{'EXAMPLE_PLUGIN'}= + ($lib_example_plugin ? basename($lib_example_plugin) : ""); # ---------------------------------------------------- # We are nice and report a bit about our settings @@ -3609,6 +3624,9 @@ sub mysqld_arguments ($$$$$) { # Turn on logging, will be sent to tables mtr_add_arg($args, "%s--log=", $prefix); } + + mtr_add_arg($args, "%s--plugin_dir=%s", $prefix, + dirname($lib_example_plugin)); } if ( $type eq 'slave' ) @@ -4480,7 +4498,9 @@ sub run_mysqltest ($) { } else # component_id == mysqld { - mtr_add_arg($args, "--socket=%s", $master->[0]->{'path_sock'}); +# mtr_add_arg($args, "--socket=%s", $master->[0]->{'path_sock'}); +mtr_add_arg($args, "--host=127.0.0.1"); + mtr_add_arg($args, "--port=%d", $master->[0]->{'port'}); mtr_add_arg($args, "--database=test"); mtr_add_arg($args, "--user=%s", $opt_user); diff --git a/mysql-test/r/have_udf.require b/mysql-test/r/have_dynamic_loading.require index 2d21f65e4ac..2d21f65e4ac 100644 --- a/mysql-test/r/have_udf.require +++ b/mysql-test/r/have_dynamic_loading.require diff --git a/mysql-test/r/have_example_plugin.require b/mysql-test/r/have_example_plugin.require new file mode 100644 index 00000000000..291b8231cbb --- /dev/null +++ b/mysql-test/r/have_example_plugin.require @@ -0,0 +1,2 @@ +have_example_plugin +1 diff --git a/mysql-test/r/plugin.result b/mysql-test/r/plugin.result new file mode 100644 index 00000000000..44641858fca --- /dev/null +++ b/mysql-test/r/plugin.result @@ -0,0 +1,15 @@ +CREATE TABLE t1(a int) ENGINE=EXAMPLE; +Warnings: +Error 1286 Unknown table engine 'EXAMPLE' +DROP TABLE t1; +INSTALL PLUGIN example SONAME 'ha_example.so'; +INSTALL PLUGIN EXAMPLE SONAME 'ha_example.so'; +ERROR HY000: Function 'EXAMPLE' already exists +UNINSTALL PLUGIN example; +INSTALL PLUGIN example SONAME 'ha_example.so'; +CREATE TABLE t1(a int) ENGINE=EXAMPLE; +SELECT * FROM t1; +a +DROP TABLE t1; +UNINSTALL PLUGIN non_exist; +ERROR 42000: PLUGIN non_exist does not exist diff --git a/mysql-test/t/plugin.test b/mysql-test/t/plugin.test new file mode 100644 index 00000000000..80c1de00b8e --- /dev/null +++ b/mysql-test/t/plugin.test @@ -0,0 +1,26 @@ +--source include/have_example_plugin.inc + +CREATE TABLE t1(a int) ENGINE=EXAMPLE; +DROP TABLE t1; + +INSTALL PLUGIN example SONAME 'ha_example.so'; +--error 1125 +INSTALL PLUGIN EXAMPLE SONAME 'ha_example.so'; + +UNINSTALL PLUGIN example; + +INSTALL PLUGIN example SONAME 'ha_example.so'; + +CREATE TABLE t1(a int) ENGINE=EXAMPLE; + +# Let's do some advanced ops with the example engine :) +SELECT * FROM t1; + +DROP TABLE t1; + +# Waiting for fix to BUG#22694 +#UNINSTALL PLUGIN example; +#UNINSTALL PLUGIN EXAMPLE; + +--error 1305 +UNINSTALL PLUGIN non_exist; |