1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
|
--source include/not_asan_mac.inc
-- source include/have_validate_password_plugin.inc
# Save the initial number of concurrent sessions
--source include/count_sessions.inc
--echo #
--echo # WL#8688: Support ability to persist SET GLOBAL settings
--echo #
SET PERSIST server_id=47, @@persist.general_log=0;
SET PERSIST concurrent_insert=NEVER;
--echo # TEST plugin variables
call mtr.add_suppression("Dictionary file not specified");
--replace_regex /\.dll/.so/
eval INSTALL PLUGIN validate_password SONAME '$VALIDATE_PASSWORD';
--echo # before restart
SELECT @@global.validate_password_policy, @@global.validate_password_length;
--echo # persist plugin variables
SET PERSIST validate_password_policy= 2;
SET PERSIST validate_password_length= 13;
--echo # Restart server
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--enable_reconnect
--source include/wait_until_connected_again.inc
--echo # after restart
SELECT @@global.server_id;
SELECT @@global.general_log;
SELECT @@global.concurrent_insert;
SELECT @@global.validate_password_policy;
SELECT @@global.validate_password_length;
--echo # uninstall plugin
UNINSTALL PLUGIN validate_password;
CALL mtr.add_suppression("currently unknown variable 'validate_password_*");
--echo # Restart server after plugin uninstall this should report
--echo # warnings in server log
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--enable_reconnect
--source include/wait_until_connected_again.inc
# Turn off reconnect again
--disable_reconnect
--echo # Search for warnings in error log.
--let $log_file= $MYSQLTEST_VARDIR/log/mysqld.1.err
--let LOGF= $log_file
CALL mtr.add_suppression("currently unknown variable 'validate_password_*");
let $MYSQLD_DATADIR= `select @@datadir`;
--remove_file $MYSQLD_DATADIR/mysqld-auto.cnf
--echo # Restart server
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--enable_reconnect
--source include/wait_until_connected_again.inc
--source include/xplugin_wait_for_interfaces.inc
--echo # Test RESET PERSIST for plugin variables.
--replace_regex /\.dll/.so/
eval INSTALL PLUGIN validate_password SONAME '$VALIDATE_PASSWORD';
SELECT * FROM performance_schema.persisted_variables ORDER BY 1;
SET PERSIST validate_password_policy= 2;
# return 1 row
SELECT * FROM performance_schema.persisted_variables ORDER BY 1;
SET PERSIST validate_password_length= 13;
# return 2 rows
SELECT * FROM performance_schema.persisted_variables ORDER BY 1;
RESET PERSIST validate_password_length;
# return 1 row
SELECT * FROM performance_schema.persisted_variables ORDER BY 1;
--echo # uninstall plugin
UNINSTALL PLUGIN validate_password;
# return 1 row
SELECT * FROM performance_schema.persisted_variables ORDER BY 1;
--echo # Test RESET PERSIST after plugin is uninstalled
RESET PERSIST;
# return 0 rows
SELECT * FROM performance_schema.persisted_variables ORDER BY 1;
--echo #
--echo # Bug #27924206: SET PERSIST DOES NOT FLUSH VALUE FROM MEMORY
--echo #
# case 1: Test RESET PERSIST <plugin variable>;
--replace_regex /\.dll/.so/
eval INSTALL PLUGIN validate_password SONAME '$VALIDATE_PASSWORD';
SET @@persist.validate_password_length= 15;
UNINSTALL PLUGIN validate_password;
--echo # Restart server
--source include/restart_mysqld.inc
--replace_regex /\.dll/.so/
eval INSTALL PLUGIN validate_password SONAME '$VALIDATE_PASSWORD';
SELECT @@GLOBAL.validate_password_length;
SET PERSIST validate_password_length= 9;
SELECT @@GLOBAL.validate_password_length;
RESET PERSIST validate_password_length;
UNINSTALL PLUGIN validate_password;
--error ER_UNKNOWN_SYSTEM_VARIABLE
SELECT @@GLOBAL.validate_password_length;
--replace_regex /\.dll/.so/
eval INSTALL PLUGIN validate_password SONAME '$VALIDATE_PASSWORD';
# should return default value 8
SELECT @@GLOBAL.validate_password_length;
# case 1: Test RESET PERSIST;
SET @@persist.validate_password_length= 11;
UNINSTALL PLUGIN validate_password;
--echo # Restart server
--source include/restart_mysqld.inc
--replace_regex /\.dll/.so/
eval INSTALL PLUGIN validate_password SONAME '$VALIDATE_PASSWORD';
SELECT @@GLOBAL.validate_password_length;
SET PERSIST validate_password_length= 19;
SELECT @@GLOBAL.validate_password_length;
RESET PERSIST;
UNINSTALL PLUGIN validate_password;
--error ER_UNKNOWN_SYSTEM_VARIABLE
SELECT @@GLOBAL.validate_password_length;
--replace_regex /\.dll/.so/
eval INSTALL PLUGIN validate_password SONAME '$VALIDATE_PASSWORD';
# should return default value 8
SELECT @@GLOBAL.validate_password_length;
# Cleanup
RESET PERSIST;
UNINSTALL plugin validate_password;
--remove_file $MYSQLD_DATADIR/mysqld-auto.cnf
--echo #
--echo # Bug #28823972: PERSISTED PLUGIN VARIABLE VALUE LOST AFTER
--echo # PLUGIN IS REINSTALLED
--echo #
--replace_regex /\.dll/.so/
eval INSTALL PLUGIN validate_password SONAME '$VALIDATE_PASSWORD';
SELECT @@GLOBAL.validate_password_length;
SET @@persist.validate_password_length= 15;
UNINSTALL PLUGIN validate_password;
--replace_regex /\.dll/.so/
eval INSTALL PLUGIN validate_password SONAME '$VALIDATE_PASSWORD';
# should report 15 not the default value
SELECT @@GLOBAL.validate_password_length;
# Cleanup
RESET PERSIST;
UNINSTALL plugin validate_password;
--remove_file $MYSQLD_DATADIR/mysqld-auto.cnf
|