mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-24 07:13:33 +03:00 
			
		
		
		
	 5d8598a405
			
		
	
	5d8598a405
	
	
	
		
			
			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).
		
			
				
	
	
		
			245 lines
		
	
	
		
			9.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			245 lines
		
	
	
		
			9.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ###########################################################################
 | |
| #
 | |
| # 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;
 | |
| 
 |