mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Disable the scripts.base.frameworks.logging.sqlite.simultaneous-writes test under TSan
Due to a bug (or intentional code) in SQLite, we disabled enabling the shared cache in sqlite3 if running under ThreadSanitizer (see cf1fefbe0b0a6163b389cc92b5a6878c7fc95f1f). Unfortunately, this has the side-effect of breaking the simultaneous-writes test because the shared cache is disabled. This is hopefully a temporary fix until SQLite fixes the issue on their side.
This commit is contained in:
parent
4dc20826fd
commit
0369ca01bc
3 changed files with 14 additions and 3 deletions
|
@ -147,6 +147,10 @@ if ( ZEEK_SANITIZERS )
|
||||||
set(ZEEK_SANITIZERS "${ZEEK_SANITIZERS},")
|
set(ZEEK_SANITIZERS "${ZEEK_SANITIZERS},")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if ( _sanitizer STREQUAL "thread" )
|
||||||
|
set(ZEEK_TSAN true)
|
||||||
|
endif ()
|
||||||
|
|
||||||
if ( NOT _sanitizer STREQUAL "undefined" )
|
if ( NOT _sanitizer STREQUAL "undefined" )
|
||||||
set(ZEEK_SANITIZERS "${ZEEK_SANITIZERS}${_sanitizer}")
|
set(ZEEK_SANITIZERS "${ZEEK_SANITIZERS}${_sanitizer}")
|
||||||
continue()
|
continue()
|
||||||
|
|
|
@ -2,6 +2,10 @@
|
||||||
#
|
#
|
||||||
# @TEST-REQUIRES: which sqlite3
|
# @TEST-REQUIRES: which sqlite3
|
||||||
# @TEST-REQUIRES: has-writer Zeek::SQLiteWriter
|
# @TEST-REQUIRES: has-writer Zeek::SQLiteWriter
|
||||||
|
|
||||||
|
# Don't run this test if we build with '--sanitizers=thread' because we
|
||||||
|
# disable the shared cache in that case due to a SQLite bug.
|
||||||
|
# @TEST-REQUIRES: grep -q "#define ZEEK_TSAN" zeek-config.h || test $? == 0
|
||||||
# @TEST-GROUP: sqlite
|
# @TEST-GROUP: sqlite
|
||||||
#
|
#
|
||||||
# @TEST-EXEC: zeek -b %INPUT
|
# @TEST-EXEC: zeek -b %INPUT
|
||||||
|
@ -87,4 +91,3 @@ event zeek_init()
|
||||||
Log::write(SSH::LOG, out);
|
Log::write(SSH::LOG, out);
|
||||||
Log::write(SSH::LOG2, out);
|
Log::write(SSH::LOG2, out);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -276,13 +276,17 @@ extern const char* BRO_VERSION_FUNCTION();
|
||||||
#define ZEEK_LSAN_DISABLE_SCOPE(x)
|
#define ZEEK_LSAN_DISABLE_SCOPE(x)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// This part is dependent on calling configure with '--sanitizers=thread'
|
||||||
|
// and not manually setting CFLAGS/CXXFLAGS to include --fsanitize=thread.
|
||||||
|
// This is because some of the unit tests only work when built without
|
||||||
|
// TSan, at least until SQLite opts to fix their problems with atomics.
|
||||||
#if defined(__SANITIZE_THREAD__)
|
#if defined(__SANITIZE_THREAD__)
|
||||||
#define ZEEK_TSAN
|
#cmakedefine ZEEK_TSAN
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__has_feature)
|
#if defined(__has_feature)
|
||||||
#if __has_feature(thread_sanitizer)
|
#if __has_feature(thread_sanitizer)
|
||||||
#define ZEEK_TSAN
|
#cmakedefine ZEEK_TSAN
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue