mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
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
This commit is contained in:
@ -1,34 +1,47 @@
|
||||
|
||||
#
|
||||
# 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 )
|
||||
{
|
||||
|
Reference in New Issue
Block a user