summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenety Goh <benety@mongodb.com>2021-02-07 06:45:00 -0500
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-02-07 12:13:13 +0000
commitbaa6f1a1ef32335356136ae144ca2b1d57f6158c (patch)
treecf6e1d2b1575dc4b86a88d1563e8e49b26516db6
parent473e7b3c603eca5886d45f985e47bddc626a2d23 (diff)
downloadmongo-baa6f1a1ef32335356136ae144ca2b1d57f6158c.tar.gz
SERVER-50268 restore UBSAN stanza for storage_wiredtiger_record_store_and_index_test
This exclusion was added in commit f2ec414e9c21f09fe7e5009efe00a8934743c0db.
-rw-r--r--src/mongo/db/storage/wiredtiger/SConscript63
1 files changed, 37 insertions, 26 deletions
diff --git a/src/mongo/db/storage/wiredtiger/SConscript b/src/mongo/db/storage/wiredtiger/SConscript
index b7cbddb0e96..e41db61a001 100644
--- a/src/mongo/db/storage/wiredtiger/SConscript
+++ b/src/mongo/db/storage/wiredtiger/SConscript
@@ -1,12 +1,19 @@
# -*- mode: python -*-
Import("env")
Import("wiredtiger")
+Import("get_option")
if not wiredtiger:
Return()
env = env.Clone()
+using_ubsan = False
+sanitizer_list = get_option('sanitize')
+if sanitizer_list:
+ using_ubsan = 'undefined' in sanitizer_list.split(',')
+
+
env.Library(
target='storage_wiredtiger_customization_hooks',
source= [
@@ -189,30 +196,34 @@ wtEnv.Library(
)
-wtEnv.CppUnitTest(
- target='storage_wiredtiger_record_store_and_index_test',
- source=[
- 'wiredtiger_standard_index_test.cpp',
- 'wiredtiger_standard_record_store_test.cpp',
- ],
- LIBDEPS=[
- '$BUILD_DIR/mongo/db/auth/authmocks',
- '$BUILD_DIR/mongo/db/repl/repl_coordinator_interface',
- '$BUILD_DIR/mongo/db/repl/replmocks',
- '$BUILD_DIR/mongo/db/service_context_test_fixture',
- 'additional_wiredtiger_index_tests',
- 'additional_wiredtiger_record_store_tests',
- ],
-)
+# All of these tests fail to compile under undefined behavior
+# sanitizer due to unexpressed circular dependency edges. In particular
+# they all need a definition from the 'catalog'.
+if not using_ubsan:
+ wtEnv.CppUnitTest(
+ target='storage_wiredtiger_record_store_and_index_test',
+ source=[
+ 'wiredtiger_standard_index_test.cpp',
+ 'wiredtiger_standard_record_store_test.cpp',
+ ],
+ LIBDEPS=[
+ '$BUILD_DIR/mongo/db/auth/authmocks',
+ '$BUILD_DIR/mongo/db/repl/repl_coordinator_interface',
+ '$BUILD_DIR/mongo/db/repl/replmocks',
+ '$BUILD_DIR/mongo/db/service_context_test_fixture',
+ 'additional_wiredtiger_index_tests',
+ 'additional_wiredtiger_record_store_tests',
+ ],
+ )
-wtEnv.Benchmark(
- target='storage_wiredtiger_begin_transaction_block_bm',
- source='wiredtiger_begin_transaction_block_bm.cpp',
- LIBDEPS=[
- '$BUILD_DIR/mongo/db/service_context',
- '$BUILD_DIR/mongo/db/storage/durable_catalog_impl',
- '$BUILD_DIR/mongo/unittest/unittest',
- '$BUILD_DIR/mongo/util/clock_source_mock',
- 'storage_wiredtiger_core',
- ],
-)
+ wtEnv.Benchmark(
+ target='storage_wiredtiger_begin_transaction_block_bm',
+ source='wiredtiger_begin_transaction_block_bm.cpp',
+ LIBDEPS=[
+ '$BUILD_DIR/mongo/db/service_context',
+ '$BUILD_DIR/mongo/db/storage/durable_catalog_impl',
+ '$BUILD_DIR/mongo/unittest/unittest',
+ '$BUILD_DIR/mongo/util/clock_source_mock',
+ 'storage_wiredtiger_core',
+ ],
+ )