diff options
Diffstat (limited to 'mysql-test/include')
-rw-r--r-- | mysql-test/include/check-warnings.test | 39 | ||||
-rw-r--r-- | mysql-test/include/mtr_warnings.sql | 47 |
2 files changed, 11 insertions, 75 deletions
diff --git a/mysql-test/include/check-warnings.test b/mysql-test/include/check-warnings.test index 9fbce4acd3d..154de4be290 100644 --- a/mysql-test/include/check-warnings.test +++ b/mysql-test/include/check-warnings.test @@ -1,8 +1,11 @@ - # # This test is executed once after each test to check the servers # for unexpected warnings found in the servers error log # +# NOTE! mysql-test-run.pl has already done a rough filtering +# of the file and written any suspicious lines +# to $error_log.warnings file +# --disable_query_log # Don't write these queries to binlog @@ -17,41 +20,21 @@ use mtr; create temporary table error_log ( row int auto_increment primary key, - suspicious int default 0, + suspicious int default 1, file_name varchar(255), line varchar(1024) default null ) engine=myisam; # Get the name of servers error log let $log_error= query_get_value(show variables like 'log_error', Value, 1); +let $log_warning= $log_error.warnings; -# Try to load the error log into the temporary table ---error 0,1085 -eval load data infile '$log_error' into table error_log - fields terminated by 'xykls37' (line) +# Load the warnings into a temporary table +eval load data infile '$log_warning' into table error_log + fields terminated by 'xykls37' + ignore 1 lines + (line) set file_name='$log_error'; -if ($mysql_errno) -{ - # The error log was not world readable, this is normally - # caused by a "flush logs" in the test program. mysqld - # will then rename the error log to .err-old and open - # a new error log file that is not world readable. - # chmod the error log file and try to open it again - chmod 0644 $log_error; - eval load data infile '$log_error' into table error_log - fields terminated by 'xykls37' (line) - set file_name='$log_error'; - - # Also load the .err-old file where there might be - # additional warnings - - # Disabled intil Bug#42320 has been fixed - #let $old_log_error = $log_error-old; - #chmod 0644 $old_log_error; - #eval load data infile '$old_log_error' into table error_log - # fields terminated by 'xykls37' (line) - # set file_name='$old_log_error'; -} # Call check_warnings to filter out any warning in # the error_log table diff --git a/mysql-test/include/mtr_warnings.sql b/mysql-test/include/mtr_warnings.sql index c1476457ff4..73287900f3c 100644 --- a/mysql-test/include/mtr_warnings.sql +++ b/mysql-test/include/mtr_warnings.sql @@ -187,42 +187,6 @@ BEGIN SET SQL_LOG_BIN=0; -- - -- Remove all lines belonging to previous tests - -- - SELECT COALESCE(MAX(row),0) INTO @max_row - FROM error_log - WHERE line REGEXP "^CURRENT_TEST:"; - DELETE FROM error_log WHERE row < @max_row; - - -- - -- Mark all lines with certain patterns as suspicious - -- - UPDATE error_log SET suspicious= 1 - WHERE suspicious=0 - AND line REGEXP "^Warning:|mysqld: Warning|\\[Warning\\]"; - UPDATE error_log SET suspicious= 1 - WHERE suspicious=0 - AND line REGEXP "^Error:|\\[ERROR\\]"; - UPDATE error_log SET suspicious= 1 - WHERE suspicious=0 - AND line REGEXP "^==.* at 0x"; - UPDATE error_log SET suspicious= 1 - WHERE suspicious=0 - AND line REGEXP "InnoDB: Warning"; - UPDATE error_log SET suspicious= 1 - WHERE suspicious=0 - AND line REGEXP "^safe_mutex:|allocated at line"; - UPDATE error_log SET suspicious= 1 - WHERE suspicious=0 - AND line REGEXP "missing DBUG_RETURN"; - UPDATE error_log SET suspicious= 1 - WHERE suspicious=0 - AND line REGEXP "Attempting backtrace"; - UPDATE error_log SET suspicious= 1 - WHERE suspicious=0 - AND line REGEXP "Assertion .* failed"; - - -- -- Remove mark from lines that are suppressed by global suppressions -- UPDATE error_log el, global_suppressions gs @@ -237,17 +201,6 @@ BEGIN WHERE el.suspicious=1 AND el.line REGEXP ts.pattern; -- - -- Suppress intentional safemalloc dump warnings - -- i.e inside "Begin/End safemalloc memeory dump" block - -- - SELECT @min_row:=row - FROM error_log WHERE line = "Begin safemalloc memory dump:"; - SELECT @max_row:=row - FROM error_log WHERE line = "End safemalloc memory dump."; - UPDATE error_log SET suspicious=0 - WHERE suspicious=1 AND row > @min_row AND row < @max_row; - - -- -- Get the number of marked lines and return result -- SELECT COUNT(*) INTO @num_warnings FROM error_log |