summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Black <daniel@mariadb.org>2020-10-26 16:01:18 +1100
committerDaniel Black <daniel@mariadb.org>2021-01-15 13:56:50 +1100
commit01a1a89ae0f04f1517c0e1477774cda9e2d836c8 (patch)
tree3b2adf636ec7953e74ef1de449c7ae6ea088ff8c
parentf130adbf35b5b8ef7ed091549ed764982801480c (diff)
downloadmariadb-git-bb-10.3-danielblack-MDEV-24268-mtr-mysql_install_db.tar.gz
MDEV-24268: add MTR test for mysql_install_dbbb-10.3-danielblack-MDEV-24268-mtr-mysql_install_db
(Adapted for 10.3)
-rw-r--r--mysql-test/main/mysql_install_db.result111
-rw-r--r--mysql-test/main/mysql_install_db.test162
-rwxr-xr-xmysql-test/mysql-test-run.pl24
3 files changed, 297 insertions, 0 deletions
diff --git a/mysql-test/main/mysql_install_db.result b/mysql-test/main/mysql_install_db.result
new file mode 100644
index 00000000000..8b2911c9125
--- /dev/null
+++ b/mysql-test/main/mysql_install_db.result
@@ -0,0 +1,111 @@
+disconnect default;
+connect testcon,localhost,root,,mysql,,;
+connection testcon;
+#
+#
+# mysql_install_db (no args)
+#
+# Kill the server
+SELECT user,host,plugin,password FROM user ORDER BY user,host;
+user host plugin password
+ localhost
+root 127.0.0.1
+root ::1
+root localhost
+SHOW DATABASES;
+Database
+information_schema
+mysql
+performance_schema
+test
+SHOW GRANTS FOR root@localhost;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` WITH GRANT OPTION
+GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
+SHOW GRANTS FOR ''@localhost;
+Grants for @localhost
+GRANT USAGE ON *.* TO ``@`localhost`
+#
+#
+# mysql_install_db --auth-root-authentication-method=normal
+#
+SELECT user,host,plugin,password FROM user ORDER BY user,host;
+user host plugin password
+ localhost
+root 127.0.0.1
+root ::1
+root localhost
+SHOW DATABASES;
+Database
+information_schema
+mysql
+performance_schema
+test
+SHOW GRANTS FOR root@localhost;
+Grants for root@localhost
+GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` WITH GRANT OPTION
+GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
+SHOW GRANTS FOR ''@localhost;
+Grants for @localhost
+GRANT USAGE ON *.* TO ``@`localhost`
+#
+#
+# mysql_install_db --auth-root-authentication-method=socket \
+# --auth-root-socket-user=$USER
+#
+use test;
+connect unix,localhost,$USER,,mysql;
+connection unix;
+SELECT user,host,plugin,password FROM user ORDER BY user,host;
+user host plugin password
+ localhost
+USER localhost unix_socket
+SHOW DATABASES;
+Database
+information_schema
+mysql
+performance_schema
+test
+SHOW GRANTS FOR USER@localhost;;
+Grants for USER@localhost
+GRANT ALL PRIVILEGES ON *.* TO `USER`@`localhost` IDENTIFIED VIA unix_socket WITH GRANT OPTION
+SHOW GRANTS FOR ''@localhost;
+Grants for @localhost
+GRANT USAGE ON *.* TO ``@`localhost`
+#
+#
+# mysql_install_db --skip-name-resolve
+#
+connection testcon;
+use mysql;
+SELECT user,host,plugin,password FROM user ORDER BY user,host;
+user host plugin password
+ localhost
+root 127.0.0.1
+root ::1
+root localhost
+SHOW DATABASES;
+Database
+information_schema
+mysql
+performance_schema
+test
+# End of 10.2 tests
+#
+#
+# mysql_install_db --skip-test-db
+#
+disconnect unix;
+connection testcon;
+use mysql;
+SELECT user,host,plugin,password FROM user ORDER BY user,host;
+user host plugin password
+root 127.0.0.1
+root ::1
+root localhost
+SHOW DATABASES;
+Database
+information_schema
+mysql
+performance_schema
+# End of 10.3 tests
diff --git a/mysql-test/main/mysql_install_db.test b/mysql-test/main/mysql_install_db.test
new file mode 100644
index 00000000000..9aae375af11
--- /dev/null
+++ b/mysql-test/main/mysql_install_db.test
@@ -0,0 +1,162 @@
+--source include/not_windows.inc
+--source include/not_embedded.inc
+--source include/have_unix_socket.inc
+
+--let MYSQLD_DATADIR= `select @@datadir`
+--let HOSTNAME= `select @@hostname`
+
+disconnect default;
+--connect(testcon,localhost,root,,mysql,,)
+connection testcon;
+
+--echo #
+--echo #
+--echo # mysql_install_db (no args)
+--echo #
+
+--source include/kill_mysqld.inc
+--rmdir $MYSQLD_DATADIR
+
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+--exec $MYSQL_INSTALL_DB --verbose
+
+--source include/start_mysqld.inc
+
+--sorted_result
+--replace_result $HOSTNAME HOSTNAME
+SELECT user,host,plugin,password FROM user ORDER BY user,host;
+
+--sorted_result
+SHOW DATABASES;
+
+--sorted_result
+SHOW GRANTS FOR root@localhost;
+
+--sorted_result
+SHOW GRANTS FOR ''@localhost;
+
+--echo #
+--echo #
+--echo # mysql_install_db --auth-root-authentication-method=normal
+--echo #
+
+--source include/shutdown_mysqld.inc
+--rmdir $MYSQLD_DATADIR
+
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+--exec $MYSQL_INSTALL_DB --auth-root-authentication-method=normal
+
+--source include/start_mysqld.inc
+
+--sorted_result
+--replace_result $HOSTNAME HOSTNAME
+SELECT user,host,plugin,password FROM user ORDER BY user,host;
+
+--sorted_result
+SHOW DATABASES;
+
+--sorted_result
+SHOW GRANTS FOR root@localhost;
+
+--sorted_result
+SHOW GRANTS FOR ''@localhost;
+
+--echo #
+--echo #
+--echo # mysql_install_db --auth-root-authentication-method=socket \\
+--echo # --auth-root-socket-user=\$USER
+--echo #
+
+use test;
+--source include/shutdown_mysqld.inc
+--rmdir $MYSQLD_DATADIR
+
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+--exec $MYSQL_INSTALL_DB --auth-root-authentication-method=socket --auth-root-socket-user=$USER
+
+--source include/start_mysqld.inc
+
+--connect(unix,localhost,$USER,,mysql)
+connection unix;
+
+--sorted_result
+--replace_result $HOSTNAME HOSTNAME $USER USER
+SELECT user,host,plugin,password FROM user ORDER BY user,host;
+
+--sorted_result
+SHOW DATABASES;
+
+--replace_result $USER USER
+--sorted_result
+--eval SHOW GRANTS FOR $USER@localhost;
+
+--sorted_result
+SHOW GRANTS FOR ''@localhost;
+
+
+--echo #
+--echo #
+--echo # mysql_install_db --skip-name-resolve
+--echo #
+
+--source include/shutdown_mysqld.inc
+--rmdir $MYSQLD_DATADIR
+
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+--exec $MYSQL_INSTALL_DB --skip-name-resolve
+
+connection testcon;
+--source include/start_mysqld.inc
+use mysql;
+
+--sorted_result
+--replace_result $HOSTNAME HOSTNAME $USER USER
+SELECT user,host,plugin,password FROM user ORDER BY user,host;
+
+--sorted_result
+SHOW DATABASES;
+
+--echo # End of 10.2 tests
+
+--echo #
+--echo #
+--echo # mysql_install_db --skip-test-db
+--echo #
+
+--source include/shutdown_mysqld.inc
+--disconnect unix
+connection testcon;
+--rmdir $MYSQLD_DATADIR
+
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+--exec $MYSQL_INSTALL_DB --skip-test-db
+
+--source include/start_mysqld.inc
+
+use mysql;
+--sorted_result
+--replace_result $HOSTNAME HOSTNAME $USER USER
+SELECT user,host,plugin,password FROM user ORDER BY user,host;
+
+--sorted_result
+SHOW DATABASES;
+
+--echo # End of 10.3 tests
+
+# Cleanup
+--source include/shutdown_mysqld.inc
+--rmdir $MYSQLD_DATADIR
+--mkdir $MYSQLD_DATADIR
+
+perl;
+use lib "lib";
+use My::Handles { suppress_init_messages => 1 };
+use My::File::Path;
+my $install_db_dir = ($ENV{MTR_PARALLEL} == 1) ?
+ "$ENV{'MYSQLTEST_VARDIR'}/install.db" :
+ "$ENV{'MYSQLTEST_VARDIR'}/../install.db";
+copytree($install_db_dir, $ENV{'MYSQLD_DATADIR'});
+EOF
+
+--source include/start_mysqld.inc
+
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index da530c240de..eeed2899ee6 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -2523,6 +2523,30 @@ sub environment_setup {
"--defaults-file=$path_config_file $extra_opts";
# ----------------------------------------------------
+ # mysql_install_db
+ # ----------------------------------------------------
+ if (!IS_WINDOWS)
+ {
+ my $exe_mysql_install_db=
+ mtr_exe_exists("$bindir/scripts/mysql_install_db",
+ "$path_client_bindir/mysql_install_db");
+ $ENV{'MYSQL_INSTALL_DB'}= native_path($exe_mysql_install_db) .
+ " --defaults-file=$path_config_file $extra_opts" .
+ " --defaults-group-suffix=.1 --cross-bootstrap";
+ }
+
+ if ( ! $source_dist )
+ {
+ $ENV{'MYSQL_INSTALL_DB'}.= " --basedir=$basedir";
+ }
+ else
+ {
+ $ENV{'MYSQL_INSTALL_DB'}.=
+ " --srcdir=" . cwd() . "/.." .
+ " --builddir=$bindir";
+ }
+
+ # ----------------------------------------------------
# bug25714 executable may _not_ exist in
# some versions, test using it should be skipped
# ----------------------------------------------------