62 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			62 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# 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
							 | 
						||
| 
								 | 
							
								set SQL_LOG_BIN=0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Turn off any debug crashes, allow the variable to be
							 | 
						||
| 
								 | 
							
								# non existent in release builds
							 | 
						||
| 
								 | 
							
								--error 0,1193
							 | 
						||
| 
								 | 
							
								set debug="";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use mtr;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								create temporary table error_log (
							 | 
						||
| 
								 | 
							
								  row int auto_increment primary key,
							 | 
						||
| 
								 | 
							
								  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= $MTR_LOG_ERROR;
							 | 
						||
| 
								 | 
							
								let $log_warning= $log_error.warnings;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Try tload the warnings into a temporary table,
							 | 
						||
| 
								 | 
							
								# it might fail with error saying "The MySQL server is
							 | 
						||
| 
								 | 
							
								# running with the --secure-file-priv" in which case
							 | 
						||
| 
								 | 
							
								# an attempt to load the file using LOAD DATA LOCAL is made
							 | 
						||
| 
								 | 
							
								--error 0,1290
							 | 
						||
| 
								 | 
							
								eval load data infile '$log_warning' into table error_log
							 | 
						||
| 
								 | 
							
								  fields terminated by 'xykls37' escaped by ''
							 | 
						||
| 
								 | 
							
								  ignore 1 lines
							 | 
						||
| 
								 | 
							
								  (line)
							 | 
						||
| 
								 | 
							
								  set file_name='$log_error';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if ($mysql_errno)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  # Try LOAD DATA LOCAL
							 | 
						||
| 
								 | 
							
								  eval load data local infile '$log_warning' into table error_log
							 | 
						||
| 
								 | 
							
								    fields terminated by 'xykls37' escaped by ''
							 | 
						||
| 
								 | 
							
								    ignore 1 lines
							 | 
						||
| 
								 | 
							
								    (line)
							 | 
						||
| 
								 | 
							
								    set file_name='$log_error';
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Call check_warnings to filter out any warning in
							 | 
						||
| 
								 | 
							
								# the error_log table
							 | 
						||
| 
								 | 
							
								call mtr.check_warnings(@result);
							 | 
						||
| 
								 | 
							
								if (`select @result = 0`){
							 | 
						||
| 
								 | 
							
								  skip OK;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								--enable_query_log
							 | 
						||
| 
								 | 
							
								echo ^ Found warnings in $log_error;
							 | 
						||
| 
								 | 
							
								exit;
							 |