Commit eab94fd0 authored by unknown's avatar unknown

Print names of testcases that failed check_testcase, this makes it easier

to run the whole testcase to find wich testcases need to be checked more carefully
and the just "copy and paste" the suspicious test case names to 
a new mysql-test-run.pl command. 


mysql-test/mysql-test-run.pl:
  Mark test cases that fails "check_testcase"
  Make run_check_testcase return  value indicating if check failed
mysql-test/include/check-testcase.test:
  New BitKeeper file ``mysql-test/include/check-testcase.test''
parent ddf7e2a5
#
# This test is executed twice for each test case if mysql-test-run is passed
# the flag --check-testcase.
# Before every testcase it's run with mysqltest in record mode and will
# thus produce an output file
# that can be compared to output from after the tescase.
# In that way it's possible to check that a testcase does not have
# any unwanted side affects.
#
#
# Dump all global variables
#
show global variables;
#
# Dump all databases
#
show databases;
#
# Dump the "test" database, all it's tables and their data
#
--exec $MYSQL_DUMP --skip-comments test
#
# Dump the "mysql" database and it's tables
# Select data separately to add "order by"
#
--exec $MYSQL_DUMP --skip-comments --no-data mysql
use mysql;
select * from columns_priv;
select * from db order by host, db, user;
select * from func;
select * from help_category;
select * from help_keyword;
select * from help_relation;
select * from help_relation;
select * from host;
select * from tables_priv;
select * from time_zone;
select * from time_zone_leap_second;
select * from time_zone_name;
select * from time_zone_transition;
select * from time_zone_transition_type;
select * from user;
...@@ -172,7 +172,7 @@ sub mtr_report_stats ($) { ...@@ -172,7 +172,7 @@ sub mtr_report_stats ($) {
my $tot_failed= 0; my $tot_failed= 0;
my $tot_tests= 0; my $tot_tests= 0;
my $tot_restarts= 0; my $tot_restarts= 0;
my $found_problems= 0; # Some warnings are errors... my $found_problems= 0; # Some warnings in the logfiles are errors...
foreach my $tinfo (@$tests) foreach my $tinfo (@$tests)
{ {
...@@ -283,6 +283,7 @@ sub mtr_report_stats ($) { ...@@ -283,6 +283,7 @@ sub mtr_report_stats ($) {
print "\n"; print "\n";
# Print a list of testcases that failed
if ( $tot_failed != 0 ) if ( $tot_failed != 0 )
{ {
my $test_mode= join(" ", @::glob_test_mode) || "default"; my $test_mode= join(" ", @::glob_test_mode) || "default";
...@@ -296,7 +297,30 @@ sub mtr_report_stats ($) { ...@@ -296,7 +297,30 @@ sub mtr_report_stats ($) {
} }
} }
print "\n"; print "\n";
}
# Print a list of check_testcases that failed(if any)
if ( $::opt_check_testcases )
{
my @check_testcases= ();
foreach my $tinfo (@$tests)
{
if ( defined $tinfo->{'check_testcase_failed'} )
{
push(@check_testcases, $tinfo->{'name'});
}
}
if ( @check_testcases )
{
print "Check of testcase failed for: ";
print join(" ", @check_testcases);
print "\n\n";
}
} }
if ( $tot_failed != 0 || $found_problems) if ( $tot_failed != 0 || $found_problems)
{ {
mtr_error("there where failing test cases"); mtr_error("there where failing test cases");
......
...@@ -3932,6 +3932,10 @@ sub run_testcase_start_servers($) { ...@@ -3932,6 +3932,10 @@ sub run_testcase_start_servers($) {
# Before a testcase, run in record mode, save result file to var # Before a testcase, run in record mode, save result file to var
# After testcase, run and compare with the recorded file, they should be equal! # After testcase, run and compare with the recorded file, they should be equal!
# #
# RETURN VALUE
# 0 OK
# 1 Check failed
#
sub run_check_testcase ($$) { sub run_check_testcase ($$) {
my $mode= shift; my $mode= shift;
...@@ -3976,6 +3980,7 @@ sub run_check_testcase ($$) { ...@@ -3976,6 +3980,7 @@ sub run_check_testcase ($$) {
{ {
mtr_error("Could not execute 'check-testcase' $mode testcase"); mtr_error("Could not execute 'check-testcase' $mode testcase");
} }
return $res;
} }
...@@ -4165,7 +4170,11 @@ sub run_mysqltest ($) { ...@@ -4165,7 +4170,11 @@ sub run_mysqltest ($) {
{ {
if ($mysqld->{'pid'}) if ($mysqld->{'pid'})
{ {
run_check_testcase("after", $mysqld); if (run_check_testcase("after", $mysqld))
{
# Check failed, mark the test case with that info
$tinfo->{'check_testcase_failed'}= 1;
}
} }
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment