|
199 | 199 | our $opt_manual_gdb; |
200 | 200 | our $opt_manual_ddd; |
201 | 201 | our $opt_manual_debug; |
| 202 | +our $opt_mtr_build_thread=0; |
202 | 203 | our $opt_debugger; |
203 | 204 | our $opt_client_debugger; |
204 | 205 |
|
|
213 | 214 |
|
214 | 215 | our $instance_manager; |
215 | 216 |
|
| 217 | +our $opt_master_myport; |
| 218 | +our $opt_slave_myport; |
| 219 | +our $im_port; |
| 220 | +our $im_mysqld1_port; |
| 221 | +our $im_mysqld2_port; |
216 | 222 | our $opt_ndbcluster_port; |
217 | 223 | our $opt_ndbconnectstring; |
218 | 224 | our $opt_ndbcluster_port_slave; |
|
313 | 319 | sub main (); |
314 | 320 | sub initial_setup (); |
315 | 321 | sub command_line_setup (); |
| 322 | +sub set_mtr_build_thread_ports($); |
316 | 323 | sub datadir_setup (); |
317 | 324 | sub executable_setup (); |
318 | 325 | sub environment_setup (); |
|
455 | 462 | $opt_suite= "main"; # Special default suite |
456 | 463 | my $opt_comment; |
457 | 464 |
|
458 | | - my $opt_master_myport= 9306; |
459 | | - my $opt_slave_myport= 9308; |
| 465 | + $opt_master_myport= 9306; |
| 466 | + $opt_slave_myport= 9308; |
460 | 467 | $opt_ndbcluster_port= 9310; |
461 | 468 | $opt_ndbcluster_port_slave= 9311; |
462 | | - my $im_port= 9312; |
463 | | - my $im_mysqld1_port= 9313; |
464 | | - my $im_mysqld2_port= 9314; |
| 469 | + $im_port= 9312; |
| 470 | + $im_mysqld1_port= 9313; |
| 471 | + $im_mysqld2_port= 9314; |
465 | 472 |
|
466 | | - # |
467 | | - # To make it easier for different devs to work on the same host, |
468 | | - # an environment variable can be used to control all ports. A small |
469 | | - # number is to be used, 0 - 16 or similar. |
470 | | - # |
471 | | - # Note the MASTER_MYPORT has to be set the same in all 4.x and 5.x |
472 | | - # versions of this script, else a 4.0 test run might conflict with a |
473 | | - # 5.1 test run, even if different MTR_BUILD_THREAD is used. This means |
474 | | - # all port numbers might not be used in this version of the script. |
475 | | - # |
476 | | - # Also note the limiteation of ports we are allowed to hand out. This |
477 | | - # differs between operating systems and configuration, see |
478 | | - # http://www.ncftp.com/ncftpd/doc/misc/ephemeral_ports.html |
479 | | - # But a fairly safe range seems to be 5001 - 32767 |
480 | 473 | if ( $ENV{'MTR_BUILD_THREAD'} ) |
481 | 474 | { |
482 | | - # Up to two masters, up to three slaves |
483 | | - $opt_master_myport= $ENV{'MTR_BUILD_THREAD'} * 10 + 10000; # and 1 |
484 | | - $opt_slave_myport= $opt_master_myport + 2; # and 3 4 |
485 | | - $opt_ndbcluster_port= $opt_master_myport + 5; |
486 | | - $opt_ndbcluster_port_slave= $opt_master_myport + 6; |
487 | | - $im_port= $opt_master_myport + 7; |
488 | | - $im_mysqld1_port= $opt_master_myport + 8; |
489 | | - $im_mysqld2_port= $opt_master_myport + 9; |
490 | | - } |
491 | | - |
492 | | - if ( $opt_master_myport < 5001 or $opt_master_myport + 10 >= 32767 ) |
493 | | - { |
494 | | - mtr_error("MTR_BUILD_THREAD number results in a port", |
495 | | - "outside 5001 - 32767", |
496 | | - "($opt_master_myport - $opt_master_myport + 10)"); |
| 475 | + set_mtr_build_thread_ports($ENV{'MTR_BUILD_THREAD'}); |
497 | 476 | } |
498 | 477 |
|
499 | 478 | # This is needed for test log evaluation in "gen-build-status-page" |
|
545 | 524 | 'im-port=i' => \$im_port, # Instance Manager port. |
546 | 525 | 'im-mysqld1-port=i' => \$im_mysqld1_port, # Port of mysqld, controlled by IM |
547 | 526 | 'im-mysqld2-port=i' => \$im_mysqld2_port, # Port of mysqld, controlled by IM |
| 527 | + 'mtr-build-thread=i' => \$opt_mtr_build_thread, |
548 | 528 |
|
549 | 529 | # Test case authoring |
550 | 530 | 'record' => \$opt_record, |
|
627 | 607 |
|
628 | 608 | $glob_scriptname= basename($0); |
629 | 609 |
|
| 610 | + if ($opt_mtr_build_thread != 0) |
| 611 | + { |
| 612 | + set_mtr_build_thread_ports($opt_mtr_build_thread) |
| 613 | + } |
| 614 | + elsif ($ENV{'MTR_BUILD_THREAD'}) |
| 615 | + { |
| 616 | + $opt_mtr_build_thread= $ENV{'MTR_BUILD_THREAD'}; |
| 617 | + } |
| 618 | + |
630 | 619 | # We require that we are in the "mysql-test" directory |
631 | 620 | # to run mysql-test-run |
632 | 621 | if (! -f $glob_scriptname) |
|
775 | 764 | { |
776 | 765 | mtr_report("Using tmpfs in $fs"); |
777 | 766 | $opt_mem= "$fs/var"; |
778 | | - $opt_mem .= $ENV{'MTR_BUILD_THREAD'} if $ENV{'MTR_BUILD_THREAD'}; |
| 767 | + $opt_mem .= $opt_mtr_build_thread if $opt_mtr_build_thread; |
779 | 768 | last; |
780 | 769 | } |
781 | 770 | } |
@@ -1230,6 +1219,43 @@ () |
1230 | 1219 | $path_snapshot= "$opt_tmpdir/snapshot_$opt_master_myport/"; |
1231 | 1220 | } |
1232 | 1221 |
|
| 1222 | +# |
| 1223 | +# To make it easier for different devs to work on the same host, |
| 1224 | +# an environment variable can be used to control all ports. A small |
| 1225 | +# number is to be used, 0 - 16 or similar. |
| 1226 | +# |
| 1227 | +# Note the MASTER_MYPORT has to be set the same in all 4.x and 5.x |
| 1228 | +# versions of this script, else a 4.0 test run might conflict with a |
| 1229 | +# 5.1 test run, even if different MTR_BUILD_THREAD is used. This means |
| 1230 | +# all port numbers might not be used in this version of the script. |
| 1231 | +# |
| 1232 | +# Also note the limitation of ports we are allowed to hand out. This |
| 1233 | +# differs between operating systems and configuration, see |
| 1234 | +# http://www.ncftp.com/ncftpd/doc/misc/ephemeral_ports.html |
| 1235 | +# But a fairly safe range seems to be 5001 - 32767 |
| 1236 | +# |
| 1237 | + |
| 1238 | +sub set_mtr_build_thread_ports() { |
| 1239 | + my $mtr_build_thread= shift; |
| 1240 | + |
| 1241 | + # Up to two masters, up to three slaves |
| 1242 | + $opt_master_myport= $mtr_build_thread * 10 + 10000; # and 1 |
| 1243 | + $opt_slave_myport= $opt_master_myport + 2; # and 3 4 |
| 1244 | + $opt_ndbcluster_port= $opt_master_myport + 5; |
| 1245 | + $opt_ndbcluster_port_slave= $opt_master_myport + 6; |
| 1246 | + $im_port= $opt_master_myport + 7; |
| 1247 | + $im_mysqld1_port= $opt_master_myport + 8; |
| 1248 | + $im_mysqld2_port= $opt_master_myport + 9; |
| 1249 | + |
| 1250 | + if ( $opt_master_myport < 5001 or $opt_master_myport + 10 >= 32767 ) |
| 1251 | + { |
| 1252 | + mtr_error("MTR_BUILD_THREAD number results in a port", |
| 1253 | + "outside 5001 - 32767", |
| 1254 | + "($opt_master_myport - $opt_master_myport + 10)"); |
| 1255 | + } |
| 1256 | +} |
| 1257 | + |
| 1258 | + |
1233 | 1259 | sub datadir_setup () { |
1234 | 1260 |
|
1235 | 1261 | # Make a list of all data_dirs |
|
1648 | 1674 | $ENV{'IM_PATH_SOCK'}= $instance_manager->{path_sock}; |
1649 | 1675 | $ENV{'IM_USERNAME'}= $instance_manager->{admin_login}; |
1650 | 1676 | $ENV{'IM_PASSWORD'}= $instance_manager->{admin_password}; |
1651 | | - $ENV{MTR_BUILD_THREAD}= 0 unless $ENV{MTR_BUILD_THREAD}; # Set if not set |
| 1677 | + $ENV{MTR_BUILD_THREAD}= $opt_mtr_build_thread; |
1652 | 1678 |
|
1653 | 1679 | $ENV{'EXE_MYSQL'}= $exe_mysql; |
1654 | 1680 |
|
|
2048 | 2074 | } |
2049 | 2075 |
|
2050 | 2076 | # Remove old log files |
2051 | | - foreach my $name (glob("r/*.reject r/*.progress r/*.log r/*.warnings")) |
| 2077 | + foreach my $name (glob("r/*.progress r/*.log r/*.warnings")) |
2052 | 2078 | { |
2053 | 2079 | unlink($name); |
2054 | 2080 | } |
@@ -3000,14 +3026,14 @@ ($) |
3000 | 3026 | { |
3001 | 3027 | my ($tinfo)= @_; |
3002 | 3028 |
|
3003 | | - # Open mysqltest.log |
| 3029 | + # Open mysqltest-time |
3004 | 3030 | my $F= IO::File->new($path_timefile) or |
3005 | 3031 | mtr_error("can't open file \"$path_timefile\": $!"); |
3006 | 3032 | my $reason; |
3007 | 3033 |
|
3008 | 3034 | while ( my $line= <$F> ) |
3009 | 3035 | { |
3010 | | - # Look for "reason: <reason fo skiping test>" |
| 3036 | + # Look for "reason: <reason for skipping test>" |
3011 | 3037 | if ( $line =~ /reason: (.*)/ ) |
3012 | 3038 | { |
3013 | 3039 | $reason= $1; |
@@ -4762,6 +4788,8 @@ ($) |
4762 | 4788 | slave_port=PORT Specify the port number used by the first slave |
4763 | 4789 | ndbcluster-port=PORT Specify the port number used by cluster |
4764 | 4790 | ndbcluster-port-slave=PORT Specify the port number used by slave cluster |
| 4791 | + mtr-build-thread=# Specify unique collection of ports. Can also be set by |
| 4792 | + setting the environment variable MTR_BUILD_THREAD. |
4765 | 4793 |
|
4766 | 4794 | Options for test case authoring |
4767 | 4795 |
|
|
0 commit comments