Commit fd9b6b8e authored by Bjorn Munch's avatar Bjorn Munch

Bug #55178 Set timeout on test-to-test-basis

Allow --testcase-timeout=<mins> to be set in .opt file for test
parent 16b7af9a
...@@ -684,6 +684,13 @@ sub process_opts_file { ...@@ -684,6 +684,13 @@ sub process_opts_file {
next; next;
} }
$value= mtr_match_prefix($opt, "--testcase-timeout=");
if ( defined $value ) {
# Overrides test case timeout for this test
$tinfo->{'case-timeout'}= $value;
next;
}
# Ok, this was a real option, add it # Ok, this was a real option, add it
push(@{$tinfo->{$opt_name}}, $opt); push(@{$tinfo->{$opt_name}}, $opt);
} }
......
...@@ -212,7 +212,6 @@ my $opt_suite_timeout = $ENV{MTR_SUITE_TIMEOUT} || 300; # minutes ...@@ -212,7 +212,6 @@ my $opt_suite_timeout = $ENV{MTR_SUITE_TIMEOUT} || 300; # minutes
my $opt_shutdown_timeout= $ENV{MTR_SHUTDOWN_TIMEOUT} || 10; # seconds my $opt_shutdown_timeout= $ENV{MTR_SHUTDOWN_TIMEOUT} || 10; # seconds
my $opt_start_timeout = $ENV{MTR_START_TIMEOUT} || 180; # seconds my $opt_start_timeout = $ENV{MTR_START_TIMEOUT} || 180; # seconds
sub testcase_timeout { return $opt_testcase_timeout * 60; };
sub suite_timeout { return $opt_suite_timeout * 60; }; sub suite_timeout { return $opt_suite_timeout * 60; };
sub check_timeout { return $opt_testcase_timeout * 6; }; sub check_timeout { return $opt_testcase_timeout * 6; };
...@@ -241,6 +240,17 @@ my $opt_callgrind; ...@@ -241,6 +240,17 @@ my $opt_callgrind;
my %mysqld_logs; my %mysqld_logs;
my $opt_debug_sync_timeout= 300; # Default timeout for WAIT_FOR actions. my $opt_debug_sync_timeout= 300; # Default timeout for WAIT_FOR actions.
sub testcase_timeout ($) {
my ($tinfo)= @_;
if (exists $tinfo->{'case-timeout'}) {
# Return test specific timeout if *longer* that the general timeout
my $test_to= $tinfo->{'case-timeout'};
$test_to*= 10 if $opt_valgrind;
return $test_to * 60 if $test_to > $opt_testcase_timeout;
}
return $opt_testcase_timeout * 60;
}
our $opt_warnings= 1; our $opt_warnings= 1;
our $opt_skip_ndbcluster= 0; our $opt_skip_ndbcluster= 0;
...@@ -3469,7 +3479,7 @@ sub run_testcase ($) { ...@@ -3469,7 +3479,7 @@ sub run_testcase ($) {
} }
} }
my $test_timeout= start_timer(testcase_timeout()); my $test_timeout= start_timer(testcase_timeout($tinfo));
do_before_run_mysqltest($tinfo); do_before_run_mysqltest($tinfo);
...@@ -3669,7 +3679,7 @@ sub run_testcase ($) { ...@@ -3669,7 +3679,7 @@ sub run_testcase ($) {
{ {
my $log_file_name= $opt_vardir."/log/".$tinfo->{shortname}.".log"; my $log_file_name= $opt_vardir."/log/".$tinfo->{shortname}.".log";
$tinfo->{comment}= $tinfo->{comment}=
"Test case timeout after ".testcase_timeout(). "Test case timeout after ".testcase_timeout($tinfo).
" seconds\n\n"; " seconds\n\n";
# Add 20 last executed commands from test case log file # Add 20 last executed commands from test case log file
if (-e $log_file_name) if (-e $log_file_name)
...@@ -3678,7 +3688,7 @@ sub run_testcase ($) { ...@@ -3678,7 +3688,7 @@ sub run_testcase ($) {
"== $log_file_name == \n". "== $log_file_name == \n".
mtr_lastlinesfromfile($log_file_name, 20)."\n"; mtr_lastlinesfromfile($log_file_name, 20)."\n";
} }
$tinfo->{'timeout'}= testcase_timeout(); # Mark as timeout $tinfo->{'timeout'}= testcase_timeout($tinfo); # Mark as timeout
run_on_all($tinfo, 'analyze-timeout'); run_on_all($tinfo, 'analyze-timeout');
report_failure_and_restart($tinfo); report_failure_and_restart($tinfo);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment