[Maria-developers] Rev 2724: Ability to stop mysql-test-run.pl temporary (useful for them who run buildbot slave on thier work computers) in file:///Users/bell/maria/bzr/work-maria-5.1/
At file:///Users/bell/maria/bzr/work-maria-5.1/ ------------------------------------------------------------ revno: 2724 revision-id: sanja@askmonty.org-20090924121915-k4ooompd72l2hkn5 parent: psergey@askmonty.org-20090901115954-nge2brzh3akkmtlz committer: sanja@askmonty.org branch nick: work-maria-5.1 timestamp: Thu 2009-09-24 15:19:15 +0300 message: Ability to stop mysql-test-run.pl temporary (useful for them who run buildbot slave on thier work computers) === modified file 'mysql-test/lib/mtr_misc.pl' --- a/mysql-test/lib/mtr_misc.pl 2009-02-19 09:01:25 +0000 +++ b/mysql-test/lib/mtr_misc.pl 2009-09-24 12:19:15 +0000 @@ -174,4 +174,24 @@ 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; === modified file 'mysql-test/mysql-test-run.pl' --- a/mysql-test/mysql-test-run.pl 2009-06-22 08:06:35 +0000 +++ b/mysql-test/mysql-test-run.pl 2009-09-24 12:19:15 +0000 @@ -252,6 +252,11 @@ 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); $| = 1; # Automatically flush STDOUT @@ -450,6 +455,15 @@ my $s= IO::Select->new(); $s->add($server); 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 foreach my $sock (@ready) { if ($sock == $server) { @@ -931,6 +945,8 @@ 'warnings!' => \$opt_warnings, 'timestamp' => \&report_option, 'timediff' => \&report_option, + 'stop-file=s' => \$opt_stop_file, + 'stop-keep-alive=i' => \$opt_stop_keep_alive, 'help|h' => \$opt_usage, 'list-options' => \$opt_list_options, @@ -5392,6 +5408,14 @@ warnings Scan the log files for warnings. Use --nowarnings 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 debug-sync-timeout=NUM Set default timeout for WAIT_FOR debug sync actions. Disable facility with NUM=0.
participants (1)
-
sanja@askmonty.org