summaryrefslogtreecommitdiffstats
path: root/mysql-test/suite/innodb/t/log_file.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/innodb/t/log_file.test')
-rw-r--r--mysql-test/suite/innodb/t/log_file.test224
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