mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03: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:
@@ -2,7 +2,7 @@
|
|||||||
# be overcome. In normal cases one should fix the bug server/test case or in
|
# 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
|
# 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
|
--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
|
# 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
|
# 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
|
--skip Can't be run with UBSAN
|
||||||
}
|
}
|
||||||
|
@@ -48,7 +48,9 @@ if ($rpl_debug)
|
|||||||
|
|
||||||
# Send shutdown to the connected server and give
|
# Send shutdown to the connected server and give
|
||||||
# it 60 seconds (of mysqltest's default) to die before zapping it
|
# 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
|
--source include/wait_until_disconnected.inc
|
||||||
|
|
||||||
|
@@ -5,6 +5,7 @@
|
|||||||
--source include/big_test.inc
|
--source include/big_test.inc
|
||||||
# Test will take more than one hour with valgrind
|
# Test will take more than one hour with valgrind
|
||||||
--source include/not_valgrind.inc
|
--source include/not_valgrind.inc
|
||||||
|
--source include/not_msan.inc
|
||||||
--source include/have_innodb.inc
|
--source include/have_innodb.inc
|
||||||
--source include/have_sequence.inc
|
--source include/have_sequence.inc
|
||||||
|
|
||||||
|
@@ -10,11 +10,11 @@
|
|||||||
--let $mysqlbinlog_output= tmp/mysqlbinlog_big_1.out
|
--let $mysqlbinlog_output= tmp/mysqlbinlog_big_1.out
|
||||||
|
|
||||||
--source include/have_binlog_format_row.inc
|
--source include/have_binlog_format_row.inc
|
||||||
|
|
||||||
--source include/have_log_bin.inc
|
--source include/have_log_bin.inc
|
||||||
|
|
||||||
# This is a big test.
|
# This is a big test.
|
||||||
--source include/big_test.inc
|
--source include/big_test.inc
|
||||||
|
--source include/not_msan.inc
|
||||||
# Test needs more than 4G of memory
|
# Test needs more than 4G of memory
|
||||||
--source include/have_64bit.inc
|
--source include/have_64bit.inc
|
||||||
|
|
||||||
|
@@ -6,6 +6,7 @@
|
|||||||
--source include/big_test.inc
|
--source include/big_test.inc
|
||||||
# This test is too slow for valgrind
|
# This test is too slow for valgrind
|
||||||
--source include/not_valgrind.inc
|
--source include/not_valgrind.inc
|
||||||
|
--source include/not_msan.inc
|
||||||
|
|
||||||
drop table if exists t1,t2;
|
drop table if exists t1,t2;
|
||||||
|
|
||||||
|
@@ -5078,13 +5078,19 @@ static Sys_var_have Sys_have_symlink(
|
|||||||
"--skip-symbolic-links option.",
|
"--skip-symbolic-links option.",
|
||||||
READ_ONLY GLOBAL_VAR(have_symlink), NO_CMD_LINE);
|
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__
|
# ifdef __SANITIZE_ADDRESS__
|
||||||
#define SANITIZER_MODE "ASAN"
|
# ifdef WITH_UBSAN
|
||||||
|
# define SANITIZER_MODE "ASAN+UBSAN"
|
||||||
# else
|
# else
|
||||||
|
# define SANITIZER_MODE "ASAN"
|
||||||
|
# endif
|
||||||
|
# elif defined WITH_UBSAN
|
||||||
# define SANITIZER_MODE "UBSAN"
|
# define SANITIZER_MODE "UBSAN"
|
||||||
#endif /* __SANITIZE_ADDRESS__ */
|
# else
|
||||||
|
# define SANITIZER_MODE "MSAN"
|
||||||
|
# endif
|
||||||
|
|
||||||
static char *have_sanitizer;
|
static char *have_sanitizer;
|
||||||
static Sys_var_charptr Sys_have_santitizer(
|
static Sys_var_charptr Sys_have_santitizer(
|
||||||
|
Reference in New Issue
Block a user