diff options
Diffstat (limited to 'mysql-test/lib/mtr_cases.pl')
-rw-r--r-- | mysql-test/lib/mtr_cases.pl | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/mysql-test/lib/mtr_cases.pl b/mysql-test/lib/mtr_cases.pl index 2babaabc24c..12714ddc1ad 100644 --- a/mysql-test/lib/mtr_cases.pl +++ b/mysql-test/lib/mtr_cases.pl @@ -8,7 +8,7 @@ use File::Basename; use strict; sub collect_test_cases ($); -sub collect_one_test_case ($$$$$); +sub collect_one_test_case ($$$$$$); ############################################################################## # @@ -46,18 +46,36 @@ sub collect_test_cases ($) { { mtr_error("Test case $tname ($testdir/$elem) is not found"); } - collect_one_test_case($testdir,$resdir,$tname,$elem,$cases); + collect_one_test_case($testdir,$resdir,$tname,$elem,$cases,{}); } closedir TESTDIR; } else { + # ---------------------------------------------------------------------- + # Skip some tests listed in disabled.def + # ---------------------------------------------------------------------- + my %skiplist; + my $skipfile= "$testdir/disabled.def"; + if ( open(SKIPFILE, $skipfile) ) + { + while ( <SKIPFILE> ) + { + chomp; + if ( /^\s*(\S+)\s*:\s*(.*?)\s*$/ ) + { + $skiplist{$1}= $2; + } + } + close SKIPFILE; + } + foreach my $elem ( sort readdir(TESTDIR) ) { my $tname= mtr_match_extension($elem,"test"); next if ! defined $tname; next if $::opt_do_test and ! defined mtr_match_prefix($elem,$::opt_do_test); - collect_one_test_case($testdir,$resdir,$tname,$elem,$cases); + collect_one_test_case($testdir,$resdir,$tname,$elem,$cases,\%skiplist); } closedir TESTDIR; } @@ -95,12 +113,13 @@ sub collect_test_cases ($) { ############################################################################## -sub collect_one_test_case($$$$$) { +sub collect_one_test_case($$$$$$) { my $testdir= shift; my $resdir= shift; my $tname= shift; my $elem= shift; my $cases= shift; + my $skiplist=shift; my $path= "$testdir/$elem"; @@ -272,6 +291,14 @@ sub collect_one_test_case($$$$$) { } } + # FIXME why this late? + if ( $skiplist->{$tname} ) + { + $tinfo->{'skip'}= 1; + $tinfo->{'disable'}= 1; # Sub type of 'skip' + $tinfo->{'comment'}= $skiplist->{$tname} if $skiplist->{$tname}; + } + if ( -f $disabled ) { $tinfo->{'skip'}= 1; |