Commit b63e8094 authored by unknown's avatar unknown

Improve --check-testcase


mysql-test/include/check-testcase.test:
  Improved version of check-testcase that does not use mysqldump
mysql-test/mysql-test-run.pl:
  Make check-testcase restart servers if it detects something not cleaned up
parent 167d3173
#
# 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
# the flag --check-testcase. Before every testcase it is 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 its possible to check that a testcase does not have
# any unwanted side affects.
#
#
# Dump all global variables
#
show global variables;
# Dump all global variables except those
# that are supposed to change
show global variables where Variable_name != 'timestamp';
#
# Dump all databases
#
# Dump all databases, there should be none
# except mysql, test and information_schema
show databases;
#
# Dump the "test" database, all it's tables and their data
#
--exec $MYSQL_DUMP --skip-comments --skip-lock-tables test
# The test database should not contain any tables
show tables from test;
#
# Dump the "mysql" database and it's tables
# Select data separately to add "order by"
#
--exec $MYSQL_DUMP --skip-comments --skip-lock-tables --no-data mysql
# Dump the "mysql" database and its tables
use mysql;
show tables;
show create table columns_priv;
show create table db;
show create table func;
show create table help_category;
show create table help_keyword;
show create table help_relation;
show create table help_relation;
show create table host;
show create table proc;
show create table procs_priv;
show create table tables_priv;
show create table time_zone;
show create table time_zone_leap_second;
show create table time_zone_name;
show create table time_zone_transition;
show create table time_zone_transition_type;
show create table user;
# Select data from system tables to make sure they have been properly
# restored after test
select * from columns_priv;
select * from db order by host, db, user;
select * from func;
......
......@@ -149,7 +149,7 @@ my $opt_mtr_build_thread= $ENV{'MTR_BUILD_THREAD'} || "auto";
my $opt_record;
my $opt_report_features;
my $opt_check_testcases;
our $opt_check_testcases;
my $opt_mark_progress;
my $opt_sleep;
......@@ -2123,6 +2123,7 @@ sub do_before_run_mysqltest($)
sub run_check_testcase_all($$)
{
my ($tinfo, $mode)= @_;
my $result;
foreach my $mysqld ( mysqlds() )
{
......@@ -2132,9 +2133,11 @@ sub run_check_testcase_all($$)
{
# Check failed, mark the test case with that info
$tinfo->{'check_testcase_failed'}= 1;
$result= 1;
}
}
}
return $result;
}
......@@ -2323,7 +2326,12 @@ sub run_testcase ($) {
if ( $opt_check_testcases )
{
run_check_testcase_all($tinfo, "after");
if (run_check_testcase_all($tinfo, "after"))
{
# Stop all servers that are known to be running
stop_all_servers();
mtr_report("Resuming tests...\n");
}
}
}
elsif ( $res == 62 )
......@@ -2602,7 +2610,8 @@ sub mysqld_arguments ($$$) {
}
# Check if "extra_opt" contains skip-log-bin
my $skip_binlog= grep(/^(--|--loose-)skip-log-bin/, @$extra_opt, @opt_extra_mysqld_opt);
my $skip_binlog= grep(/^(--|--loose-)skip-log-bin/,
@$extra_opt, @opt_extra_mysqld_opt);
if ( $opt_debug )
{
......
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