mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
merge
This commit is contained in:
@ -174,4 +174,24 @@ sub mtr_milli_sleep {
|
|||||||
select(undef, undef, undef, ($millis/1000));
|
select(undef, undef, undef, ($millis/1000));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub mtr_wait_lock_file {
|
||||||
|
die "usage: mtr_wait_lock_file(path_to_file, keep_alive)" unless @_ == 2;
|
||||||
|
my ($file, $keep_alive)= @_;
|
||||||
|
my $waited= 0;
|
||||||
|
my $msg_counter= $keep_alive;
|
||||||
|
|
||||||
|
while ( -e $file)
|
||||||
|
{
|
||||||
|
if ($keep_alive && !$msg_counter)
|
||||||
|
{
|
||||||
|
print "\n-STOPPED- [pass] ".$keep_alive."\n";
|
||||||
|
$msg_counter= $keep_alive;
|
||||||
|
}
|
||||||
|
mtr_milli_sleep(1000);
|
||||||
|
$waited= 1;
|
||||||
|
$msg_counter--;
|
||||||
|
}
|
||||||
|
return ($waited);
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
@ -253,6 +253,11 @@ my $opt_max_test_fail= $ENV{MTR_MAX_TEST_FAIL} || 10;
|
|||||||
|
|
||||||
my $opt_parallel= $ENV{MTR_PARALLEL} || 1;
|
my $opt_parallel= $ENV{MTR_PARALLEL} || 1;
|
||||||
|
|
||||||
|
# lock file to stop tests
|
||||||
|
my $opt_stop_file= $ENV{MTR_STOP_FILE};
|
||||||
|
# print messages when test suite is stopped (for buildbot)
|
||||||
|
my $opt_stop_keep_alive= $ENV{MTR_STOP_KEEP_ALIVE};
|
||||||
|
|
||||||
select(STDOUT);
|
select(STDOUT);
|
||||||
$| = 1; # Automatically flush STDOUT
|
$| = 1; # Automatically flush STDOUT
|
||||||
|
|
||||||
@ -451,6 +456,15 @@ sub run_test_server ($$$) {
|
|||||||
my $s= IO::Select->new();
|
my $s= IO::Select->new();
|
||||||
$s->add($server);
|
$s->add($server);
|
||||||
while (1) {
|
while (1) {
|
||||||
|
if ($opt_stop_file)
|
||||||
|
{
|
||||||
|
if (mtr_wait_lock_file($opt_stop_file, $opt_stop_keep_alive))
|
||||||
|
{
|
||||||
|
# We were waiting so restart timer process
|
||||||
|
$suite_timeout_proc->kill();
|
||||||
|
$suite_timeout_proc= My::SafeProcess->timer(suite_timeout());
|
||||||
|
}
|
||||||
|
}
|
||||||
my @ready = $s->can_read(1); # Wake up once every second
|
my @ready = $s->can_read(1); # Wake up once every second
|
||||||
foreach my $sock (@ready) {
|
foreach my $sock (@ready) {
|
||||||
if ($sock == $server) {
|
if ($sock == $server) {
|
||||||
@ -933,6 +947,8 @@ sub command_line_setup {
|
|||||||
'warnings!' => \$opt_warnings,
|
'warnings!' => \$opt_warnings,
|
||||||
'timestamp' => \&report_option,
|
'timestamp' => \&report_option,
|
||||||
'timediff' => \&report_option,
|
'timediff' => \&report_option,
|
||||||
|
'stop-file=s' => \$opt_stop_file,
|
||||||
|
'stop-keep-alive=i' => \$opt_stop_keep_alive,
|
||||||
|
|
||||||
'help|h' => \$opt_usage,
|
'help|h' => \$opt_usage,
|
||||||
'list-options' => \$opt_list_options,
|
'list-options' => \$opt_list_options,
|
||||||
@ -5409,6 +5425,14 @@ Misc options
|
|||||||
warnings Scan the log files for warnings. Use --nowarnings
|
warnings Scan the log files for warnings. Use --nowarnings
|
||||||
to turn off.
|
to turn off.
|
||||||
|
|
||||||
|
stop-file=file (also MTR_STOP_FILE environment variable) if this
|
||||||
|
file detected mysql test will not start new tests
|
||||||
|
until the file will be removed.
|
||||||
|
stop-keep-alive=sec (also MTR_STOP_KEEP_ALIVE environment variable)
|
||||||
|
works with stop-file, print messages every sec
|
||||||
|
seconds when mysql test is waiting to removing
|
||||||
|
the file (for buildbot)
|
||||||
|
|
||||||
sleep=SECONDS Passed to mysqltest, will be used as fixed sleep time
|
sleep=SECONDS Passed to mysqltest, will be used as fixed sleep time
|
||||||
debug-sync-timeout=NUM Set default timeout for WAIT_FOR debug sync
|
debug-sync-timeout=NUM Set default timeout for WAIT_FOR debug sync
|
||||||
actions. Disable facility with NUM=0.
|
actions. Disable facility with NUM=0.
|
||||||
|
Reference in New Issue
Block a user