mariadb/mysql-test/main/mysql_upgrade_ssl.test

13 lines
397 B
Text
Raw Normal View History

fix for Bug #55672 "mysql_upgrade dies with internal error": it couldn't parse the --ssl option. client/mysql_upgrade.c: mysql_upgrade parses its options and passes some of them to the underlying tools (mysqlcheck etc). To do this passdown, it reconstructs a command-line-suitable text from the my_option object (which contains the option's name and option's value). For options which expect no parameter, it just had to use the option's name; for other options, it had to concatenate the option's name, a "=" symbol, and the option's value; it had code to handle this latter case, but only for GET_STR options (options taking a string as value). But since the work on WL 4738, the --ssl option, a GET_BOOL, which used to have no parameter (NO_ARG), can now have one (OPT_ARG), so with --ssl we came to the "default" label, error. Fixed by constructing the command-line-suitable representation for GET_BOOL too. For --ssl it will produce --ssl=1 ; for --ssl=0, it will produce --ssl=0. mysql-test/include/mysql_upgrade_preparation.inc: handles requirements of tests which use mysql_upgrade mysql-test/r/mysql_upgrade_ssl.result: result; without the code fix we would get "internal error". mysql-test/t/mysql_upgrade.test: This test has requirements before running; moved them to an include file in order to share with mysql_upgrade_ssl. mysql-test/t/mysql_upgrade_ssl.test: test for bug. Couldn't go into mysql_upgrade.test as this new test requires SSL support. --force is needed, in case mysql_upgrade.test run before (in which case mysql_upgrade_ssl would say that upgrade has already been done); --force forces the upgrade in all cases.
2010-08-11 19:56:56 +02:00
# mysql_upgrade tests requiring SSL support
-- source include/have_ssl_communication.inc
-- source include/mysql_upgrade_preparation.inc
-- source include/have_innodb.inc
fix for Bug #55672 "mysql_upgrade dies with internal error": it couldn't parse the --ssl option. client/mysql_upgrade.c: mysql_upgrade parses its options and passes some of them to the underlying tools (mysqlcheck etc). To do this passdown, it reconstructs a command-line-suitable text from the my_option object (which contains the option's name and option's value). For options which expect no parameter, it just had to use the option's name; for other options, it had to concatenate the option's name, a "=" symbol, and the option's value; it had code to handle this latter case, but only for GET_STR options (options taking a string as value). But since the work on WL 4738, the --ssl option, a GET_BOOL, which used to have no parameter (NO_ARG), can now have one (OPT_ARG), so with --ssl we came to the "default" label, error. Fixed by constructing the command-line-suitable representation for GET_BOOL too. For --ssl it will produce --ssl=1 ; for --ssl=0, it will produce --ssl=0. mysql-test/include/mysql_upgrade_preparation.inc: handles requirements of tests which use mysql_upgrade mysql-test/r/mysql_upgrade_ssl.result: result; without the code fix we would get "internal error". mysql-test/t/mysql_upgrade.test: This test has requirements before running; moved them to an include file in order to share with mysql_upgrade_ssl. mysql-test/t/mysql_upgrade_ssl.test: test for bug. Couldn't go into mysql_upgrade.test as this new test requires SSL support. --force is needed, in case mysql_upgrade.test run before (in which case mysql_upgrade_ssl would say that upgrade has already been done); --force forces the upgrade in all cases.
2010-08-11 19:56:56 +02:00
--echo #
--echo # Bug#55672 mysql_upgrade dies with internal error
--echo #
2011-04-25 17:22:25 +02:00
--exec $MYSQL_UPGRADE --skip-verbose --skip-silent --ssl --force 2>&1
--let $datadir= `select @@datadir`
--remove_file $datadir/mysql_upgrade_info