List:Internals« Previous MessageNext Message »
From:ranger Date:November 22 2005 9:47pm
Subject:bk commit into 5.0 tree (ranger:1.1993)
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of elf. When elf 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.1993 05/11/22 23:46:54 ranger@stripped +3 -0
  Added support of stress mode to mysql-test-run.pl
  Corrected function declaration 

  mysql-test/lib/mtr_stress.pl
    1.1 05/11/22 23:43:42 ranger@stripped +172 -0
    Added support of stress mode

  mysql-test/mysql-test-run.pl
    1.59 05/11/22 23:43:42 ranger@stripped +26 -0
    Added support of stress mode 

  mysql-test/lib/mtr_stress.pl
    1.0 05/11/22 23:43:42 ranger@stripped +0 -0
    BitKeeper file /mnt/md/bk/mysql-5.0/mysql-test/lib/mtr_stress.pl

  mysql-test/lib/mtr_misc.pl
    1.6 05/11/22 23:43:42 ranger@stripped +2 -2
    Corrected function declaration 

# 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:	ranger
# Host:	regul.home.lan
# Root:	/mnt/md/bk/mysql-5.0

--- 1.5/mysql-test/lib/mtr_misc.pl	2005-08-17 15:39:47 +03:00
+++ 1.6/mysql-test/lib/mtr_misc.pl	2005-11-22 23:43:42 +02:00
@@ -9,7 +9,7 @@
 sub mtr_full_hostname ();
 sub mtr_short_hostname ();
 sub mtr_init_args ($);
-sub mtr_add_arg ($$);
+sub mtr_add_arg ($$@);
 sub mtr_path_exists(@);
 sub mtr_script_exists(@);
 sub mtr_exe_exists(@);
@@ -51,7 +51,7 @@
   $$args = [];                            # Empty list
 }
 
