List:Commits« Previous MessageNext Message »
From:msvensson Date:April 28 2006 8:30am
Subject:bk commit into 5.0 tree (msvensson:1.2102)
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of msvensson. When msvensson does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet
  1.2102 06/04/28 08:30:49 msvensson@neptunus.(none) +4 -0
  Merge bk-internal:/home/bk/mysql-5.0
  into  neptunus.(none):/home/msvensson/mysql/mysql-5.0

  sql/sql_parse.cc
    1.541 06/04/28 08:30:43 msvensson@neptunus.(none) +0 -0
    Auto merged

  mysql-test/t/trigger.test
    1.43 06/04/28 08:30:43 msvensson@neptunus.(none) +0 -0
    Auto merged

  mysql-test/r/trigger.result
    1.38 06/04/28 08:30:43 msvensson@neptunus.(none) +0 -0
    Auto merged

  mysql-test/mysql-test-run.pl
    1.91 06/04/28 08:30:43 msvensson@neptunus.(none) +0 -0
    Auto merged

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	msvensson
# Host:	neptunus.(none)
# Root:	/home/msvensson/mysql/mysql-5.0/RESYNC

--- 1.90/mysql-test/mysql-test-run.pl	2006-04-27 17:29:59 +02:00
+++ 1.91/mysql-test/mysql-test-run.pl	2006-04-28 08:30:43 +02:00
@@ -156,9 +156,9 @@
 our $path_language;
 our $path_timefile;
 our $path_snapshot;
-our $path_manager_log;           # Used by mysqldadmin
 our $path_slave_load_tmpdir;     # What is this?!
 our $path_mysqltest_log;
+our $path_current_test_log;
 our $path_my_basedir;
 our $opt_vardir;                 # A path but set directly on cmd line
 our $opt_vardir_trace;           # unix formatted opt_vardir for trace files
@@ -188,6 +188,7 @@
 our $exe_slave_mysqld;
 our $exe_im;
 our $exe_my_print_defaults;
+our $lib_udf_example;
 
 our $opt_bench= 0;
 our $opt_small_bench= 0;
@@ -205,7 +206,6 @@
 our $opt_cursor_protocol;
 our $opt_view_protocol;
 
-our $opt_current_test;
 our $opt_debug;
 our $opt_do_test;
 our @opt_cases;                  # The test cases names in argv
@@ -246,9 +246,6 @@
 our $opt_ndbcluster_port;
 our $opt_ndbconnectstring;
 
-our $opt_no_manager;            # Does nothing now, we never use manager
-our $opt_manager_port;          # Does nothing now, we never use manager
-
 our $opt_old_master;
 
 our $opt_record;
@@ -258,6 +255,7 @@
 
 our $opt_skip;
 our $opt_skip_rpl;
+our $use_slaves;
 our $opt_skip_test;
 our $opt_skip_im;
 
@@ -339,6 +337,7 @@
 sub kill_running_server ();
 sub kill_and_cleanup ();
 sub check_ssl_support ();
+sub check_running_as_root();
 sub check_ndbcluster_support ();
 sub ndbcluster_install ();
 sub ndbcluster_start ($);
@@ -377,6 +376,7 @@
 
   check_ndbcluster_support(); # We check whether to actually use it later
   check_ssl_support();
+  check_running_as_root();
 
   environment_setup();
   signal_setup();
@@ -407,16 +407,15 @@
     my $tests= collect_test_cases($opt_suite);
 
     # Turn off NDB and other similar options if no tests use it
-    my ($need_ndbcluster,$need_im,$need_slave);
+    my ($need_ndbcluster,$need_im);
     foreach my $test (@$tests)
     {
       $need_ndbcluster||= $test->{ndb_test};
       $need_im||= $test->{component_id} eq 'im';
-      $need_slave||= $test->{slave_num};
+      $use_slaves||= $test->{slave_num};
     }
     $opt_with_ndbcluster= 0 unless $need_ndbcluster;
     $opt_skip_im= 1 unless $need_im;
-    $opt_skip_rpl= 1 unless $need_slave;
 
     snapshot_setup();
     initialize_servers();
@@ -558,7 +557,6 @@
              'compress'                 => \$opt_compress,
              'bench'                    => \$opt_bench,
              'small-bench'              => \$opt_small_bench,
