summaryrefslogtreecommitdiff
path: root/mysql-test/mysql-test-run.pl
diff options
context:
space:
mode:
authorBjorn Munch <Bjorn.Munch@sun.com>2009-08-28 15:02:48 +0200
committerBjorn Munch <Bjorn.Munch@sun.com>2009-08-28 15:02:48 +0200
commit428d4e60d30be8caedb8480491cc6960aacd5426 (patch)
tree9201d54c67f9c549834335a095c588c21aca5cfb /mysql-test/mysql-test-run.pl
parentd29fd0b7cb39b7c03cddb824a2dc090916fded2a (diff)
downloadmariadb-git-428d4e60d30be8caedb8480491cc6960aacd5426.tar.gz
Bug #46973 MTR: extract_warning_lines does not check it's extracting lines for current test
Rewrote logic (first commit was incomplete, sorry)
Diffstat (limited to 'mysql-test/mysql-test-run.pl')
-rwxr-xr-xmysql-test/mysql-test-run.pl27
1 files changed, 20 insertions, 7 deletions
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index 429fbfe41c6..5a5d063c105 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -3571,8 +3571,8 @@ sub run_testcase ($) {
# error log and write all lines that look
# suspicious into $error_log.warnings
#
-sub extract_warning_lines ($) {
- my ($error_log) = @_;
+sub extract_warning_lines ($$) {
+ my ($error_log, $tname) = @_;
# Open the servers .err log file and read all lines
# belonging to current tets into @lines
@@ -3580,14 +3580,27 @@ sub extract_warning_lines ($) {
or mtr_error("Could not open file '$error_log' for reading: $!");
my @lines;
+ my $found_test= 0; # Set once we've found the log of this test
while ( my $line = <$Ferr> )
{
- if ( $line =~ /^CURRENT_TEST:/ )
+ if ($found_test)
{
- # Throw away lines from previous tests
- @lines = ();
+ # If test wasn't last after all, discard what we found, test again.
+ if ( $line =~ /^CURRENT_TEST:/)
+ {
+ @lines= ();
+ $found_test= $line =~ /^CURRENT_TEST: $tname/;
+ }
+ else
+ {
+ push(@lines, $line);
+ }
+ }
+ else
+ {
+ # Search for beginning of test, until found
+ $found_test= 1 if ($line =~ /^CURRENT_TEST: $tname/);
}
- push(@lines, $line);
}
$Ferr = undef; # Close error log file
@@ -3665,7 +3678,7 @@ sub start_check_warnings ($$) {
my $log_error= $mysqld->value('#log-error');
# To be communicated to the test
$ENV{MTR_LOG_ERROR}= $log_error;
- extract_warning_lines($log_error);
+ extract_warning_lines($log_error, $tinfo->{name});
my $args;
mtr_init_args(\$args);