mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
Merge mskold@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/usr/local/home/marty/MySQL/mysql-4.1
This commit is contained in:
commit
efbf87be07
3 changed files with 87 additions and 49 deletions
|
@ -2990,8 +2990,7 @@ recv_reset_log_files_for_backup(
|
|||
memcpy(name + log_dir_len, logfilename, sizeof logfilename);
|
||||
|
||||
buf = ut_malloc(LOG_FILE_HDR_SIZE + OS_FILE_LOG_BLOCK_SIZE);
|
||||
memset(buf, LOG_FILE_HDR_SIZE + OS_FILE_LOG_BLOCK_SIZE, '\0');
|
||||
|
||||
memset(buf, '\0', LOG_FILE_HDR_SIZE + OS_FILE_LOG_BLOCK_SIZE);
|
||||
|
||||
for (i = 0; i < n_log_files; i++) {
|
||||
|
||||
|
|
|
@ -381,8 +381,14 @@ row_upd_changes_field_size_or_external(
|
|||
new_len = new_val->len;
|
||||
|
||||
if (new_len == UNIV_SQL_NULL) {
|
||||
/* A bug fixed on Dec 31st, 2004: we looked at the
|
||||
SQL NULL size from the wrong field! We may backport
|
||||
this fix also to 4.0. The merge to 5.0 will be made
|
||||
manually immediately after we commit this to 4.1. */
|
||||
|
||||
new_len = dtype_get_sql_null_size(
|
||||
dict_index_get_nth_type(index, i));
|
||||
dict_index_get_nth_type(index,
|
||||
upd_field->field_no));
|
||||
}
|
||||
|
||||
old_len = rec_get_nth_field_size(rec, upd_field->field_no);
|
||||
|
|
|
@ -95,6 +95,7 @@ $Devel::Trace::TRACE= 1;
|
|||
|
||||
my @skip_if_embedded_server=
|
||||
(
|
||||
"alter_table",
|
||||
"bdb-deadlock",
|
||||
"connect",
|
||||
"flush_block_commit",
|
||||
|
@ -148,6 +149,7 @@ our @mysqld_src_dirs=
|
|||
|
||||
our $glob_win32= 0;
|
||||
our $glob_mysql_test_dir= undef;
|
||||
our $glob_mysql_bench_dir= undef;
|
||||
our $glob_hostname= undef;
|
||||
our $glob_scriptname= undef;
|
||||
our $glob_use_running_server= 0;
|
||||
|
@ -237,6 +239,8 @@ our $opt_skip_test;
|
|||
|
||||
our $opt_sleep;
|
||||
|
||||
our $opt_ps_protocol;
|
||||
|
||||
# FIXME all of the sleep time handling needs cleanup
|
||||
our $opt_sleep_time_after_restart= 1;
|
||||
our $opt_sleep_time_for_delete= 10;
|
||||
|
@ -301,7 +305,7 @@ sub mysqld_arguments ($$$$$);
|
|||
sub stop_masters_slaves ();
|
||||
sub stop_masters ();
|
||||
sub stop_slaves ();
|
||||
sub run_mysqltest ($);
|
||||
sub run_mysqltest ($$);
|
||||
|
||||
######################################################################
|
||||
#
|
||||
|
@ -396,6 +400,7 @@ sub initial_setup () {
|
|||
# 'basedir' is always parent of "mysql-test" directory
|
||||
$glob_mysql_test_dir= cwd();
|
||||
$glob_basedir= dirname($glob_mysql_test_dir);
|
||||
$glob_mysql_bench_dir= "$glob_basedir/mysql-bench"; # FIXME make configurable
|
||||
|
||||
$path_timefile= "$glob_mysql_test_dir/var/log/mysqltest-time";
|
||||
|
||||
|
@ -441,6 +446,7 @@ sub command_line_setup () {
|
|||
'debug' => \$opt_debug,
|
||||
'do-test=s' => \$opt_do_test,
|
||||
'embedded-server' => \$opt_embedded_server,
|
||||
'ps-protocol' => \$opt_ps_protocol,
|
||||
'extern' => \$opt_extern,
|
||||
'fast' => \$opt_fast,
|
||||
'force' => \$opt_force,
|
||||
|
@ -458,6 +464,7 @@ sub command_line_setup () {
|
|||
'netware' => \$opt_netware,
|
||||
'no-manager' => \$opt_no_manager,
|
||||
'old-master' => \$opt_old_master,
|
||||
'ps-protocol' => \$opt_ps_protocol,
|
||||
'record' => \$opt_record,
|
||||
'script-debug' => \$opt_script_debug,
|
||||
'skip-rpl' => \$opt_skip_rpl,
|
||||
|
@ -526,7 +533,7 @@ sub command_line_setup () {
|
|||
|
||||
if ( $opt_extern and $opt_local )
|
||||
{
|
||||
die "Can't use --extern and --local at the same time";
|
||||
mtr_error("Can't use --extern and --local at the same time");
|
||||
}
|
||||
|
||||
if ( ! $opt_socket )
|
||||
|
@ -568,7 +575,7 @@ sub command_line_setup () {
|
|||
|
||||
if ( $opt_extern )
|
||||
{
|
||||
die "Can't use --extern with --embedded-server";
|
||||
mtr_error("Can't use --extern with --embedded-server");
|
||||
}
|
||||
$opt_result_ext= ".es";
|
||||
}
|
||||
|
@ -589,12 +596,14 @@ sub command_line_setup () {
|
|||
$opt_sleep_time_after_restart= $opt_sleep;
|
||||
}
|
||||
|
||||
if ( $opt_gcov )
|
||||
if ( $opt_gcov and ! $opt_source_dist )
|
||||
{
|
||||
if ( $opt_source_dist )
|
||||
{
|
||||
die "Coverage test needs the source - please use source dist";
|
||||
}
|
||||
mtr_error("Coverage test needs the source - please use source dist");
|
||||
}
|
||||
|
||||
if ( $glob_use_embedded_server and ! $opt_source_dist )
|
||||
{
|
||||
mtr_error("Embedded server needs source tree - please use source dist");
|
||||
}
|
||||
|
||||
if ( $opt_gdb )
|
||||
|
@ -602,7 +611,7 @@ sub command_line_setup () {
|
|||
$opt_wait_timeout= 300;
|
||||
if ( $opt_extern )
|
||||
{
|
||||
die "Can't use --extern with --gdb";
|
||||
mtr_error("Can't use --extern with --gdb");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -611,7 +620,7 @@ sub command_line_setup () {
|
|||
$opt_gdb= 1;
|
||||
if ( $opt_extern )
|
||||
{
|
||||
die "Can't use --extern with --manual-gdb";
|
||||
mtr_error("Can't use --extern with --manual-gdb");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -619,7 +628,7 @@ sub command_line_setup () {
|
|||
{
|
||||
if ( $opt_extern )
|
||||
{
|
||||
die "Can't use --extern with --ddd";
|
||||
mtr_error("Can't use --extern with --ddd");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -689,10 +698,10 @@ sub executable_setup () {
|
|||
{
|
||||
mtr_error("Cannot find embedded server 'mysqltest'");
|
||||
}
|
||||
$path_tests_bindir= "$glob_basedir/libmysqld/examples";
|
||||
}
|
||||
else
|
||||
{
|
||||
$exe_mysqld= "$glob_basedir/sql/mysqld";
|
||||
if ( -f "$glob_basedir/client/.libs/lt-mysqltest" )
|
||||
{
|
||||
$exe_mysqltest= "$glob_basedir/client/.libs/lt-mysqltest";
|
||||
|
@ -705,6 +714,7 @@ sub executable_setup () {
|
|||
{
|
||||
$exe_mysqltest= "$glob_basedir/client/mysqltest";
|
||||
}
|
||||
$path_tests_bindir= "$glob_basedir/tests";
|
||||
}
|
||||
if ( -f "$glob_basedir/client/.libs/mysqldump" )
|
||||
{
|
||||
|
@ -723,8 +733,8 @@ sub executable_setup () {
|
|||
$exe_mysqlbinlog= "$glob_basedir/client/mysqlbinlog";
|
||||
}
|
||||
|
||||
$exe_mysqld= "$glob_basedir/sql/mysqld";
|
||||
$path_client_bindir= "$glob_basedir/client";
|
||||
$path_tests_bindir= "$glob_basedir/tests";
|
||||
$exe_mysqladmin= "$path_client_bindir/mysqladmin";
|
||||
$exe_mysql= "$path_client_bindir/mysql";
|
||||
$path_language= "$glob_basedir/sql/share/english/";
|
||||
|
@ -791,7 +801,7 @@ sub handle_int_signal () {
|
|||
$SIG{INT}= 'DEFAULT'; # If we get a ^C again, we die...
|
||||
mtr_warning("got INT signal, cleaning up.....");
|
||||
stop_masters_slaves();
|
||||
exit(1);
|
||||
mtr_error("We die from ^C signal from user");
|
||||
}
|
||||
|
||||
|
||||
|
@ -806,7 +816,7 @@ sub collect_test_cases () {
|
|||
|
||||
my @tests; # Array of hash, will be array of C struct
|
||||
|
||||
opendir(TESTDIR, $testdir) or die "Can't open dir \"$testdir\": $!";
|
||||
opendir(TESTDIR, $testdir) or mtr_error("Can't open dir \"$testdir\": $!");
|
||||
|
||||
foreach my $elem ( sort readdir(TESTDIR) ) {
|
||||
my $tname= mtr_match_extension($elem,"test");
|
||||
|
@ -1066,7 +1076,7 @@ sub sleep_until_file_created ($$) {
|
|||
|
||||
if ( ! -r $pidfile )
|
||||
{
|
||||
die "No $pidfile was created";
|
||||
mtr_error("No $pidfile was created");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1084,7 +1094,7 @@ sub ndbcluster_start () {
|
|||
mtr_report("Starting ndbcluster");
|
||||
my $ndbcluster_opts= $opt_bench ? "" : "--small";
|
||||
# FIXME check result code?!
|
||||
mtr_run("./ndb/ndbcluster",
|
||||
mtr_run("$glob_mysql_test_dir/ndb/ndbcluster",
|
||||
["--port-base=$opt_ndbcluster_port",
|
||||
$ndbcluster_opts,
|
||||
"--diskless",
|
||||
|
@ -1094,7 +1104,7 @@ sub ndbcluster_start () {
|
|||
}
|
||||
|
||||
sub ndbcluster_stop () {
|
||||
mtr_run("./ndb/ndbcluster",
|
||||
mtr_run("$glob_mysql_test_dir/ndb/ndbcluster",
|
||||
["--data-dir=$glob_mysql_test_dir/var",
|
||||
"--port-base=$opt_ndbcluster_port",
|
||||
"--stop"],
|
||||
|
@ -1142,17 +1152,17 @@ sub run_benchmarks ($) {
|
|||
if ( ! $benchmark )
|
||||
{
|
||||
mtr_add_arg($args, "--log");
|
||||
mtr_run("./run-all-tests", $args, "", "", "", "");
|
||||
mtr_run("$glob_mysql_bench_dir/run-all-tests", $args, "", "", "", "");
|
||||
# FIXME check result code?!
|
||||
}
|
||||
elsif ( -x $benchmark )
|
||||
{
|
||||
mtr_run("./$benchmark", $args, "", "", "", "");
|
||||
mtr_run("$glob_mysql_bench_dir/$benchmark", $args, "", "", "", "");
|
||||
# FIXME check result code?!
|
||||
}
|
||||
else
|
||||
{
|
||||
mtr_error("benchmark $benchmark not found");
|
||||
mtr_error("Benchmark $benchmark not found");
|
||||
}
|
||||
|
||||
chdir($glob_mysql_test_dir); # Go back
|
||||
|
@ -1172,6 +1182,8 @@ sub run_benchmarks ($) {
|
|||
|
||||
sub run_tests () {
|
||||
|
||||
mtr_report("Finding Tests");
|
||||
|
||||
my $tests= collect_test_cases();
|
||||
|
||||
mtr_report("Starting Tests");
|
||||
|
@ -1255,7 +1267,7 @@ sub install_db ($$) {
|
|||
if ( mtr_run($exe_mysqld, $args, $init_db_sql,
|
||||
$path_manager_log, $path_manager_log, "") != 0 )
|
||||
{
|
||||
mtr_error("error executing mysqld --bootstrap\n" .
|
||||
mtr_error("Error executing mysqld --bootstrap\n" .
|
||||
"Could not install $type test DBs");
|
||||
}
|
||||
}
|
||||
|
@ -1293,6 +1305,7 @@ sub run_testcase ($) {
|
|||
|
||||
if ( $tinfo->{'skip'} )
|
||||
{
|
||||
mtr_report_test_name($tinfo);
|
||||
mtr_report_test_skipped($tinfo);
|
||||
return;
|
||||
}
|
||||
|
@ -1323,14 +1336,24 @@ sub run_testcase ($) {
|
|||
# ----------------------------------------------------------------------
|
||||
|
||||
stop_slaves();
|
||||
}
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# Start masters
|
||||
# ----------------------------------------------------------------------
|
||||
# ----------------------------------------------------------------------
|
||||
# Prepare to start masters. Even if we use embedded, we want to run
|
||||
# the preparation.
|
||||
# ----------------------------------------------------------------------
|
||||
|
||||
mtr_tofile($master->[0]->{'path_myerr'},"CURRENT_TEST: $tname\n");
|
||||
do_before_start_master($tname,$tinfo->{'master_sh'});
|
||||
mtr_tofile($master->[0]->{'path_myerr'},"CURRENT_TEST: $tname\n");
|
||||
do_before_start_master($tname,$tinfo->{'master_sh'});
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# Start masters
|
||||
# ----------------------------------------------------------------------
|
||||
|
||||
mtr_report_test_name($tinfo);
|
||||
|
||||
if ( ! $glob_use_running_server and ! $glob_use_embedded_server )
|
||||
{
|
||||
# FIXME give the args to the embedded server?!
|
||||
# FIXME what does $opt_local_master mean?!
|
||||
# FIXME split up start and check that started so that can do
|
||||
|
@ -1385,9 +1408,7 @@ sub run_testcase ($) {
|
|||
unlink("r/$tname.reject");
|
||||
unlink($path_timefile);
|
||||
|
||||
mtr_report_test_name($tinfo);
|
||||
|
||||
my $res= run_mysqltest($tinfo);
|
||||
my $res= run_mysqltest($tinfo, $tinfo->{'master_opt'});
|
||||
|
||||
if ( $res == 0 )
|
||||
{
|
||||
|
@ -1470,7 +1491,7 @@ sub do_before_start_master ($$) {
|
|||
if ( $master_init_script and
|
||||
mtr_run($master_init_script, [], "", "", "", "") != 0 )
|
||||
{
|
||||
mtr_error("can't run $master_init_script");
|
||||
mtr_error("Can't run $master_init_script");
|
||||
}
|
||||
# for gcov FIXME needed? If so we need more absolute paths
|
||||
# chdir($glob_basedir);
|
||||
|
@ -1501,7 +1522,7 @@ sub do_before_start_slave ($$) {
|
|||
if ( $slave_init_script and
|
||||
mtr_run($slave_init_script, [], "", "", "", "") != 0 )
|
||||
{
|
||||
mtr_error("can't run $slave_init_script");
|
||||
mtr_error("Can't run $slave_init_script");
|
||||
}
|
||||
|
||||
unlink("$glob_mysql_test_dir/var/slave-data/log.*");
|
||||
|
@ -1525,9 +1546,11 @@ sub mysqld_arguments ($$$$$) {
|
|||
if ( $glob_use_embedded_server )
|
||||
{
|
||||
$prefix= "--server-arg=";
|
||||
} else {
|
||||
# We can't pass embedded server --no-defaults
|
||||
mtr_add_arg($args, "%s--no-defaults", $prefix);
|
||||
}
|
||||
|
||||
mtr_add_arg($args, "%s--no-defaults", $prefix);
|
||||
mtr_add_arg($args, "%s--basedir=%s", $prefix, $path_my_basedir);
|
||||
mtr_add_arg($args, "%s--character-sets-dir=%s", $prefix, $path_charsetsdir);
|
||||
mtr_add_arg($args, "%s--core", $prefix);
|
||||
|
@ -1815,7 +1838,7 @@ sub mysqld_start ($$$$) {
|
|||
}
|
||||
}
|
||||
|
||||
die "Can't start mysqld FIXME";
|
||||
mtr_error("Can't start mysqld FIXME");
|
||||
}
|
||||
|
||||
sub stop_masters_slaves () {
|
||||
|
@ -1870,8 +1893,9 @@ sub stop_slaves () {
|
|||
}
|
||||
|
||||
|
||||
sub run_mysqltest ($) {
|
||||
my $tinfo= shift;
|
||||
sub run_mysqltest ($$) {
|
||||
my $tinfo= shift;
|
||||
my $master_opts= shift;
|
||||
|
||||
# FIXME set where????
|
||||
my $cmdline_mysqldump= "$exe_mysqldump --no-defaults -uroot " .
|
||||
|
@ -1901,19 +1925,11 @@ sub run_mysqltest ($) {
|
|||
$ENV{'CLIENT_BINDIR'}= $path_client_bindir;
|
||||
$ENV{'TESTS_BINDIR'}= $path_tests_bindir;
|
||||
|
||||
my $exe= $exe_mysqltest;
|
||||
my $args; # Arg vector
|
||||
my $exe= $exe_mysqltest;
|
||||
my $args;
|
||||
|
||||
mtr_init_args(\$args);
|
||||
|
||||
if ( $opt_strace_client )
|
||||
{
|
||||
$exe= "strace"; # FIXME there are ktrace, ....
|
||||
mtr_add_arg($args, "-o");
|
||||
mtr_add_arg($args, "%s/var/log/mysqltest.strace", $glob_mysql_test_dir);
|
||||
mtr_add_arg($args, "$exe_mysqltest");
|
||||
}
|
||||
|
||||
mtr_add_arg($args, "--no-defaults");
|
||||
mtr_add_arg($args, "--socket=%s", $master->[0]->{'path_mysock'});
|
||||
mtr_add_arg($args, "--database=test");
|
||||
|
@ -1925,6 +1941,19 @@ sub run_mysqltest ($) {
|
|||
mtr_add_arg($args, "--tmpdir=%s", $opt_tmpdir);
|
||||
mtr_add_arg($args, "--port=%d", $master->[0]->{'path_myport'});
|
||||
|
||||
if ( $opt_ps_protocol )
|
||||
{
|
||||
mtr_add_arg($args, "--ps-protocol");
|
||||
}
|
||||
|
||||
if ( $opt_strace_client )
|
||||
{
|
||||
$exe= "strace"; # FIXME there are ktrace, ....
|
||||
mtr_add_arg($args, "-o");
|
||||
mtr_add_arg($args, "%s/var/log/mysqltest.strace", $glob_mysql_test_dir);
|
||||
mtr_add_arg($args, "$exe_mysqltest");
|
||||
}
|
||||
|
||||
if ( $opt_timer )
|
||||
{
|
||||
mtr_add_arg($args, "--timer-file=var/log/timer");
|
||||
|
@ -1966,6 +1995,10 @@ sub run_mysqltest ($) {
|
|||
mtr_add_arg($args, "-R");
|
||||
mtr_add_arg($args, $tinfo->{'result_file'});
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# If embedded server, we create server args to give mysqltest to pass on
|
||||
# ----------------------------------------------------------------------
|
||||
|
||||
if ( $glob_use_embedded_server )
|
||||
{
|
||||
mysqld_arguments($args,'master',0,$tinfo->{'master_opt'},[]);
|
||||
|
|
Loading…
Reference in a new issue