-             'no-manager'               => \$opt_no_manager, # Currently not used
 
              # Control what test suites or cases to run
              'force'                    => \$opt_force,
@@ -575,7 +573,6 @@
              'master_port=i'            => \$opt_master_myport,
              'slave_port=i'             => \$opt_slave_myport,
              'ndbcluster_port=i'        => \$opt_ndbcluster_port,
-             'manager-port=i'           => \$opt_manager_port, # Currently not used
              'im-port=i'                => \$im_port, # Instance Manager port.
              'im-mysqld1-port=i'        => \$im_mysqld1_port, # Port of mysqld,
controlled by IM
              'im-mysqld2-port=i'        => \$im_mysqld2_port, # Port of mysqld,
controlled by IM
@@ -717,11 +714,6 @@
 
   $opt_tmpdir=       "$opt_vardir/tmp" unless $opt_tmpdir;
   $opt_tmpdir =~ s,/+$,,;       # Remove ending slash if any
-  # FIXME maybe not needed?
-  $path_manager_log= "$opt_vardir/log/manager.log"
-    unless $path_manager_log;
-  $opt_current_test= "$opt_vardir/log/current_test"
-    unless $opt_current_test;
 
   # --------------------------------------------------------------------------
   # Do sanity checks of command line arguments
@@ -970,6 +962,7 @@
 
   $path_timefile=  "$opt_vardir/log/mysqltest-time";
   $path_mysqltest_log=  "$opt_vardir/log/mysqltest.log";
+  $path_current_test_log= "$opt_vardir/log/current_test";
 
   $path_snapshot= "$opt_tmpdir/snapshot_$opt_master_myport/";
 }
@@ -981,7 +974,7 @@
     $master->[0]->{'path_myddir'},
     $master->[1]->{'path_myddir'});
 
