Commit be40fefd authored by msvensson@shellback.(none)'s avatar msvensson@shellback.(none)
Browse files

Bug#27753 enable mysql-test-run.pl to ignore tests based on wildcard

parent c86bd100
Loading
Loading
Loading
Loading
+25 −3
Original line number Diff line number Diff line
@@ -27,6 +27,26 @@ sub collect_one_test_case ($$$$$$$);

sub mtr_options_from_test_file($$);

my $do_test;
my $skip_test;

sub init_pattern {
  my ($from, $what)= @_;
  if ( $from =~ /[a-z0-9]/ ) {
    # Does not contain any regex, make the pattern match
    # beginning of string
    $from= "^$from";
  }
  else {
    # Check that pattern is a valid regex
    eval { "" =~/$from/; 1 } or
      mtr_error("Invalid regex '$from' passed to $what\nPerl says: $@");
  }
  return $from;
}



##############################################################################
#
#  Collect information about test cases we are to run
@@ -39,6 +59,9 @@ sub collect_test_cases ($) {
  my $testdir;
  my $resdir;

  $do_test= init_pattern($::opt_do_test, "--do-test");
  $skip_test= init_pattern($::opt_skip_test, "--skip-test");

  if ( $suite eq "main" )
  {
    $testdir= "$::glob_mysql_test_dir/t";
@@ -162,8 +185,7 @@ sub collect_test_cases ($) {
      }

      # Skip tests that does not match the --do-test= filter
      next if $::opt_do_test and
	! defined mtr_match_prefix($elem,$::opt_do_test);
      next if ($do_test and not $tname =~ /$do_test/o);

      collect_one_test_case($testdir,$resdir,$tname,$elem,$cases,\%disabled,
        $component_id);
@@ -288,7 +310,7 @@ sub collect_one_test_case($$$$$$$) {
  # Skip some tests but include in list, just mark them to skip
  # ----------------------------------------------------------------------

  if ( $::opt_skip_test and defined mtr_match_prefix($tname,$::opt_skip_test) )
  if ( $skip_test and $tname =~ /$skip_test/o )
  {
    $tinfo->{'skip'}= 1;
    return;
+6 −2
Original line number Diff line number Diff line
@@ -5080,12 +5080,16 @@ Options to control what test suites or cases to run
  skip-ndb[cluster]     Skip all tests that need cluster
  skip-ndb[cluster]-slave Skip all tests that need a slave cluster
  ndb-extra             Run extra tests from ndb directory
  do-test=PREFIX        Run test cases which name are prefixed with PREFIX
  do-test=PREFIX or REGEX
                        Run test cases which name are prefixed with PREFIX
                        or fulfills REGEX
  skip-test=PREFIX or REGEX
                        Skip test cases which name are prefixed with PREFIX
                        or fulfills REGEX
  start-from=PREFIX     Run test cases starting from test prefixed with PREFIX
  suite=NAME            Run the test suite named NAME. The default is "main"
  skip-rpl              Skip the replication test cases.
  skip-im               Don't start IM, and skip the IM test cases
  skip-test=PREFIX      Skip test cases which name are prefixed with PREFIX
  big-test              Set the environment variable BIG_TEST, which can be
                        checked from test cases.