diff options
Diffstat (limited to 'mysql-test/suite/innodb/t/log_file.test')
-rw-r--r-- | mysql-test/suite/innodb/t/log_file.test | 224 |
1 files changed, 224 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb/t/log_file.test b/mysql-test/suite/innodb/t/log_file.test new file mode 100644 index 00000000..76fb013f --- /dev/null +++ b/mysql-test/suite/innodb/t/log_file.test @@ -0,0 +1,224 @@ +--echo # Testcase for the following bugs +--echo # Bug#16691130 - ASSERT WHEN INNODB_LOG_GROUP_HOME_DIR DOES NOT EXIST +--echo # Bug#16418661 - CHANGING NAME IN FOR INNODB_DATA_FILE_PATH SHOULD NOT SUCCEED WITH LOG FILES + +--source include/have_innodb.inc + +--disable_query_log +call mtr.add_suppression("InnoDB: Could not create undo tablespace.*undo002"); +call mtr.add_suppression("InnoDB: InnoDB Database creation was aborted"); +call mtr.add_suppression("Plugin 'InnoDB' init function returned error"); +call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE failed"); +call mtr.add_suppression("InnoDB: Operating system error number \d+ in a file operation"); +call mtr.add_suppression("InnoDB: The error means the system cannot find the path specified"); +call mtr.add_suppression("InnoDB: If you are installing InnoDB, remember that you must create directories yourself"); +call mtr.add_suppression("InnoDB: File .path.to.non-existent.ib_logfile101: 'create' returned OS error \d+"); +call mtr.add_suppression("InnoDB: Cannot create .path.to.non-existent.ib_logfile101"); +call mtr.add_suppression("InnoDB: The innodb_system data file 'ibdata1' was not found but one of the other data files 'ibdata2' exists"); +call mtr.add_suppression("InnoDB: Tablespace size stored in header is \d+ pages, but the sum of data file sizes is \d+ pages"); +call mtr.add_suppression("InnoDB: Cannot start InnoDB. The tail of the system tablespace is missing"); +call mtr.add_suppression("InnoDB: undo tablespace '.*undo001' exists\. Creating system tablespace with existing undo tablespaces is not supported\. Please delete all undo tablespaces before creating new system tablespace\."); +call mtr.add_suppression(""); +call mtr.add_suppression(""); +--enable_query_log + +let bugdir= $MYSQLTEST_VARDIR/tmp/log_file; +--mkdir $bugdir + +let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err; +let $check_no_innodb=SELECT * FROM INFORMATION_SCHEMA.ENGINES +WHERE engine = 'innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); + +let $check_yes_innodb=SELECT COUNT(*) `1` FROM INFORMATION_SCHEMA.ENGINES +WHERE engine='innodb' +AND support IN ('YES', 'DEFAULT', 'ENABLED'); + +--let $ibp=--innodb-log-group-home-dir=$bugdir +--let $ibp=$ibp --innodb-data-home-dir=$bugdir --innodb-undo-directory=$bugdir +--let $ibp=$ibp --innodb-undo-logs=20 --innodb-undo-tablespaces=3 +--let $ibp=$ibp --innodb-data-file-path=ibdata1:16M;ibdata2:10M:autoextend + +--echo # Start mysqld without the possibility to create innodb_undo_tablespaces +--let $restart_parameters= $ibp +--mkdir $bugdir/undo002 +--source include/restart_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc + +let SEARCH_PATTERN=\[ERROR\] InnoDB: Could not create undo tablespace '.*undo002'; +--source include/search_pattern_in_file.inc + +--echo # Remove undo001,undo002,ibdata1,ibdata2,ib_logfile101 +--remove_file $bugdir/undo001 +--rmdir $bugdir/undo002 +--remove_file $bugdir/ibdata1 +--remove_file $bugdir/ibdata2 +--remove_file $bugdir/ib_logfile101 +--list_files $bugdir + +--echo # Start mysqld with non existent innodb_log_group_home_dir +--let $restart_parameters= $ibp --innodb_log_group_home_dir=/path/to/non-existent/ +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc +let SEARCH_PATTERN=File .path.to.non-existent.*ib_logfile101: 'create' returned OS error \d+; +--source include/search_pattern_in_file.inc + +--echo # Remove ibdata1 & ibdata2 +--remove_file $bugdir/ibdata1 +--remove_file $bugdir/ibdata2 +--list_files $bugdir + +--echo # Successfully let InnoDB create tablespaces +--let $restart_parameters= $ibp +--source include/start_mysqld.inc +eval $check_yes_innodb; +--source include/shutdown_mysqld.inc + +--echo # Backup tmp/logfile/* +--copy_file $bugdir/ibdata1 $bugdir/bak_ibdata1 +--copy_file $bugdir/ibdata2 $bugdir/bak_ibdata2 +--copy_file $bugdir/ib_logfile0 $bugdir/bak_ib_logfile0 +--copy_file $bugdir/undo001 $bugdir/bak_undo001 +--copy_file $bugdir/undo002 $bugdir/bak_undo002 +--copy_file $bugdir/undo003 $bugdir/bak_undo003 + +--echo # 1. With ibdata2, Without ibdata1 +--remove_file $bugdir/ibdata1 + +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc +let SEARCH_PATTERN=The innodb_system data file 'ibdata1' was not found but one of the other data files 'ibdata2' exists; +--source include/search_pattern_in_file.inc + +# clean up & Restore +--source ../include/log_file_cleanup.inc + +--echo # 2. With ibdata1, without ibdata2 +--remove_file $bugdir/ibdata2 +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc +let SEARCH_PATTERN=InnoDB: Tablespace size stored in header is \d+ pages, but the sum of data file sizes is \d+ pages; +--source include/search_pattern_in_file.inc +let SEARCH_PATTERN=InnoDB: Cannot start InnoDB. The tail of the system tablespace is missing; +--source include/search_pattern_in_file.inc + +# clean up & Restore +--source ../include/log_file_cleanup.inc + +--echo # 3. Without ibdata1 & ibdata2 +--remove_file $bugdir/ibdata1 +--remove_file $bugdir/ibdata2 +--list_files $bugdir +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc +let SEARCH_PATTERN=InnoDB: undo tablespace .*undo001.* exists\. Creating system tablespace with existing undo tablespaces is not supported\. Please delete all undo tablespaces before creating new system tablespace\.; +--source include/search_pattern_in_file.inc + +# clean up & Restore +--source ../include/log_file_cleanup.inc + +--echo # 4. Without ibdata*, ib_logfile* and with undo00* +--remove_files_wildcard $bugdir ibdata* +--remove_files_wildcard $bugdir ib_logfile* +--list_files $bugdir +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc + +# clean up & Restore +--source ../include/log_file_cleanup.inc + +--echo # 5. Without ibdata*,ib_logfile* files & Without undo002 +--remove_files_wildcard $bugdir ibdata* +--remove_files_wildcard $bugdir ib_logfile* +--remove_file $bugdir/undo002 +--list_files $bugdir +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc + +# clean up & Restore +--source ../include/log_file_cleanup.inc + +--echo # 6. Without ibdata*,ib_logfile* files & Without undo001, undo002 +# and with undo003 +--remove_files_wildcard $bugdir ibdata* +--remove_files_wildcard $bugdir ib_logfile* +--remove_file $bugdir/undo001 +--remove_file $bugdir/undo002 +--list_files $bugdir +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc +let SEARCH_PATTERN=undo tablespace .*undo003.* exists\. Creating system tablespace with existing undo tablespaces is not supported\. Please delete all undo tablespaces before creating new system tablespace\.; +--source include/search_pattern_in_file.inc + +# clean up & Restore +--source ../include/log_file_cleanup.inc + +--echo # 7. With ibdata files & Without undo002 +--remove_file $bugdir/undo002 +--list_files $bugdir +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc +let SEARCH_PATTERN=InnoDB: Expected to open innodb_undo_tablespaces=3 but was able to find only 1; +--source include/search_pattern_in_file.inc +# clean up & Restore +--source ../include/log_file_cleanup.inc + +--echo # 8. With ibdata files & Without undo001, undo002 +--remove_file $bugdir/undo001 +--remove_file $bugdir/undo002 +--list_files $bugdir +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc +let SEARCH_PATTERN=InnoDB: Expected to open innodb_undo_tablespaces=3 but was able to find only 0; +--source include/search_pattern_in_file.inc + +# clean up & Restore +--source ../include/log_file_cleanup.inc + +--echo # 9. Without ibdata*, without undo* +--remove_files_wildcard $bugdir ibdata* +--remove_files_wildcard $bugdir undo00* +--list_files $bugdir +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc +let SEARCH_PATTERN=redo log file .*ib_logfile0.* exists\. Creating system tablespace with existing redo log file is not recommended\. Please delete redo log file before creating new system tablespace\.; +--source include/search_pattern_in_file.inc + +# clean up & Restore +--source ../include/log_file_cleanup.inc + +--echo # 10. With ibdata*, without ib_logfile0 +--remove_file $bugdir/ib_logfile0 + +--source include/start_mysqld.inc +eval $check_no_innodb; +--source include/shutdown_mysqld.inc + +--source ../include/log_file_cleanup.inc + +--echo # 11. With ibdata* +--list_files $bugdir +--source include/start_mysqld.inc +eval $check_yes_innodb; +--source include/shutdown_mysqld.inc +--let SEARCH_PATTERN=Resizing redo log from 1\*\d+ to 3\*\d+ bytes; LSN=\d+ +--source include/search_pattern_in_file.inc + +--let $restart_parameters= +--source include/start_mysqld.inc + +--echo # Cleanup +--list_files $bugdir +--remove_files_wildcard $bugdir +--rmdir $bugdir |