-  unless ($opt_skip_rpl)
+  if ($use_slaves)
   {
     push @data_dir_lst, ($slave->[0]->{'path_myddir'},
                          $slave->[1]->{'path_myddir'},
@@ -1063,6 +1056,8 @@
       mtr_script_exists("$glob_basedir/scripts/mysql_fix_privilege_tables");
     $path_ndb_tools_dir= mtr_path_exists("$glob_basedir/ndb/tools");
     $exe_ndb_mgm=        "$glob_basedir/ndb/src/mgmclient/ndb_mgm";
+    $lib_udf_example=
+      mtr_file_exists("$glob_basedir/sql/.libs/udf_example.so");
   }
   else
   {
@@ -1155,7 +1150,7 @@
   # Add the path where mysqld will find udf_example.so
   # --------------------------------------------------------------------------
   $ENV{'LD_LIBRARY_PATH'}=
-    "$glob_basedir/sql/.libs" .
+    ($lib_udf_example ?  dirname($lib_udf_example) : "") .
       ($ENV{'LD_LIBRARY_PATH'} ? ":$ENV{'LD_LIBRARY_PATH'}" : "");
 
 
@@ -1181,6 +1176,7 @@
   $ENV{'MYSQL_TCP_PORT'}=     3306;
 
   $ENV{'NDBCLUSTER_PORT'}=    $opt_ndbcluster_port;
+  $ENV{'NDB_STATUS_OK'}=      "YES";
 
   $ENV{'IM_PATH_PID'}=        $instance_manager->{path_pid};
   $ENV{'IM_PORT'}=            $instance_manager->{port};
@@ -1219,6 +1215,7 @@
   $SIG{INT}= \&handle_int_signal;
 }
 
+
 sub handle_int_signal () {
   $SIG{INT}= 'DEFAULT';         # If we get a ^C again, we die...
   mtr_warning("got INT signal, cleaning up.....");
@@ -1335,6 +1332,33 @@
 }
 
 
+sub  check_running_as_root () {
+  # Check if running as root
+  # i.e a file can be read regardless what mode we set it to
+  my $test_file= "test_running_as_root.txt";
+  mtr_tofile($test_file, "MySQL");
+  chmod(oct("0000"), $test_file);
+
+  my $result="";
+  if (open(FILE,"<",$test_file))
+  {
+    $result= join('', <FILE>);
+    close FILE;
+  }
+
+  chmod(oct("0755"), $test_file);
+  unlink($test_file);
+
+  $ENV{'MYSQL_TEST_ROOT'}= "NO";
+  if ($result eq "MySQL")
+  {
+    mtr_warning("running this script as _root_ will cause some " .
+                "tests to be skipped");
+    $ENV{'MYSQL_TEST_ROOT'}= "YES";
+  }
+}
+
+
 
 sub check_ssl_support () {
 
@@ -1407,7 +1431,6 @@
   return;
 }
 
-# FIXME why is there a different start below?!
 
 sub ndbcluster_install () {
 
@@ -1434,6 +1457,7 @@
   return 0;
 }
 
+
 sub ndbcluster_start ($) {
   my $use_ndbcluster= shift;
 
@@ -1467,6 +1491,7 @@
   return 0;
 }
 
+
 sub ndbcluster_stop () {
   if ( ! $using_ndbcluster_master or $glob_use_running_ndbcluster )
   {
@@ -1636,7 +1661,7 @@
   install_db('master', $master->[0]->{'path_myddir'});
   install_db('master', $master->[1]->{'path_myddir'});
 
-  if ( ! $opt_skip_rpl )
+  if ( $use_slaves )
   {
     install_db('slave',  $slave->[0]->{'path_myddir'});
     install_db('slave',  $slave->[1]->{'path_myddir'});
@@ -1656,6 +1681,7 @@
       mtr_report("ndbcluster_install failed, continuing without cluster");
       $opt_with_ndbcluster= 0;
       $flag_ndb_status_ok= 0;
+      $ENV{'NDB_STATUS_OK'}= "NO";
     }
     else
     {
@@ -1677,7 +1703,7 @@
   my $init_db_sql_tmp= "/tmp/init_db.sql$$";
   my $args;
 
-  mtr_report("Installing \u$type Databases");
+  mtr_report("Installing \u$type Database");
 
   open(IN, $init_db_sql)
     or mtr_error("Can't open $init_db_sql: $!");
@@ -1721,8 +1747,15 @@
     mtr_add_arg($args, "--character-sets-dir=%s", $path_charsetsdir);
   }
 
+  # Log bootstrap command
+  my $path_bootstrap_log= "$opt_vardir/log/bootstrap.log";
+  mtr_tofile($path_bootstrap_log,
+	     "$exe_mysqld " . join(" ", @$args) . "\n");
+
   if ( mtr_run($exe_mysqld, $args, $init_db_sql_tmp,
-               $path_manager_log, $path_manager_log, "") != 0 )
+               $path_bootstrap_log, $path_bootstrap_log,
+	       "", { append_log_file => 1 }) != 0 )
+
   {
     unlink($init_db_sql_tmp);
     mtr_error("Error executing mysqld --bootstrap\n" .
@@ -1744,15 +1777,15 @@
   my $instance_manager = shift;
 
   my $pwd_file_path = $instance_manager->{'password_file'};
-  
+
   mtr_report("Creating IM password file ($pwd_file_path)");
-  
+
   open(OUT, ">", $pwd_file_path)
     or mtr_error("Can't write to $pwd_file_path: $!");
-  
+
   print OUT $instance_manager->{'admin_login'}, ":",
         $instance_manager->{'admin_sha1'}, "\n";
-  
+
   close(OUT);
 }
 
@@ -1764,7 +1797,7 @@
 
   open(OUT, ">", $defaults_file)
     or mtr_error("Can't write to $defaults_file: $!");
-  
+
   print OUT <<EOF
 [mysql]
 
@@ -1843,7 +1876,7 @@
 
   my $tname= $tinfo->{'name'};
 
-  mtr_tonewfile($opt_current_test,"$tname\n"); # Always tell where we are
+  mtr_tonewfile($path_current_test_log,"$tname\n"); # Always tell where we are
 
   # output current test to ndbcluster log file to enable diagnostics
   mtr_tofile($file_ndb_testrun_log,"CURRENT TEST $tname\n");
@@ -1922,7 +1955,7 @@
     # ----------------------------------------------------------------------
 
     stop_slaves();
-  }    
+  }
 
   # ----------------------------------------------------------------------
   # Prepare to start masters. Even if we use embedded, we want to run
