2012-02-07 16:22:36 +01:00
|
|
|
package My::Suite::Main;
|
2012-02-23 09:24:11 +01:00
|
|
|
use My::Platform;
|
2012-02-07 16:22:36 +01:00
|
|
|
|
|
|
|
@ISA = qw(My::Suite);
|
|
|
|
|
|
|
|
sub skip_combinations {
|
|
|
|
my @combinations;
|
|
|
|
|
2017-06-21 12:44:16 +02:00
|
|
|
# disable innodb combinations for configurations that were not built
|
2012-02-07 16:22:36 +01:00
|
|
|
push @combinations, 'innodb_plugin' unless $ENV{HA_INNODB_SO};
|
2013-12-22 17:10:47 +01:00
|
|
|
|
2017-06-21 12:44:16 +02:00
|
|
|
push @combinations, 'innodb' unless $::mysqld_variables{'innodb'} eq "ON";
|
2016-10-18 16:46:53 +02:00
|
|
|
|
2017-06-21 12:44:16 +02:00
|
|
|
my %skip = ( 'include/have_innodb.combinations' => [ @combinations ]);
|
2012-02-23 07:50:11 +01:00
|
|
|
|
2018-04-13 22:18:36 +02:00
|
|
|
$skip{'include/innodb_encrypt_log.combinations'} = [ 'crypt' ]
|
|
|
|
unless $ENV{DEBUG_KEY_MANAGEMENT_SO};
|
|
|
|
|
2012-02-23 09:24:11 +01:00
|
|
|
# don't run tests for the wrong platform
|
|
|
|
$skip{'include/platform.combinations'} = [ (IS_WINDOWS) ? 'unix' : 'win' ];
|
|
|
|
|
2018-10-30 12:29:19 +01:00
|
|
|
$skip{'include/maybe_debug.combinations'} =
|
|
|
|
[ defined $::mysqld_variables{'debug-dbug'} ? 'release' : 'debug' ];
|
|
|
|
|
2014-10-09 21:43:48 +02:00
|
|
|
# and for the wrong word size
|
|
|
|
# check for exact values, in case the default changes to be small everywhere
|
|
|
|
my $longsysvar= $::mysqld_variables{'max-binlog-stmt-cache-size'};
|
|
|
|
my %val_map= (
|
|
|
|
'4294963200' => '64bit', # remember, it shows *what configuration to skip*
|
|
|
|
'18446744073709547520' => '32bit'
|
|
|
|
);
|
|
|
|
die "unknown value max-binlog-stmt-cache-size=$longsysvar" unless $val_map{$longsysvar};
|
|
|
|
$skip{'include/word_size.combinations'} = [ $val_map{$longsysvar} ];
|
|
|
|
|
2012-02-23 07:50:11 +01:00
|
|
|
# as a special case, disable certain include files as a whole
|
|
|
|
$skip{'include/not_embedded.inc'} = 'Not run for embedded server'
|
|
|
|
if $::opt_embedded_server;
|
|
|
|
|
|
|
|
$skip{'include/have_debug.inc'} = 'Requires debug build'
|
|
|
|
unless defined $::mysqld_variables{'debug-dbug'};
|
|
|
|
|
fixes for test failures
and small collateral changes
mysql-test/lib/My/Test.pm:
somehow with "print" we get truncated writes sometimes
mysql-test/suite/perfschema/r/digest_table_full.result:
md5 hashes of statement digests differ, because yacc token codes are different in mariadb
mysql-test/suite/perfschema/r/dml_handler.result:
host table is not ported over yet
mysql-test/suite/perfschema/r/information_schema.result:
host table is not ported over yet
mysql-test/suite/perfschema/r/nesting.result:
this differs, because we don't rewrite general log queries, and multi-statement
packets are logged as a one entry. this result file is identical to what mysql-5.6.5
produces with the --log-raw option.
mysql-test/suite/perfschema/r/relaylog.result:
MariaDB modifies the binlog index file directly, while MySQL 5.6 has a feature "crash-safe binlog index" and modifies a special "crash-safe" shadow copy of the index file and then moves it over. That's why this test shows "NONE" index file writes in MySQL and "MANY" in MariaDB.
mysql-test/suite/perfschema/r/server_init.result:
MariaDB initializes the "manager" resources from the "manager" thread, and starts this thread only when --flush-time is not 0. MySQL 5.6 initializes "manager" resources unconditionally on server startup.
mysql-test/suite/perfschema/r/stage_mdl_global.result:
this differs, because MariaDB disables query cache when query_cache_size=0. MySQL does not
do that, and this causes useless mutex locks and waits.
mysql-test/suite/perfschema/r/statement_digest.result:
md5 hashes of statement digests differ, because yacc token codes are different in mariadb
mysql-test/suite/perfschema/r/statement_digest_consumers.result:
md5 hashes of statement digests differ, because yacc token codes are different in mariadb
mysql-test/suite/perfschema/r/statement_digest_long_query.result:
md5 hashes of statement digests differ, because yacc token codes are different in mariadb
mysql-test/suite/rpl/r/rpl_mixed_drop_create_temp_table.result:
will be updated to match 5.6 when alfranio.correia@oracle.com-20110512172919-c1b5kmum4h52g0ni and anders.song@greatopensource.com-20110105052107-zoab0bsf5a6xxk2y are merged
mysql-test/suite/rpl/r/rpl_non_direct_mixed_mixing_engines.result:
will be updated to match 5.6 when anders.song@greatopensource.com-20110105052107-zoab0bsf5a6xxk2y is merged
2012-09-27 20:09:46 +02:00
|
|
|
$skip{'include/have_ssl_communication.inc'} =
|
2012-10-01 13:15:29 +02:00
|
|
|
$skip{'include/have_ssl_crypto_functs.inc'} = 'Requires SSL'
|
fixes for test failures
and small collateral changes
mysql-test/lib/My/Test.pm:
somehow with "print" we get truncated writes sometimes
mysql-test/suite/perfschema/r/digest_table_full.result:
md5 hashes of statement digests differ, because yacc token codes are different in mariadb
mysql-test/suite/perfschema/r/dml_handler.result:
host table is not ported over yet
mysql-test/suite/perfschema/r/information_schema.result:
host table is not ported over yet
mysql-test/suite/perfschema/r/nesting.result:
this differs, because we don't rewrite general log queries, and multi-statement
packets are logged as a one entry. this result file is identical to what mysql-5.6.5
produces with the --log-raw option.
mysql-test/suite/perfschema/r/relaylog.result:
MariaDB modifies the binlog index file directly, while MySQL 5.6 has a feature "crash-safe binlog index" and modifies a special "crash-safe" shadow copy of the index file and then moves it over. That's why this test shows "NONE" index file writes in MySQL and "MANY" in MariaDB.
mysql-test/suite/perfschema/r/server_init.result:
MariaDB initializes the "manager" resources from the "manager" thread, and starts this thread only when --flush-time is not 0. MySQL 5.6 initializes "manager" resources unconditionally on server startup.
mysql-test/suite/perfschema/r/stage_mdl_global.result:
this differs, because MariaDB disables query cache when query_cache_size=0. MySQL does not
do that, and this causes useless mutex locks and waits.
mysql-test/suite/perfschema/r/statement_digest.result:
md5 hashes of statement digests differ, because yacc token codes are different in mariadb
mysql-test/suite/perfschema/r/statement_digest_consumers.result:
md5 hashes of statement digests differ, because yacc token codes are different in mariadb
mysql-test/suite/perfschema/r/statement_digest_long_query.result:
md5 hashes of statement digests differ, because yacc token codes are different in mariadb
mysql-test/suite/rpl/r/rpl_mixed_drop_create_temp_table.result:
will be updated to match 5.6 when alfranio.correia@oracle.com-20110512172919-c1b5kmum4h52g0ni and anders.song@greatopensource.com-20110105052107-zoab0bsf5a6xxk2y are merged
mysql-test/suite/rpl/r/rpl_non_direct_mixed_mixing_engines.result:
will be updated to match 5.6 when anders.song@greatopensource.com-20110105052107-zoab0bsf5a6xxk2y is merged
2012-09-27 20:09:46 +02:00
|
|
|
unless defined $::mysqld_variables{'ssl-ca'};
|
|
|
|
|
2013-01-31 15:51:26 +01:00
|
|
|
$skip{'include/have_example_plugin.inc'} = 'Need example plugin'
|
|
|
|
unless $ENV{HA_EXAMPLE_SO};
|
|
|
|
|
2012-02-23 07:50:11 +01:00
|
|
|
$skip{'include/not_windows.inc'} = 'Requires not Windows' if IS_WINDOWS;
|
|
|
|
|
2018-03-09 13:05:35 +01:00
|
|
|
$skip{'main/plugin_loaderr.test'} = 'needs compiled-in innodb'
|
2012-04-17 20:28:21 +02:00
|
|
|
unless $::mysqld_variables{'innodb'} eq "ON";
|
|
|
|
|
2012-02-23 07:50:11 +01:00
|
|
|
# disable tests that use ipv6, if unsupported
|
2014-02-17 11:10:18 +01:00
|
|
|
sub ipv6_ok() {
|
|
|
|
use Socket;
|
|
|
|
return 0 unless socket my $sock, PF_INET6, SOCK_STREAM, getprotobyname('tcp');
|
2016-10-04 16:25:12 +02:00
|
|
|
$!="";
|
2016-08-25 02:21:06 +02:00
|
|
|
# eval{}, if there's no Socket::sockaddr_in6 at all, old Perl installation <5.14
|
2016-10-04 16:25:12 +02:00
|
|
|
eval { bind $sock, sockaddr_in6($::baseport, Socket::IN6ADDR_LOOPBACK) };
|
|
|
|
return $@ eq "" && $! eq ""
|
2014-02-17 11:10:18 +01:00
|
|
|
}
|
|
|
|
$skip{'include/check_ipv6.inc'} = 'No IPv6' unless ipv6_ok();
|
2012-02-23 07:50:11 +01:00
|
|
|
|
2019-01-25 20:33:47 +01:00
|
|
|
$skip{'main/openssl_6975.test'} = 'no or wrong openssl version'
|
2015-01-09 14:00:00 +01:00
|
|
|
unless $::mysqld_variables{'version-ssl-library'} =~ /OpenSSL (\S+)/
|
2019-01-24 20:18:55 +01:00
|
|
|
and $1 ge "1.0.1d" and $1 lt "1.1.1";
|
2014-11-19 00:19:52 +01:00
|
|
|
|
2018-03-09 13:05:35 +01:00
|
|
|
$skip{'main/ssl_7937.combinations'} = [ 'x509v3' ]
|
2017-04-25 23:00:58 +02:00
|
|
|
unless $::mysqld_variables{'version-ssl-library'} =~ /OpenSSL (\S+)/
|
|
|
|
and $1 ge "1.0.2";
|
|
|
|
|
2012-02-23 07:50:11 +01:00
|
|
|
%skip;
|
2012-02-07 16:22:36 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
bless { };
|