mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
229 lines
8.4 KiB
Text
229 lines
8.4 KiB
Text
|
###########################################################################
|
||
|
#
|
||
|
# This test suite checks the following statements:
|
||
|
# - CREATE INSTANCE <instance_name> [option1[=option1_value], ...];
|
||
|
# - DROP INSTANCE <instance_name>;
|
||
|
#
|
||
|
# For CREATE INSTANCE we check that:
|
||
|
# - CREATE INSTANCE succeeds for non-existing instance;
|
||
|
# - CREATE INSTANCE fails for existing instance;
|
||
|
# - CREATE INSTANCE can get additional options with and w/o values;
|
||
|
# - CREATE INSTANCE parses options and handles grammar errors correctly.
|
||
|
# Check that strings with spaces are handled correctly, unknown (for
|
||
|
# mysqld) options should also be handled;
|
||
|
# - CREATE INSTANCE updates both config file and internal configuration cache;
|
||
|
# - CREATE INSTANCE allows to create instances only with properly formed
|
||
|
# names (mysqld*);
|
||
|
#
|
||
|
# For DROP INSTANCE we check that:
|
||
|
# - DROP INSTANCE succeeds for existing instance;
|
||
|
# - DROP INSTANCE fails for non-existing instance;
|
||
|
# - DROP INSTANCE fails for active instance.
|
||
|
# - DROP INSTANCE updates both config file and internal configuration cache;
|
||
|
#
|
||
|
###########################################################################
|
||
|
|
||
|
--source include/im_check_os.inc
|
||
|
|
||
|
###########################################################################
|
||
|
#
|
||
|
# Check starting conditions.
|
||
|
#
|
||
|
###########################################################################
|
||
|
|
||
|
# Check that the configuration file contains only instances that we expect.
|
||
|
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep server_id $MYSQLTEST_VARDIR/im.cnf;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
|
||
|
# Check that mysqld1 is reported as running.
|
||
|
|
||
|
--sleep 3
|
||
|
# should be longer than monitoring interval and enough to start instance.
|
||
|
|
||
|
SHOW INSTANCES;
|
||
|
|
||
|
# Check that the expected mysqld instance is actually run (check that we can
|
||
|
# connect and execute something).
|
||
|
|
||
|
--echo
|
||
|
--echo ---> connection: mysql1_con
|
||
|
--connect (mysql1_con,localhost,root,,mysql,$IM_MYSQLD1_PORT,$IM_MYSQLD1_SOCK)
|
||
|
--connection mysql1_con
|
||
|
|
||
|
SHOW VARIABLES LIKE 'server_id';
|
||
|
|
||
|
--disconnect mysql1_con
|
||
|
|
||
|
--echo
|
||
|
--echo ---> connection: default
|
||
|
--connection default
|
||
|
|
||
|
###########################################################################
|
||
|
#
|
||
|
# CREATE INSTANCE tests.
|
||
|
#
|
||
|
###########################################################################
|
||
|
|
||
|
# Check that CREATE INSTANCE succeeds for non-existing instance and also check
|
||
|
# that both config file and internal configuration cache have been updated.
|
||
|
|
||
|
CREATE INSTANCE mysqld3;
|
||
|
|
||
|
SHOW INSTANCES;
|
||
|
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep server_id $MYSQLTEST_VARDIR/im.cnf ;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
|
||
|
# Check that CREATE INSTANCE fails for existing instance. Let's all three
|
||
|
# existing instances (running one, stopped one and just created one). Just in
|
||
|
# case...
|
||
|
|
||
|
--error 3012 # ER_CREATE_EXISTING_INSTANCE
|
||
|
CREATE INSTANCE mysqld1;
|
||
|
|
||
|
--error 3012 # ER_CREATE_EXISTING_INSTANCE
|
||
|
CREATE INSTANCE mysqld2;
|
||
|
|
||
|
--error 3012 # ER_CREATE_EXISTING_INSTANCE
|
||
|
CREATE INSTANCE mysqld3;
|
||
|
|
||
|
# Check that CREATE INSTANCE can get additional options with and w/o values.
|
||
|
# Ensure that config file is updated properly.
|
||
|
|
||
|
# - without values;
|
||
|
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep nonguarded $MYSQLTEST_VARDIR/im.cnf;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
|
||
|
CREATE INSTANCE mysqld4 nonguarded;
|
||
|
|
||
|
SHOW INSTANCES;
|
||
|
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep nonguarded $MYSQLTEST_VARDIR/im.cnf;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
|
||
|
# - with value;
|
||
|
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-A $MYSQLTEST_VARDIR/im.cnf || true;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-B $MYSQLTEST_VARDIR/im.cnf || true;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
|
||
|
CREATE INSTANCE mysqld5 test-A = 000, test-B = test;
|
||
|
|
||
|
SHOW INSTANCES;
|
||
|
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-A $MYSQLTEST_VARDIR/im.cnf;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-B $MYSQLTEST_VARDIR/im.cnf;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
|
||
|
# Check that CREATE INSTANCE parses options and handles grammar errors
|
||
|
# correctly. Check that strings with spaces are handled correctly,
|
||
|
# unknown (for mysqld) options should also be handled.
|
||
|
|
||
|
# - check handling of extra spaces;
|
||
|
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-C $MYSQLTEST_VARDIR/im.cnf || true;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
|
||
|
CREATE INSTANCE mysqld6 test-C1 = 10 , test-C2 = 02 ;
|
||
|
|
||
|
SHOW INSTANCES;
|
||
|
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-C1 $MYSQLTEST_VARDIR/im.cnf;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-C2 $MYSQLTEST_VARDIR/im.cnf;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
|
||
|
# - check handling of grammar error;
|
||
|
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-D $MYSQLTEST_VARDIR/im.cnf || true;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-E $MYSQLTEST_VARDIR/im.cnf || true;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
|
||
|
--error ER_SYNTAX_ERROR
|
||
|
CREATE INSTANCE mysqld7 test-D = test-D-value ;
|
||
|
SHOW INSTANCES;
|
||
|
|
||
|
--error ER_SYNTAX_ERROR
|
||
|
CREATE INSTANCE mysqld8 test-E 0 ;
|
||
|
SHOW INSTANCES;
|
||
|
|
||
|
--error ER_SYNTAX_ERROR
|
||
|
CREATE INSTANCE mysqld8 test-F = ;
|
||
|
SHOW INSTANCES;
|
||
|
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-D $MYSQLTEST_VARDIR/im.cnf || true;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-E $MYSQLTEST_VARDIR/im.cnf || true;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
|
||
|
# - check parsing of string option values
|
||
|
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-1 $MYSQLTEST_VARDIR/im.cnf || true;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-2 $MYSQLTEST_VARDIR/im.cnf || true;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-3 $MYSQLTEST_VARDIR/im.cnf || true;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-4 $MYSQLTEST_VARDIR/im.cnf || true;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
|
||
|
CREATE INSTANCE mysqld9 test-1=" hello world ", test-2=' ';
|
||
|
SHOW INSTANCES;
|
||
|
|
||
|
CREATE INSTANCE mysqld9a test-3='\b\babc\sdef';
|
||
|
# test-3='abc def'
|
||
|
SHOW INSTANCES;
|
||
|
|
||
|
CREATE INSTANCE mysqld9b test-4='abc\tdef', test-5='abc\ndef';
|
||
|
SHOW INSTANCES;
|
||
|
|
||
|
CREATE INSTANCE mysqld9c test-6="abc\rdef", test-7="abc\\def";
|
||
|
# test-6=abc
|
||
|
SHOW INSTANCES;
|
||
|
|
||
|
--error ER_SYNTAX_ERROR
|
||
|
CREATE INSTANCE mysqld10 test-bad=' \ ';
|
||
|
SHOW INSTANCES;
|
||
|
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-1 $MYSQLTEST_VARDIR/im.cnf;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-2 $MYSQLTEST_VARDIR/im.cnf;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-3 $MYSQLTEST_VARDIR/im.cnf;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-4 $MYSQLTEST_VARDIR/im.cnf;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-5 $MYSQLTEST_VARDIR/im.cnf;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-6 $MYSQLTEST_VARDIR/im.cnf;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-7 $MYSQLTEST_VARDIR/im.cnf;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
--exec grep test-bad $MYSQLTEST_VARDIR/im.cnf || true;
|
||
|
--echo --------------------------------------------------------------------
|
||
|
|
||
|
|
||
|
# Check that CREATE INSTANCE allows to create instances only with properly
|
||
|
# formed names (mysqld*).
|
||
|
|
||
|
--error 3014 # ER_MALFORMED_INSTANCE_NAME
|
||
|
CREATE INSTANCE qqq1;
|
||
|
|