@@ -1935,9 +1968,9 @@
 
   mtr_tofile($master->[0]->{'path_myerr'},"CURRENT_TEST: $tname\n");
 
-# FIXME test cases that depend on each other, prevent this from
-# being at this location.
-#  do_before_start_master($tname,$tinfo->{'master_sh'});
+  # FIXME test cases that depend on each other, prevent this from
+  # being at this location.
+  # do_before_start_master($tname,$tinfo->{'master_sh'});
 
   # ----------------------------------------------------------------------
   # If any mysqld servers running died, we have to know
@@ -2114,25 +2147,6 @@
   }
 }
 
-sub copy_dir($$) {
-  my $from_dir= shift;
-  my $to_dir= shift;
-
-  mkpath("$to_dir");
-  opendir(DIR, "$from_dir")
-    or mtr_error("Can't find $from_dir$!");
-  for(readdir(DIR)) {
-    next if "$_" eq "." or "$_" eq "..";
-    if ( -d "$from_dir/$_" )
-    {
-      copy_dir("$from_dir/$_", "$to_dir/$_");
-      next;
-    }
-    copy("$from_dir/$_", "$to_dir/$_");
-  }
-  closedir(DIR);
-
-}
 
 #
 # Save a snapshot of the installed test db(s)
@@ -2146,7 +2160,7 @@
   foreach my $data_dir (@data_dir_lst)
   {
     my $name= basename($data_dir);
-    copy_dir("$data_dir", "$path_snapshot/$name");
+    mtr_copy_dir("$data_dir", "$path_snapshot/$name");
   }
 }
 
@@ -2170,6 +2184,7 @@
   }
 }
 
+
 #
 # Restore snapshot of the installed test db(s)
 # if the snapshot exists
@@ -2188,7 +2203,7 @@
       my $name= basename($data_dir);
       save_files_before_restore($test_name, $data_dir);
       rmtree("$data_dir");
-      copy_dir("$path_snapshot/$name", "$data_dir");
+      mtr_copy_dir("$path_snapshot/$name", "$data_dir");
     }
     if ($opt_with_ndbcluster)
     {
@@ -2239,9 +2254,9 @@
 #
 ##############################################################################
 
+
 # The embedded server needs the cleanup so we do some of the start work
 # but stop before actually running mysqld or anything.
-
 sub do_before_start_master ($$) {
   my $tname=       shift;
   my $init_script= shift;
@@ -2274,13 +2289,14 @@
     if ( $ret != 0 )
     {
       # FIXME rewrite those scripts to return 0 if successful
-#      mtr_warning("$init_script exited with code $ret");
+      # mtr_warning("$init_script exited with code $ret");
     }
   }
   # for gcov  FIXME needed? If so we need more absolute paths
-# chdir($glob_basedir);
+  # chdir($glob_basedir);
 }
 
+
 sub do_before_start_slave ($$) {
   my $tname=       shift;
   my $init_script= shift;
@@ -2308,7 +2324,7 @@
     if ( $ret != 0 )
     {
       # FIXME rewrite those scripts to return 0 if successful
-#      mtr_warning("$init_script exited with code $ret");
+      # mtr_warning("$init_script exited with code $ret");
     }
   }
 
@@ -2318,6 +2334,7 @@
   }
 }
 
+
 sub mysqld_arguments ($$$$$$) {
   my $args=              shift;
   my $type=              shift;        # master/slave/bootstrap
@@ -2541,14 +2558,6 @@
   return $args;
 }
 
-# FIXME
-#  if ( $type eq 'master' and $glob_use_embedded_server )
-#  {
-#    # Add a -A to each argument to pass it to embedded server
-#    my @mysqltest_opt=  map {("-A",$_)} @args;
-#    $opt_extra_mysqltest_opt=  \@mysqltest_opt;
-#    return;
-#  }
 
 ##############################################################################
 #
@@ -2648,6 +2657,7 @@
   return 0;
 }
 
+
 sub stop_masters_slaves () {
 
   print  "Ending Tests\n";
@@ -2657,7 +2667,7 @@
     print  "Shutting-down Instance Manager\n";
     im_stop($instance_manager);
   }
