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 ( ) + { + 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; diff --git a/mysql-test/r/ps_1general.result b/mysql-test/r/ps_1general.result index 75824aa7213..f2d60ac5025 100644 --- a/mysql-test/r/ps_1general.result +++ b/mysql-test/r/ps_1general.result @@ -290,11 +290,11 @@ t2 1 t2_idx 1 b A NULL NULL NULL YES BTREE prepare stmt4 from ' show table status from test like ''t2%'' '; execute stmt4; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment -t2 MyISAM 10 Fixed 0 0 0 4222124650659839 1024 0 NULL # # # latin1_swedish_ci NULL +t2 MyISAM 10 Fixed 0 0 0 # 1024 0 NULL # # # latin1_swedish_ci NULL prepare stmt4 from ' show table status from test like ''t9%'' '; execute stmt4; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment -t9 MyISAM 10 Dynamic 2 216 432 281474976710655 2048 0 NULL # # # latin1_swedish_ci NULL +t9 MyISAM 10 Dynamic 2 216 432 # 2048 0 NULL # # # latin1_swedish_ci NULL prepare stmt4 from ' show status like ''Threads_running'' '; execute stmt4; Variable_name Value diff --git a/mysql-test/t/ps_1general.test b/mysql-test/t/ps_1general.test index 1c247240eb9..ab133e4c347 100644 --- a/mysql-test/t/ps_1general.test +++ b/mysql-test/t/ps_1general.test @@ -307,15 +307,13 @@ prepare stmt4 from ' show index from t2 from test '; execute stmt4; prepare stmt4 from ' show table status from test like ''t2%'' '; # egalize date and time values ---replace_column 12 # 13 # 14 # ---replace_result 2147483647 64424509439 +--replace_column 8 # 12 # 13 # 14 # # Bug#4288 : prepared statement 'show table status ..', wrong output on execute execute stmt4; # try the same with the big table prepare stmt4 from ' show table status from test like ''t9%'' '; # egalize date and time values ---replace_column 12 # 13 # 14 # ---replace_result 2147483647 4294967295 +--replace_column 8 # 12 # 13 # 14 # # Bug#4288 execute stmt4; prepare stmt4 from ' show status like ''Threads_running'' ';