maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #00877
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-20090902091710-4p0hjwa0usl3e8av
parent: psergey@xxxxxxxxxxxx-20090901115954-nge2brzh3akkmtlz
committer: sanja@xxxxxxxxxxxx
branch nick: work-maria-5.1
timestamp: Wed 2009-09-02 12:17:10 +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-02 09:17:10 +0000
@@ -174,4 +174,21 @@
select(undef, undef, undef, ($millis/1000));
}
+sub mtr_wait_lock_file {
+ die "usage: mtr_wait_lock_file(path_to_file, show_stop)" unless @_ == 2;
+ my ($file, $show)= @_;
+ my $waited= 0;
+
+ while ( -e $file)
+ {
+ if (!$waited && $show)
+ {
+ print "\nGOING TO STOP...\n";
+ }
+ mtr_milli_sleep(1000);
+ $waited= 1;
+ }
+ 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-02 09:17:10 +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 message when test suite goint to be stopped
+my $opt_show_stop= 0;
+
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_show_stop))
+ {
+ # 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,
+ 'show-stop' => \$opt_show_stop,
'help|h' => \$opt_usage,
'list-options' => \$opt_list_options,
@@ -5392,6 +5408,12 @@
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.
+ show-stop works with stop-file, print message when mysql test
+ switches to waiting to removing the file mode.
+
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.