⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mysql-test-run.pl

📁 开启mysql的远程连接的方法 mysql-noinstall-5.1.6-alpha-win32.zip
💻 PL
📖 第 1 页 / 共 5 页
字号:
    return;  }  mtr_report("Using ndbcluster, mysqld supports it");  $opt_with_ndbcluster= 1;  if ( $opt_ndbconnectstring )  {    $glob_use_running_ndbcluster= 1;  }  else  {    $opt_ndbconnectstring= "host=localhost:$opt_ndbcluster_port";  }  if ( $opt_skip_ndbcluster_slave )  {    $opt_with_ndbcluster_slave= 0;  }  else  {    $opt_with_ndbcluster_slave= 1;    if ( $opt_ndbconnectstring_slave )    {      $glob_use_running_ndbcluster_slave= 1;    }    else    {      $opt_ndbconnectstring_slave= "host=localhost:$opt_ndbcluster_port_slave";    }  }  return;}# FIXME why is there a different start below?!sub ndbcluster_install () {  if ( ! $opt_with_ndbcluster or $glob_use_running_ndbcluster )  {    return 0;  }  mtr_report("Installing ndbcluster master");  my $ndbcluster_opts=  $opt_bench ? "" : "--small";  if (  mtr_run("$glob_mysql_test_dir/ndb/ndbcluster",		["--port=$opt_ndbcluster_port",		 "--data-dir=$opt_vardir",		 "--verbose=2",		 $ndbcluster_opts,		 "--initial",                 "--relative-config-data-dir",	         "--core"],		"", "", "", "") )  {    mtr_error("Error ndbcluster_install");    return 1;  }  $using_ndbcluster_master= 1;  ndbcluster_stop();  $master->[0]->{'ndbcluster'}= 1;  return 0;}sub ndbcluster_start ($) {  my $use_ndbcluster= shift;  if ( ! $use_ndbcluster )  {    $using_ndbcluster_master= 0;    return 0;  }  if ( $glob_use_running_ndbcluster )  {    $using_ndbcluster_master= 1;    return 0;  }  if ( $using_ndbcluster_master )  {    return 0;  }  # FIXME, we want to _append_ output to file $file_ndb_testrun_log instead of /dev/null  #mtr_report("Starting ndbcluster master");  if ( mtr_run("$glob_mysql_test_dir/ndb/ndbcluster",	       ["--port=$opt_ndbcluster_port",		"--data-dir=$opt_vardir",		"--verbose=2",	        "--core"],	       "", "/dev/null", "", "") )  {    mtr_error("Error ndbcluster_start");    $using_ndbcluster_master= 0;    return 1;  }  $using_ndbcluster_master= 1;  return 0;}sub rm_ndbcluster_tables ($) {  my $dir=       shift;  foreach my $bin ( glob("$dir/cluster_replication/apply_status*"),                    glob("$dir/cluster_replication/schema*") )  {    unlink($bin);  }}sub ndbcluster_stop () {  if ( ! $using_ndbcluster_master or $glob_use_running_ndbcluster )  {    $using_ndbcluster_master= 0;    return;  }  # FIXME, we want to _append_ output to file $file_ndb_testrun_log instead of /dev/null  #mtr_report("Stopping ndbcluster master");  mtr_run("$glob_mysql_test_dir/ndb/ndbcluster",          ["--port=$opt_ndbcluster_port",           "--data-dir=$opt_vardir",	   "--verbose=2",           "--stop"],          "", "/dev/null", "", "");  rm_ndbcluster_tables ($master->[0]->{'path_myddir'});  rm_ndbcluster_tables ($master->[1]->{'path_myddir'});  $using_ndbcluster_master= 0;  return;}sub ndbcluster_install_slave () {  if ( ! $opt_with_ndbcluster_slave or $glob_use_running_ndbcluster_slave )  {    return 0;  }  mtr_report("Installing ndbcluster slave");  if (  mtr_run("$glob_mysql_test_dir/ndb/ndbcluster",		["--port=$opt_ndbcluster_port_slave",		 "--data-dir=$opt_vardir",		 "--verbose=2",		 "--small",		 "--ndbd-nodes=1",		 "--initial",		 "--relative-config-data-dir",		 "--core"],		"", "", "", "") )  {    mtr_error("Error ndbcluster_install_slave");    return 1;  }  $using_ndbcluster_slave= 1;  ndbcluster_stop_slave();  $slave->[0]->{'ndbcluster'}= 1;  return 0;}sub ndbcluster_start_slave ($) {  my $use_ndbcluster= shift;  if ( ! $use_ndbcluster )  {    $using_ndbcluster_slave= 0;    return 0;  }  if ( $glob_use_running_ndbcluster_slave )  {    $using_ndbcluster_slave= 1;    return 0;  }  # FIXME, we want to _append_ output to file $file_ndb_testrun_log instead of /dev/null  #mtr_report("Starting ndbcluster slave");  if ( mtr_run("$glob_mysql_test_dir/ndb/ndbcluster",	       ["--port=$opt_ndbcluster_port_slave",		"--data-dir=$opt_vardir",		"--verbose=2",		"--ndbd-nodes=1",	        "--core"],	       "", "/dev/null", "", "") )  {    mtr_error("Error ndbcluster_start_slave");    $using_ndbcluster_slave= 0;    return 1;  }  $using_ndbcluster_slave= 1;  return 0;}sub ndbcluster_stop_slave () {  if ( ! $using_ndbcluster_slave or $glob_use_running_ndbcluster_slave )  {    $using_ndbcluster_slave= 0;    return;  }  # FIXME, we want to _append_ output to file $file_ndb_testrun_log instead of /dev/null  #mtr_report("Stopping ndbcluster slave");  mtr_run("$glob_mysql_test_dir/ndb/ndbcluster",          ["--port=$opt_ndbcluster_port_slave",           "--data-dir=$opt_vardir",	   "--verbose=2",           "--stop"],          "", "/dev/null", "", "");  rm_ndbcluster_tables ($slave->[0]->{'path_myddir'});  $using_ndbcluster_slave= 0;  return;}################################################################################  Run the benchmark suite###############################################################################sub run_benchmarks ($) {  my $benchmark=  shift;  my $args;  if ( ! $glob_use_embedded_server and ! $opt_local_master )  {    $master->[0]->{'pid'}= mysqld_start('master',0,[],[],					$using_ndbcluster_master);    if ( ! $master->[0]->{'pid'} )    {      mtr_error("Can't start the mysqld server");    }  }  mtr_init_args(\$args);  mtr_add_arg($args, "--socket=%s", $master->[0]->{'path_mysock'});  mtr_add_arg($args, "--user=%s", $opt_user);  if ( $opt_small_bench )  {    mtr_add_arg($args, "--small-test");    mtr_add_arg($args, "--small-tables");  }  if ( $opt_with_ndbcluster )  {    mtr_add_arg($args, "--create-options=TYPE=ndb");  }  my $benchdir=  "$glob_basedir/sql-bench";  chdir($benchdir);             # FIXME check error  # FIXME write shorter....  if ( ! $benchmark )  {    mtr_add_arg($args, "--log");    mtr_run("$glob_mysql_bench_dir/run-all-tests", $args, "", "", "", "");    # FIXME check result code?!  }  elsif ( -x $benchmark )  {    mtr_run("$glob_mysql_bench_dir/$benchmark", $args, "", "", "", "");    # FIXME check result code?!  }  else  {    mtr_error("Benchmark $benchmark not found");  }  chdir($glob_mysql_test_dir);          # Go back  if ( ! $glob_use_embedded_server )  {    stop_masters();  }}################################################################################  Run the test suite################################################################################ FIXME how to specify several suites to run? Comma separated list?sub run_tests () {  run_suite($opt_suite);}sub run_suite () {  my $suite= shift;  mtr_print_thick_line();  mtr_report("Finding  Tests in the '$suite' suite");  mtr_timer_start($glob_timers,"suite", 60 * $opt_suite_timeout);  my $tests= collect_test_cases($suite);  mtr_report("Starting Tests in the '$suite' suite");  mtr_print_header();  foreach my $tinfo ( @$tests )  {    mtr_timer_start($glob_timers,"testcase", 60 * $opt_testcase_timeout);    run_testcase($tinfo);    mtr_timer_stop($glob_timers,"testcase");  }  mtr_print_line();  if ( ! $opt_gdb and ! $glob_use_running_server and       ! $opt_ddd and ! $glob_use_embedded_server )  {    stop_masters_slaves();  }  if ( $opt_gcov )  {    gcov_collect(); # collect coverage information  }  if ( $opt_gprof )  {    gprof_collect(); # collect coverage information  }  mtr_report_stats($tests);  mtr_timer_stop($glob_timers,"suite");}################################################################################  Initiate the test databases###############################################################################sub mysql_install_db () {  # FIXME not exactly true I think, needs improvements  install_db('master', $master->[0]->{'path_myddir'});  install_db('master', $master->[1]->{'path_myddir'});  install_db('slave',  $slave->[0]->{'path_myddir'});  install_db('slave',  $slave->[1]->{'path_myddir'});  install_db('slave',  $slave->[2]->{'path_myddir'});  if ( ! $opt_skip_im )  {    im_prepare_env($instance_manager);  }  if ( ndbcluster_install() )  {    # failed to install, disable usage but flag that its no ok    $opt_with_ndbcluster= 0;    $flag_ndb_status_ok= 0;  }  if ( ndbcluster_install_slave() )  {    # failed to install, disable usage but flag that its no ok    $opt_with_ndbcluster_slave= 0;    $flag_ndb_slave_status_ok= 0;  }  return 0;}sub install_db ($$) {  my $type=      shift;  my $data_dir=  shift;  my $init_db_sql=     "lib/init_db.sql";  my $init_db_sql_tmp= "/tmp/init_db.sql$$";  my $args;  mtr_report("Installing \u$type Databases");  open(IN, $init_db_sql)    or mtr_error("Can't open $init_db_sql: $!");  open(OUT, ">", $init_db_sql_tmp)    or mtr_error("Can't write to $init_db_sql_tmp: $!");  while (<IN>)  {    chomp;    s/\@HOSTNAME\@/$glob_hostname/;    if ( /^\s*$/ )    {      print OUT "\n";    }    elsif (/;$/)    {      print OUT "$_\n";    }    else    {      print OUT "$_ ";    }  }  close OUT;  close IN;  mtr_init_args(\$args);  mtr_add_arg($args, "--no-defaults");  mtr_add_arg($args, "--bootstrap");  mtr_add_arg($args, "--console");  mtr_add_arg($args, "--skip-grant-tables");  mtr_add_arg($args, "--basedir=%s", $path_my_basedir);  mtr_add_arg($args, "--datadir=%s", $data_dir);  mtr_add_arg($args, "--skip-innodb");  mtr_add_arg($args, "--skip-ndbcluster");  mtr_add_arg($args, "--skip-bdb");  if ( ! $opt_netware )  {    mtr_add_arg($args, "--language=%s", $path_language);    mtr_add_arg($args, "--character-sets-dir=%s", $path_charsetsdir);  }  if ( mtr_run($exe_mysqld, $args, $init_db_sql_tmp,               $path_manager_log, $path_manager_log, "") != 0 )  {    unlink($init_db_sql_tmp);    mtr_error("Error executing mysqld --bootstrap\n" .              "Could not install $type test DBs");  }  unlink($init_db_sql_tmp);}sub im_prepare_env($) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -