mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Move instance manager tests to it's own suite
This commit is contained in:
244
mysql-test/suite/im/t/im_instance_conf.imtest
Normal file
244
mysql-test/suite/im/t/im_instance_conf.imtest
Normal file
@@ -0,0 +1,244 @@
|
||||
###########################################################################
|
||||
#
|
||||
# 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;
|
||||
#
|
||||
# NOTE: each CREATE INSTANCE statement must specify socket-file-name, otherwise
|
||||
# this results of the test can be affected by another running test suite.
|
||||
#
|
||||
###########################################################################
|
||||
|
||||
--source suite/im/t/im_check_env.inc
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
# Check starting conditions.
|
||||
#
|
||||
###########################################################################
|
||||
|
||||
# Check that the configuration file contains only instances that we expect.
|
||||
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^server_id[^a-zA-Z0-9_\-]' $MYSQLTEST_VARDIR/im.cnf;
|
||||
--echo --------------------------------------------------------------------
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
# 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
|
||||
server_id = 3,
|
||||
socket = "$MYSQL_TMP_DIR/mysqld_3.sock";
|
||||
|
||||
SHOW INSTANCES;
|
||||
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^server_id[^a-zA-Z0-9_-]' $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,
|
||||
server_id = 4,
|
||||
socket = "$MYSQL_TMP_DIR/mysqld_4.sock";
|
||||
|
||||
SHOW INSTANCES;
|
||||
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep "^nonguarded\$" $MYSQLTEST_VARDIR/im.cnf;
|
||||
--echo --------------------------------------------------------------------
|
||||
|
||||
# - with value;
|
||||
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-A[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf || true;
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-B[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf || true;
|
||||
--echo --------------------------------------------------------------------
|
||||
|
||||
CREATE INSTANCE mysqld5
|
||||
test-A = 000,
|
||||
test-B = test,
|
||||
server_id = 5,
|
||||
socket = "$MYSQL_TMP_DIR/mysqld_5.sock";
|
||||
|
||||
SHOW INSTANCES;
|
||||
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-A[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf;
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-B[^a-zA-Z0-9_-]' $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-C1[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf || true;
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-C2[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf || true;
|
||||
--echo --------------------------------------------------------------------
|
||||
|
||||
CREATE INSTANCE mysqld6
|
||||
test-C1 = 10 ,
|
||||
test-C2 = 02 ,
|
||||
server_id = 6,
|
||||
socket = "$MYSQL_TMP_DIR/mysqld_6.sock";
|
||||
|
||||
SHOW INSTANCES;
|
||||
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-C1[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf;
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-C2[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf;
|
||||
--echo --------------------------------------------------------------------
|
||||
|
||||
# - check handling of grammar error;
|
||||
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-D[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf || true;
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-E[^a-zA-Z0-9_-]' $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[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf || true;
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-E[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf || true;
|
||||
--echo --------------------------------------------------------------------
|
||||
|
||||
# - check parsing of string option values
|
||||
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-1[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf || true;
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-2[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf || true;
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-3[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf || true;
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-4[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf || true;
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-5[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf || true;
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-6[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf || true;
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-7[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf || true;
|
||||
--echo --------------------------------------------------------------------
|
||||
|
||||
CREATE INSTANCE mysqld9
|
||||
test-1=" hello world ",
|
||||
test-2=' ',
|
||||
server_id = 9,
|
||||
socket = "$MYSQL_TMP_DIR/mysqld_9.sock";
|
||||
SHOW INSTANCES;
|
||||
|
||||
CREATE INSTANCE mysqld10
|
||||
test-3='\b\babc\sdef',
|
||||
server_id = 10,
|
||||
socket = "$MYSQL_TMP_DIR/mysqld_10.sock";
|
||||
# test-3='abc def'
|
||||
SHOW INSTANCES;
|
||||
|
||||
CREATE INSTANCE mysqld11
|
||||
test-4='abc\tdef',
|
||||
test-5='abc\ndef',
|
||||
server_id = 11,
|
||||
socket = "$MYSQL_TMP_DIR/mysqld_11.sock";
|
||||
SHOW INSTANCES;
|
||||
|
||||
CREATE INSTANCE mysqld12
|
||||
test-6="abc\rdef",
|
||||
test-7="abc\\def",
|
||||
server_id = 12,
|
||||
socket = "$MYSQL_TMP_DIR/mysqld_12.sock";
|
||||
# test-6=abc
|
||||
SHOW INSTANCES;
|
||||
|
||||
--error ER_SYNTAX_ERROR
|
||||
CREATE INSTANCE mysqld13 test-bad=' \ ';
|
||||
SHOW INSTANCES;
|
||||
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-1[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf;
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-2[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf;
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-3[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf;
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-4[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf;
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-5[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf;
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-6[^a-zA-Z0-9_-]' $MYSQLTEST_VARDIR/im.cnf;
|
||||
--echo --------------------------------------------------------------------
|
||||
--exec grep '^test-7[^a-zA-Z0-9_-]' $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;
|
||||
|
||||
Reference in New Issue
Block a user