maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #01043
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@xxxxxxxxxxxx-20090924121915-k4ooompd72l2hkn5
parent: psergey@xxxxxxxxxxxx-20090901115954-nge2brzh3akkmtlz
committer: sanja@xxxxxxxxxxxx
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.