mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
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.
This commit is contained in:
49
mysql-test/include/check-testcase.test
Normal file
49
mysql-test/include/check-testcase.test
Normal file
@ -0,0 +1,49 @@
|
||||
#
|
||||
# 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 ($) {
|
||||
my $tot_failed= 0;
|
||||
my $tot_tests= 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)
|
||||
{
|
||||
@ -283,6 +283,7 @@ sub mtr_report_stats ($) {
|
||||
|
||||
print "\n";
|
||||
|
||||
# Print a list of testcases that failed
|
||||
if ( $tot_failed != 0 )
|
||||
{
|
||||
my $test_mode= join(" ", @::glob_test_mode) || "default";
|
||||
@ -296,7 +297,30 @@ sub mtr_report_stats ($) {
|
||||
}
|
||||
}
|
||||
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)
|
||||
{
|
||||
mtr_error("there where failing test cases");
|
||||
|
@ -3932,6 +3932,10 @@ sub run_testcase_start_servers($) {
|
||||
# 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!
|
||||
#
|
||||
# RETURN VALUE
|
||||
# 0 OK
|
||||
# 1 Check failed
|
||||
#
|
||||
sub run_check_testcase ($$) {
|
||||
|
||||
my $mode= shift;
|
||||
@ -3976,6 +3980,7 @@ sub run_check_testcase ($$) {
|
||||
{
|
||||
mtr_error("Could not execute 'check-testcase' $mode testcase");
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
||||
@ -4165,7 +4170,11 @@ sub run_mysqltest ($) {
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user