-sub mtr_add_arg ($$) {
+sub mtr_add_arg ($$@) {
   my $args=   shift;
   my $format= shift;
   my @fargs = @_;

--- 1.58/mysql-test/mysql-test-run.pl	2005-11-14 02:08:13 +02:00
+++ 1.59/mysql-test/mysql-test-run.pl	2005-11-22 23:43:42 +02:00
@@ -96,6 +96,7 @@
 require "lib/mtr_diff.pl";
 require "lib/mtr_match.pl";
 require "lib/mtr_misc.pl";
+require "lib/mtr_stress.pl";
 
 $Devel::Trace::TRACE= 1;
 
@@ -271,6 +272,16 @@
 our $opt_valgrind_all;
 our $opt_valgrind_options;
 
+our $opt_stress=               "";
+our $opt_stress_suite=     "main";
+our $opt_stress_mode=    "random";
+our $opt_stress_threads=        5;
+our $opt_stress_test_count=    20;
+our $opt_stress_loop_count=    "";
+our $opt_stress_test_duration= "";
+our $opt_stress_init_file=     "";
+our $opt_stress_test_file=     "";
+
 our $opt_verbose;
 
 our $opt_wait_for_master;
@@ -391,6 +402,10 @@
   {
     run_benchmarks(shift);      # Shift what? Extra arguments?!
   }
+  elsif ( $opt_stress )
+  {
+    run_stress_test()
+  }
   else
   {
     run_tests();
@@ -546,6 +561,17 @@
              'valgrind-mysqltest:s'     => \$opt_valgrind_mysqltest,
              'valgrind-all:s'           => \$opt_valgrind_all,
              'valgrind-options=s'       => \$opt_valgrind_options,
+
+             # Stress testing 
+             'stress'                   => \$opt_stress,
+             'stress-suite=s'           => \$opt_stress_suite,
+             'stress-threads=i'         => \$opt_stress_threads,
+             'stress-test-file=s'       => \$opt_stress_test_file,
+             'stress-init-file=s'       => \$opt_stress_init_file,
+             'stress-mode=s'            => \$opt_stress_mode,
+             'stress-loop-count=i'      => \$opt_stress_loop_count,
+             'stress-test-count=i'      => \$opt_stress_test_count,
+             'stress-test-duration=i'   => \$opt_stress_test_duration,
 
              # Misc
              'big-test'                 => \$opt_big_test,
--- New file ---
+++ mysql-test/lib/mtr_stress.pl	05/11/22 23:43:42
# -*- cperl -*-

# This is a library file used by the Perl version of mysql-test-run,
# and is part of the translation of the Bourne shell script with the
# same name.

use strict;
use File::Spec;

# These are not to be prefixed with "mtr_"

sub run_stress_test ();

##############################################################################
#
#  Run tests in the stress mode
#
##############################################################################

sub run_stress_test () 
{

  my $args;
  my $stress_basedir;
  my $stress_suitedir;

  mtr_report("Starting stress testing\n");

  if ( ! $::glob_use_embedded_server and ! $::opt_local_master )
  {
    $::master->[0]->{'pid'}= mysqld_start('master',0,[],[]);
    if ( ! $::master->[0]->{'pid'} )
    {
      mtr_error("Can't start the mysqld server");
    }
  }

  my $stress_basedir=File::Spec->catdir($::opt_vardir, "stress");
  
  #Clean up stress dir 
  if ( -d $stress_basedir )
  {
    rmtree($stress_basedir);
  }
  mkpath($stress_basedir);
 
  if ($::opt_stress_suite ne 'main' && $::opt_stress_suite ne 'default' )
  {
    $stress_suitedir=File::Spec->catdir($::glob_mysql_test_dir, "suite", 
                                         $::opt_stress_suite);
  }
  else
  {
    $stress_suitedir=$::glob_mysql_test_dir;
  }

  if ( -d $stress_suitedir )
  {
    #$stress_suite_t_dir=File::Spec->catdir($stress_suitedir, "t");
    #$stress_suite_r_dir=File::Spec->catdir($stress_suitedir, "r");    
    #FIXME: check dirs above for existence to ensure that test suite 
    #       contains tests and results dirs
  }
  else
  {
    mtr_error("Specified test suite $::opt_stress_suite doesn't exist");
  }
 
  if ( @::opt_cases )
  {
    $::opt_stress_test_file=File::Spec->catfile($stress_basedir, "stress_tests.txt");
    open(STRESS_FILE, ">$::opt_stress_test_file");
    print STRESS_FILE join("\n",@::opt_cases),"\n";
    close(STRESS_FILE);
  }
  elsif ( $::opt_stress_test_file )
  {
    $::opt_stress_test_file=File::Spec->catfile($stress_suitedir, 
                                              $::opt_stress_test_file);
    if ( ! -f $::opt_stress_test_file )
    {
      mtr_error("Specified file $::opt_stress_test_file with list of tests does not exist\n",
                "Please ensure that file exists and has proper permissions");
    }
  }
  else
  {
    $::opt_stress_test_file=File::Spec->catfile($stress_suitedir, 
                                              "stress_tests.txt");
    if ( ! -f $::opt_stress_test_file )
    {
      mtr_error("Default file $::opt_stress_test_file with list of tests does not exist\n",
          "Please use --stress-test-file option to specify custom one or you can\n",
          "just specify name of test for testing as last argument in command line");

    }    
  }

  if ( $::opt_stress_init_file )
  {
    $::opt_stress_init_file=File::Spec->catfile($stress_suitedir, 
                                              $::opt_stress_init_file);
    if ( ! -f $::opt_stress_init_file )
    {
      mtr_error("Specified file $::opt_stress_init_file with list of tests does not exist\n",
                "Please ensure that file exists and has proper permissions");
    }
  }
  else
  {
    $::opt_stress_init_file=File::Spec->catfile($stress_suitedir, 
                                              "stress_init.txt");
    if ( ! -f $::opt_stress_init_file )
    {
      $::opt_stress_init_file='';
    }
  }  
  
  if ( $::opt_stress_mode ne 'random' && $::opt_stress_mode ne 'seq' )
  {
    mtr_error("You specified wrong mode $::opt_stress_mode for stress test\n",
              "Correct values are 'random' or 'seq'");
  }

  mtr_init_args(\$args);
  
  mtr_add_arg($args, "--server-socket=%s", $::master->[0]->{'path_mysock'});
  mtr_add_arg($args, "--server-user=%s", $::opt_user);
  mtr_add_arg($args, "--server-database=%s", "test");  
  mtr_add_arg($args, "--stress-suite-basedir=%s", $::glob_mysql_test_dir);  
  mtr_add_arg($args, "--suite=%s", $::opt_stress_suite);
  mtr_add_arg($args, "--stress-tests-file=%s", $::opt_stress_test_file);      
  mtr_add_arg($args, "--stress-basedir=%s", $stress_basedir);
  mtr_add_arg($args, "--server-logs-dir=%s", $stress_basedir);
  mtr_add_arg($args, "--stress-mode=%s", $::opt_stress_mode);
  mtr_add_arg($args, "--mysqltest=%s", $::exe_mysqltest);
  mtr_add_arg($args, "--threads=%s", $::opt_stress_threads);
  mtr_add_arg($args, "--verbose");
  mtr_add_arg($args, "--cleanup");
  mtr_add_arg($args, "--log-error-details");
  mtr_add_arg($args, "--abort-on-error");

  if ( $::opt_stress_init_file )
  {
    mtr_add_arg($args, "--stress-init-file=%", $::opt_stress_init_file);
  }

  if ( $::opt_stress_loop_count )
  {
    mtr_add_arg($args, "--loop-count=%s", $::opt_stress_loop_count);
  }

  if ( $::opt_stress_test_count )
  {
    mtr_add_arg($args, "--test-count=%s", $::opt_stress_test_count);
  }

  if ( $::opt_stress_test_duration )
  {
    mtr_add_arg($args, "--test-duration=%s", $::opt_stress_test_duration);
  }

  #Run stress test
  mtr_run("$::glob_mysql_test_dir/mysql-stress-test.pl", $args, "", "", "", "");
   
  if ( ! $::glob_use_embedded_server )
  {
    stop_masters();
  }
}

1;

Thread
bk commit into 5.0 tree (ranger:1.1993)ranger22 Nov