mirror of
https://github.com/MariaDB/server.git
synced 2025-01-28 17:54:16 +01:00
Extend have_sanitizer with ASAN+UBSAN and MSAN
Disable some tests that are too slow or big for MSAN.
This commit is contained in:
parent
23368b76be
commit
b91a123d8c
8 changed files with 26 additions and 10 deletions
|
@ -2,7 +2,7 @@
|
|||
# be overcome. In normal cases one should fix the bug server/test case or in
|
||||
# the worst case add a (temporary?) suppression in asan.supp or lsan.supp
|
||||
|
||||
if (`select count(*) from information_schema.system_variables where variable_name='have_sanitizer' and global_value="ASAN"`)
|
||||
if (`select count(*) from information_schema.system_variables where variable_name='have_sanitizer' and global_value like "ASAN%"`)
|
||||
{
|
||||
--skip Can't be run with ASan
|
||||
}
|
||||
|
|
6
mysql-test/include/not_msan.inc
Normal file
6
mysql-test/include/not_msan.inc
Normal file
|
@ -0,0 +1,6 @@
|
|||
# This file should only be used with tests that are too big or slow for MSAN.
|
||||
|
||||
if (`select count(*) from information_schema.system_variables where variable_name='have_sanitizer' and global_value like "MSAN%"`)
|
||||
{
|
||||
--skip Can't be run WITH_MSAN
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
# be overcome. In normal cases one should fix the bug server/test case or in
|
||||
# the worst case add a (temporary?) suppression in asan.supp or lsan.supp
|
||||
|
||||
if (`select count(*) from information_schema.system_variables where variable_name='have_sanitizer' and global_value="UBSAN"`)
|
||||
if (`select count(*) from information_schema.system_variables where variable_name='have_sanitizer' and global_value LIKE "%UBSAN"`)
|
||||
{
|
||||
--skip Can't be run with UBSAN
|
||||
}
|
||||
|
|
|
@ -48,7 +48,9 @@ if ($rpl_debug)
|
|||
|
||||
# Send shutdown to the connected server and give
|
||||
# it 60 seconds (of mysqltest's default) to die before zapping it
|
||||
shutdown_server;
|
||||
let $rpl_shutdown_timeout= `select 60*(1+9*count(*)) from information_schema.system_variables where variable_name='have_sanitizer' and global_value like "MSAN%"`;
|
||||
|
||||
shutdown_server $rpl_shutdown_timeout;
|
||||
|
||||
--source include/wait_until_disconnected.inc
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
--source include/big_test.inc
|
||||
# Test will take more than one hour with valgrind
|
||||
--source include/not_valgrind.inc
|
||||
--source include/not_msan.inc
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_sequence.inc
|
||||
|
||||
|
|
|
@ -10,11 +10,11 @@
|
|||
--let $mysqlbinlog_output= tmp/mysqlbinlog_big_1.out
|
||||
|
||||
--source include/have_binlog_format_row.inc
|
||||
|
||||
--source include/have_log_bin.inc
|
||||
|
||||
# This is a big test.
|
||||
--source include/big_test.inc
|
||||
--source include/not_msan.inc
|
||||
# Test needs more than 4G of memory
|
||||
--source include/have_64bit.inc
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
--source include/big_test.inc
|
||||
# This test is too slow for valgrind
|
||||
--source include/not_valgrind.inc
|
||||
--source include/not_msan.inc
|
||||
|
||||
drop table if exists t1,t2;
|
||||
|
||||
|
|
|
@ -5078,13 +5078,19 @@ static Sys_var_have Sys_have_symlink(
|
|||
"--skip-symbolic-links option.",
|
||||
READ_ONLY GLOBAL_VAR(have_symlink), NO_CMD_LINE);
|
||||
|
||||
#if defined(__SANITIZE_ADDRESS__) || defined(WITH_UBSAN)
|
||||
#if defined __SANITIZE_ADDRESS__ || defined WITH_UBSAN || __has_feature(memory_sanitizer)
|
||||
|
||||
#ifdef __SANITIZE_ADDRESS__
|
||||
#define SANITIZER_MODE "ASAN"
|
||||
#else
|
||||
#define SANITIZER_MODE "UBSAN"
|
||||
#endif /* __SANITIZE_ADDRESS__ */
|
||||
# ifdef __SANITIZE_ADDRESS__
|
||||
# ifdef WITH_UBSAN
|
||||
# define SANITIZER_MODE "ASAN+UBSAN"
|
||||
# else
|
||||
# define SANITIZER_MODE "ASAN"
|
||||
# endif
|
||||
# elif defined WITH_UBSAN
|
||||
# define SANITIZER_MODE "UBSAN"
|
||||
# else
|
||||
# define SANITIZER_MODE "MSAN"
|
||||
# endif
|
||||
|
||||
static char *have_sanitizer;
|
||||
static Sys_var_charptr Sys_have_santitizer(
|
||||
|
|
Loading…
Add table
Reference in a new issue