-  
+
   print  "Shutting-down MySQL daemon\n\n";
   stop_masters();
   print "Master(s) shutdown finished\n";
@@ -2665,6 +2675,7 @@
   print "Slave(s) shutdown finished\n";
 }
 
+
 sub stop_masters () {
 
   my @args;
@@ -2694,6 +2705,7 @@
   mtr_stop_mysqld_servers(\@args);
 }
 
+
 sub stop_slaves () {
   my $force= shift;
 
@@ -2736,7 +2748,7 @@
     mtr_add_arg($args, $opt);
   }
 
-  $instance_manager->{'pid'} = 
+  $instance_manager->{'pid'} =
     mtr_spawn(
       $exe_im,                          # path to the executable
       $args,                            # cmd-line args
@@ -2752,7 +2764,7 @@
     mtr_report('Could not start Instance Manager');
     return;
   }
-  
+
   # Instance Manager can be run in daemon mode. In this case, it creates
   # several processes and the parent process, created by mtr_spawn(), exits just
   # after start. So, we have to obtain Instance Manager PID from the PID file.
@@ -2770,6 +2782,7 @@
     mtr_get_pid_from_file($instance_manager->{'path_pid'});
 }
 
+
 sub im_stop($) {
   my $instance_manager = shift;
 
@@ -2804,12 +2817,13 @@
   # Kill processes.
 
   mtr_kill_processes(\@pids);
-  
+
   stop_reap_all();
 
   $instance_manager->{'pid'} = undef;
 }
 
+
 #
 # Run include/check-testcase.test
 # Before a testcase, run in record mode, save result file to var
@@ -2858,6 +2872,7 @@
   }
 }
 
+
 sub run_mysqltest ($) {
   my $tinfo=       shift;
 
@@ -2931,11 +2946,6 @@
     "--port=$master->[0]->{'path_myport'} " .
     "--socket=$master->[0]->{'path_mysock'}";
 
-
-
-  # FIXME really needing a PATH???
-  # $ENV{'PATH'}=
"/bin:/usr/bin:/usr/local/bin:/usr/bsd:/usr/X11R6/bin:/usr/openwin/bin:/usr/bin/X11:$ENV{'PATH'}";
-
   $ENV{'MYSQL'}=                    $cmdline_mysql;
   $ENV{'MYSQL_CHECK'}=              $cmdline_mysqlcheck;
   $ENV{'MYSQL_DUMP'}=               $cmdline_mysqldump;
@@ -2946,8 +2956,9 @@
   $ENV{'MYSQL_CLIENT_TEST'}=        $cmdline_mysql_client_test;
   $ENV{'CHARSETSDIR'}=              $path_charsetsdir;
   $ENV{'MYSQL_MY_PRINT_DEFAULTS'}=  $exe_my_print_defaults;
+  $ENV{'UDF_EXAMPLE_LIB'}=
+    ($lib_udf_example ? basename($lib_udf_example) : "");
 
-  $ENV{'NDB_STATUS_OK'}=            $flag_ndb_status_ok;
   $ENV{'NDB_MGM'}=                  $exe_ndb_mgm;
   $ENV{'NDB_BACKUP_DIR'}=           $path_ndb_data_dir;
   $ENV{'NDB_DATA_DIR'}=             $path_ndb_data_dir;
@@ -3199,6 +3210,7 @@
   $$exe= "xterm";
 }
 
+
 #
 # Modify the exe and args so that program is run in ddd
 #
@@ -3444,18 +3456,18 @@
 
 Options not yet described, or that I want to look into more
 
-  big-test              
-  debug                 
-  local                 
-  local-master          
-  netware               
-  old-master            
-  sleep=SECONDS         
-  socket=PATH           
-  user-test=s           
-  wait-timeout=SECONDS  
-  warnings              
-  log-warnings          
+  big-test
+  debug
+  local
+  local-master
+  netware
+  old-master
+  sleep=SECONDS
+  socket=PATH
+  user-test=s
+  wait-timeout=SECONDS
+  warnings
+  log-warnings
 
 HERE
   mtr_exit(1);
Thread
bk commit into 5.0 tree (msvensson:1.2102)msvensson28 Apr