mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
f5e8d19f75
The problem was in dummy grep on AIX and HPUX. The fix is to use more portable patterns. The patch is only for test suite (i.e. does not touch server codebase). mysql-test/r/im_instance_conf.result: Updated result file. mysql-test/t/disabled.def: Fix typo. mysql-test/t/im_instance_conf.imtest: Make grep-pattern aix/hpux-compatible. mysql-test/t/im_options.imtest: Make grep-pattern aix/hpux-compatible. mysql-test/t/im_options-im.opt: Speedup IM-tests.
244 lines
9.5 KiB
Text
244 lines
9.5 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_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;
|
|
|