Commit 36495cba authored by unknown's avatar unknown
Browse files

Add more checks to determine if test can be skipped becuase the feature it uses are not supported.

Check for big-test, ndb-extra, require_manager and binlog format row/stmt 

parent 312c4693
Loading
Loading
Loading
Loading
+56 −0
Original line number Diff line number Diff line
@@ -457,6 +457,31 @@ sub collect_one_test_case($$$$$$$) {
      # selected test cases
      # push(@{$tinfo->{'master_opt'}}, "--skip-innodb");
    }

    if ( $tinfo->{'big_test'} and ! $::opt_big_test )
    {
      $tinfo->{'skip'}= 1;
      $tinfo->{'comment'}= "Test need 'big-test' option";
    }

    if ( $tinfo->{'ndb_extra'} and ! $::opt_ndb_extra_test )
    {
      $tinfo->{'skip'}= 1;
      $tinfo->{'comment'}= "Test need 'ndb_extra' option";
    }

    if ( $tinfo->{'require_manager'} )
    {
      $tinfo->{'skip'}= 1;
      $tinfo->{'comment'}= "Test need the _old_ manager(to be removed)";
    }

    if ( defined $tinfo->{'binlog_format'} and
	 ! ( $tinfo->{'binlog_format'} eq $::used_binlog_format ) )
    {
      $tinfo->{'skip'}= 1;
      $tinfo->{'comment'}= "Not running with binlog format '$tinfo->{'binlog_format'}'";
    }
  }

  # We can't restart a running server that may be in use
@@ -470,6 +495,7 @@ sub collect_one_test_case($$$$$$$) {

}


sub mtr_options_from_test_file($$$) {
  my $tinfo= shift;
  my $file= shift;
@@ -486,6 +512,36 @@ sub mtr_options_from_test_file($$$) {
      $tinfo->{'innodb_test'} = 1;
    }

    # Check if test need rowbased logging
    if ( defined mtr_match_substring($_,"include/have_binlog_format_row.inc"))
    {
      $tinfo->{'binlog_format'} = "row";
    }

    # Check if test need rowbased logging
    if ( defined mtr_match_substring($_,"include/have_binlog_format_statement.inc"))
    {
      $tinfo->{'binlog_format'} = "stmt";
    }

    # Check if test need "big test"
    if ( defined mtr_match_substring($_,"include/big_test.inc"))
    {
      $tinfo->{'big_test'} = 1;
    }

    # Check if test need "ndb_extra"
    if ( defined mtr_match_substring($_,"include/have_ndb_extra.inc"))
    {
      $tinfo->{'ndb_extra'} = 1;
    }

    # Check if test need "manager", the old one
    if ( defined mtr_match_substring($_,"require_manager;"))
    {
      $tinfo->{'require_manager'} = 1;
    }

    # If test sources another file, open it as well
    my $value= mtr_match_prefix($_, "--source");
    if ( defined $value)
+17 −0
Original line number Diff line number Diff line
@@ -329,6 +329,8 @@ our $file_ndb_testrun_log;

our @data_dir_lst;

our $used_binlog_format;

######################################################################
#
#  Function declarations
@@ -707,6 +709,21 @@ sub command_line_setup () {
    }
  }

  # --------------------------------------------------------------------------
  # Find out type of logging that are being used
  # --------------------------------------------------------------------------

  # NOTE if the default binlog format is changed, this has to be changed
  $used_binlog_format= "stmt";
  foreach my $arg ( @opt_extra_mysqld_opt )
  {
    if ( defined mtr_match_substring($arg,"binlog-format=row"))
    {
      $used_binlog_format= "row";
    }
  }
  mtr_report("Using binlog format '$used_binlog_format'");

  # --------------------------------------------------------------------------
  # Set the "var/" directory, as it is the base for everything else
  # --------------------------------------------------------------------------