Commit b91a123d authored by Marko Mäkelä's avatar Marko Mäkelä

Extend have_sanitizer with ASAN+UBSAN and MSAN

Disable some tests that are too slow or big for MSAN.
parent 23368b76
...@@ -2,7 +2,7 @@ ...@@ -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
} }
# 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 @@ ...@@ -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) ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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( ...@@ -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
#else # define SANITIZER_MODE "ASAN+UBSAN"
#define SANITIZER_MODE "UBSAN" # else
#endif /* __SANITIZE_ADDRESS__ */ # define SANITIZER_MODE "ASAN"
# endif
# elif defined WITH_UBSAN
# define SANITIZER_MODE "UBSAN"
# 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(
......
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