mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
merge from 5.5-mtr
This commit is contained in:
@ -607,7 +607,10 @@ sub run_test_server ($$$) {
|
||||
if ( !$opt_force ) {
|
||||
# Test has failed, force is off
|
||||
push(@$completed, $result);
|
||||
return $completed;
|
||||
return $completed unless $result->{'dont_kill_server'};
|
||||
# Prevent kill of server, to get valgrind report
|
||||
print $sock "BYE\n";
|
||||
next;
|
||||
}
|
||||
elsif ($opt_max_test_fail > 0 and
|
||||
$num_failed_test >= $opt_max_test_fail) {
|
||||
@ -854,15 +857,16 @@ sub run_worker ($) {
|
||||
mtr_report("Server said BYE");
|
||||
stop_all_servers($opt_shutdown_timeout);
|
||||
mark_time_used('restart');
|
||||
my $valgrind_reports= 0;
|
||||
if ($opt_valgrind_mysqld) {
|
||||
valgrind_exit_reports();
|
||||
$valgrind_reports= valgrind_exit_reports();
|
||||
}
|
||||
if ( $opt_gprof ) {
|
||||
gprof_collect (find_mysqld($basedir), keys %gprof_dirs);
|
||||
}
|
||||
mark_time_used('init');
|
||||
print_times_used($server, $thread_num);
|
||||
exit(0);
|
||||
exit($valgrind_reports);
|
||||
}
|
||||
else {
|
||||
mtr_error("Could not understand server, '$line'");
|
||||
@ -3846,7 +3850,6 @@ sub run_testcase ($) {
|
||||
# ----------------------------------------------------
|
||||
# Check if it was an expected crash
|
||||
# ----------------------------------------------------
|
||||
SRVDIED:
|
||||
my $check_crash = check_expected_crash_and_restart($proc);
|
||||
if ($check_crash)
|
||||
{
|
||||
@ -3856,6 +3859,7 @@ sub run_testcase ($) {
|
||||
next;
|
||||
}
|
||||
|
||||
SRVDIED:
|
||||
# ----------------------------------------------------
|
||||
# Stop the test case timer
|
||||
# ----------------------------------------------------
|
||||
@ -4386,7 +4390,12 @@ sub after_failure ($) {
|
||||
sub report_failure_and_restart ($) {
|
||||
my $tinfo= shift;
|
||||
|
||||
stop_all_servers();
|
||||
if ($opt_valgrind_mysqld && ($tinfo->{'warnings'} || $tinfo->{'timeout'})) {
|
||||
# In these cases we may want valgrind report from normal termination
|
||||
$tinfo->{'dont_kill_server'}= 1;
|
||||
}
|
||||
# Shotdown properly if not to be killed (for valgrind)
|
||||
stop_all_servers($tinfo->{'dont_kill_server'} ? $opt_shutdown_timeout : 0);
|
||||
|
||||
$tinfo->{'result'}= 'MTR_RES_FAILED';
|
||||
|
||||
@ -5526,6 +5535,8 @@ sub valgrind_arguments {
|
||||
#
|
||||
|
||||
sub valgrind_exit_reports() {
|
||||
my $found_err= 0;
|
||||
|
||||
foreach my $log_file (keys %mysqld_logs)
|
||||
{
|
||||
my @culprits= ();
|
||||
@ -5561,7 +5572,7 @@ sub valgrind_exit_reports() {
|
||||
next;
|
||||
}
|
||||
# This line marks the start of a valgrind report
|
||||
$found_report= 1 if $line =~ /ERROR SUMMARY:/;
|
||||
$found_report= 1 if $line =~ /^==\d+== .* SUMMARY:/;
|
||||
|
||||
if ($found_report) {
|
||||
$line=~ s/^==\d+== //;
|
||||
@ -5578,8 +5589,11 @@ sub valgrind_exit_reports() {
|
||||
mtr_print ("Valgrind report from $log_file after tests:\n", @culprits);
|
||||
mtr_print_line();
|
||||
print ("$valgrind_rep\n");
|
||||
$found_err= 1;
|
||||
}
|
||||
}
|
||||
|
||||
return $found_err;
|
||||
}
|
||||
|
||||
#
|
||||
|
Reference in New Issue
Block a user