Commit 82338d45 authored by unknown's avatar unknown

Merge neptunus:mysql/mysql-5.0-maint

into  pilot.mysql.com:/home/msvensson/mysql/mysql-5.0-maint

parents b461c41c 275c5802
...@@ -288,6 +288,7 @@ sub collect_one_test_case($$$$$$$) { ...@@ -288,6 +288,7 @@ sub collect_one_test_case($$$$$$$) {
$tinfo->{'timezone'}= "GMT-3"; # for UNIX_TIMESTAMP tests to work $tinfo->{'timezone'}= "GMT-3"; # for UNIX_TIMESTAMP tests to work
$tinfo->{'slave_num'}= 0; # Default, no slave $tinfo->{'slave_num'}= 0; # Default, no slave
$tinfo->{'master_num'}= 1; # Default, 1 master
if ( defined mtr_match_prefix($tname,"rpl") ) if ( defined mtr_match_prefix($tname,"rpl") )
{ {
if ( $::opt_skip_rpl ) if ( $::opt_skip_rpl )
...@@ -297,13 +298,8 @@ sub collect_one_test_case($$$$$$$) { ...@@ -297,13 +298,8 @@ sub collect_one_test_case($$$$$$$) {
return; return;
} }
$tinfo->{'slave_num'}= 1; # Default for rpl* tests, use one slave $tinfo->{'slave_num'}= 1; # Default for rpl* tests, use one slave
if ( $tname eq 'rpl_failsafe' or $tname eq 'rpl_chain_temp_table' )
{
# $tinfo->{'slave_num'}= 3; # Not 3 ? Check old code, strange
}
} }
if ( defined mtr_match_prefix($tname,"federated") ) if ( defined mtr_match_prefix($tname,"federated") )
...@@ -582,6 +578,7 @@ our @tags= ...@@ -582,6 +578,7 @@ our @tags=
["include/have_debug.inc", "need_debug", 1], ["include/have_debug.inc", "need_debug", 1],
["include/have_ndb.inc", "ndb_test", 1], ["include/have_ndb.inc", "ndb_test", 1],
["include/have_ndb_extra.inc", "ndb_extra", 1], ["include/have_ndb_extra.inc", "ndb_extra", 1],
["include/have_multi_ndb.inc", "master_num", 2],
["require_manager", "require_manager", 1], ["require_manager", "require_manager", 1],
); );
......
...@@ -220,7 +220,8 @@ sub spawn_parent_impl { ...@@ -220,7 +220,8 @@ sub spawn_parent_impl {
my $ret_pid= waitpid($pid,0); my $ret_pid= waitpid($pid,0);
if ( $ret_pid != $pid ) if ( $ret_pid != $pid )
{ {
mtr_error("$path ($pid) got lost somehow"); mtr_error("waitpid($pid, 0) returned $ret_pid " .
"when waiting for '$path'");
} }
return mtr_process_exit_status($?); return mtr_process_exit_status($?);
......
...@@ -230,10 +230,12 @@ our $opt_ndbconnectstring_slave; ...@@ -230,10 +230,12 @@ our $opt_ndbconnectstring_slave;
our $opt_record; our $opt_record;
my $opt_report_features; my $opt_report_features;
our $opt_check_testcases; our $opt_check_testcases;
our $opt_mark_progress;
our $opt_skip; our $opt_skip;
our $opt_skip_rpl; our $opt_skip_rpl;
our $max_slave_num= 0; our $max_slave_num= 0;
our $max_master_num= 0;
our $use_innodb; our $use_innodb;
our $opt_skip_test; our $opt_skip_test;
our $opt_skip_im; our $opt_skip_im;
...@@ -412,6 +414,15 @@ sub main () { ...@@ -412,6 +414,15 @@ sub main () {
$max_slave_num= $test->{slave_num}; $max_slave_num= $test->{slave_num};
mtr_error("Too many slaves") if $max_slave_num > 3; mtr_error("Too many slaves") if $max_slave_num > 3;
} }
# Count max number of masters used by a test case
if ( $test->{master_num} > $max_master_num)
{
$max_master_num= $test->{master_num};
mtr_error("Too many masters") if $max_master_num > 2;
mtr_error("Too few masters") if $max_master_num < 1;
}
$use_innodb||= $test->{'innodb_test'}; $use_innodb||= $test->{'innodb_test'};
} }
...@@ -535,6 +546,7 @@ sub command_line_setup () { ...@@ -535,6 +546,7 @@ sub command_line_setup () {
# Test case authoring # Test case authoring
'record' => \$opt_record, 'record' => \$opt_record,
'check-testcases' => \$opt_check_testcases, 'check-testcases' => \$opt_check_testcases,
'mark-progress' => \$opt_mark_progress,
# Extra options used when starting mysqld # Extra options used when starting mysqld
'mysqld=s' => \@opt_extra_mysqld_opt, 'mysqld=s' => \@opt_extra_mysqld_opt,
...@@ -1205,6 +1217,19 @@ sub command_line_setup () { ...@@ -1205,6 +1217,19 @@ sub command_line_setup () {
$path_ndb_testrun_log= "$opt_vardir/log/ndb_testrun.log"; $path_ndb_testrun_log= "$opt_vardir/log/ndb_testrun.log";
$path_snapshot= "$opt_tmpdir/snapshot_$opt_master_myport/"; $path_snapshot= "$opt_tmpdir/snapshot_$opt_master_myport/";
if ( $opt_valgrind and $opt_debug )
{
# When both --valgrind and --debug is selected, send
# all output to the trace file, making it possible to
# see the exact location where valgrind complains
foreach my $mysqld (@{$master}, @{$slave})
{
my $sidx= $mysqld->{idx} ? "$mysqld->{idx}" : "";
$mysqld->{path_myerr}=
"$opt_vardir/log/" . $mysqld->{type} . "$sidx.trace";
}
}
} }
# #
...@@ -1253,9 +1278,10 @@ sub set_mtr_build_thread_ports($) { ...@@ -1253,9 +1278,10 @@ sub set_mtr_build_thread_ports($) {
sub datadir_list_setup () { sub datadir_list_setup () {
# Make a list of all data_dirs # Make a list of all data_dirs
@data_dir_lst = ( for (my $idx= 0; $idx < $max_master_num; $idx++)
$master->[0]->{'path_myddir'}, {
$master->[1]->{'path_myddir'}); push(@data_dir_lst, $master->[$idx]->{'path_myddir'});
}
for (my $idx= 0; $idx < $max_slave_num; $idx++) for (my $idx= 0; $idx < $max_slave_num; $idx++)
{ {
...@@ -2724,8 +2750,10 @@ sub mysql_install_db () { ...@@ -2724,8 +2750,10 @@ sub mysql_install_db () {
install_db('master', $master->[0]->{'path_myddir'}); install_db('master', $master->[0]->{'path_myddir'});
# FIXME check if testcase really is using second master if ($max_master_num)
{
copy_install_db('master', $master->[1]->{'path_myddir'}); copy_install_db('master', $master->[1]->{'path_myddir'});
}
# Install the number of slave databses needed # Install the number of slave databses needed
for (my $idx= 0; $idx < $max_slave_num; $idx++) for (my $idx= 0; $idx < $max_slave_num; $idx++)
...@@ -4259,7 +4287,8 @@ sub run_testcase_start_servers($) { ...@@ -4259,7 +4287,8 @@ sub run_testcase_start_servers($) {
} }
if ( $clusters->[0]->{'pid'} and ! $master->[1]->{'pid'} ) if ( $clusters->[0]->{'pid'} and ! $master->[1]->{'pid'} and
$tinfo->{'master_num'} > 1 )
{ {
# Test needs cluster, start an extra mysqld connected to cluster # Test needs cluster, start an extra mysqld connected to cluster
...@@ -4470,6 +4499,10 @@ sub run_mysqltest ($) { ...@@ -4470,6 +4499,10 @@ sub run_mysqltest ($) {
mtr_add_arg($args, "--tmpdir=%s", $opt_tmpdir); mtr_add_arg($args, "--tmpdir=%s", $opt_tmpdir);
mtr_add_arg($args, "--character-sets-dir=%s", $path_charsetsdir); mtr_add_arg($args, "--character-sets-dir=%s", $path_charsetsdir);
# Log line number and time for each line in .test file
mtr_add_arg($args, "--mark-progress")
if $opt_mark_progress;
if ($tinfo->{'component_id'} eq 'im') if ($tinfo->{'component_id'} eq 'im')
{ {
mtr_add_arg($args, "--socket=%s", $instance_manager->{'path_sock'}); mtr_add_arg($args, "--socket=%s", $instance_manager->{'path_sock'});
...@@ -4925,6 +4958,7 @@ Options for test case authoring ...@@ -4925,6 +4958,7 @@ Options for test case authoring
record TESTNAME (Re)genereate the result file for TESTNAME record TESTNAME (Re)genereate the result file for TESTNAME
check-testcases Check testcases for sideeffects check-testcases Check testcases for sideeffects
mark-progress Log line number and elapsed time to <testname>.progress
Options that pass on options Options that pass on options
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment