From 41fdb64682bf960becac302a12bbcf2806848c3b Mon Sep 17 00:00:00 2001 From: Magnus Svensson Date: Fri, 14 Nov 2008 13:19:37 +0100 Subject: [PATCH] Bug#40705 mtr's check-warnings fails sporadically in pushbuild - Change the logic slightly for when and how errors from check-warnings and check-testcase are reported. The prevoius logic reporting testfailed twice and that might have caused this. - Also print result code returned from mysqltest when it is "unexpected" --- mysql-test/mysql-test-run.pl | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 1508cd45363..213ddf71b77 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -2802,7 +2802,8 @@ sub check_testcase($$) { my $report= mtr_grab_file($err_file); $tinfo->{comment}.= - "Could not execute 'check-testcase' $mode testcase '$tname':\n"; + "Could not execute 'check-testcase' $mode ". + "testcase '$tname' (res: $res):\n"; $tinfo->{comment}.= $report; $result= 2; @@ -3159,19 +3160,15 @@ sub run_testcase ($) { my $res= $test->exit_status(); + if ($res == 0 and $opt_warnings and check_warnings($tinfo) ) + { + # Test case suceeded, but it has produced unexpected + # warnings, continue in $res == 1 + $res= 1; + } + if ( $res == 0 ) { - if ( $opt_warnings and check_warnings($tinfo) ) - { - # Found unexpected warnings - report_failure_and_restart($tinfo); - $res= 1; - } - else - { - mtr_report_test_passed($tinfo); - } - my $check_res; if ( $opt_check_testcases and $check_res= check_testcase($tinfo, "after")) @@ -3187,6 +3184,7 @@ sub run_testcase ($) { return 1; } } + mtr_report_test_passed($tinfo); } elsif ( $res == 62 ) { @@ -3407,7 +3405,8 @@ sub check_warnings ($) { { my $report= mtr_grab_file($err_file); $tinfo->{comment}.= - "Could not execute 'check-warnings' for testcase '$tname':"; + "Could not execute 'check-warnings' for ". + "testcase '$tname' (res: $res):\n"; $tinfo->{comment}.= $report; $result= 2; @@ -3428,11 +3427,6 @@ sub check_warnings ($) { return $result; } - - - - return $res; - return $res; }