mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
bd6f56a798
im_instance_conf fails randomly. mysql-test/r/im_options.result: Updated result file. mysql-test/t/im_instance_conf.imtest: Added a note about specific of CREATE INSTANCE usage in IM-tests. mysql-test/t/im_options.imtest: 1. Specify socket-file-name for new instance so that the test does not depend on another running test-suite on the same box. 2. Added a note about specific of CREATE INSTANCE usage in IM-tests.
259 lines
9 KiB
Text
259 lines
9 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;
|
|
#
|
|
# 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 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
|
|
server_id = 3,
|
|
socket = "$MYSQL_TMP_DIR/mysqld_3.sock";
|
|
|
|
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,
|
|
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 $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,
|
|
server_id = 5,
|
|
socket = "$MYSQL_TMP_DIR/mysqld_5.sock";
|
|
|
|
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 ,
|
|
server_id = 6,
|
|
socket = "$MYSQL_TMP_DIR/mysqld_6.sock";
|
|
|
|
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=' ',
|
|
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 $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;
|
|
|