Details
-
Bug
-
Resolution: Fixed
-
Major
-
7.6.0
-
Untriaged
-
0
-
Unknown
Description
As identified during compiler upgrade testing by Blair Watt, unit tests which are registered with Make via gtest_discover_tests do not have the necessary env vars set to pass configuration to Address / Leak Sanitizer - in this specific case they are needed to specify the "lsan.suppression" leak suppression file.
Example output of running one such suite (ep-engine_ep_unit_tests) - note no env vars are set:
ctest -R ep-engine_ep_unit_tests.RocksFullOrValue/DurabilityWarmupTest -V
|
...
|
264: Test command: /Users/dave/repos/couchbase/server/source/build-asan-ubsan-arm64/kv_engine/ep-engine_ep_unit_tests "--gtest_filter=RocksFullOrValue/DurabilityWarmupTest.*"
|
264: Working Directory: /Users/dave/repos/couchbase/server/source/build-asan-ubsan-arm64/kv_engine
|
264: Test timeout computed to be: 300
|
264: Note: Google Test filter = RocksFullOrValue/DurabilityWarmupTest.*
|
264: [==========] Running 74 tests from 1 test suite.
|
Compare this to a test registered directly using add_test() where the necessary env vars are passed:
$ ctest -R ep_testsuite.value_eviction.rocksdb -V
|
...
|
317: Test command: /opt/homebrew/bin/timeout "--preserve-status" "--signal=ABRT" "1200s" "/Users/dave/repos/couchbase/server/source/build-asan-ubsan-arm64/kv_engine/ep_testsuite" "-E" "ep" "-v" "-e" "dbname=./ep_testsuite.value_eviction.rocksdb;backend=rocksdb"
|
317: Working Directory: /Users/dave/repos/couchbase/server/source/build-asan-ubsan-arm64/kv_engine/engines/ep/tests
|
317: Environment variables:
|
317: ASAN_SYMBOLIZER_PATH=
|
317: LSAN_OPTIONS=suppressions=/Users/dave/repos/couchbase/server/source/tlm/lsan.suppressions
|
317: UBSAN_OPTIONS=suppressions=/Users/dave/repos/couchbase/server/source/tlm/ubsan.suppressions print_stacktrace=1
|
317: Test timeout computed to be: 2400
|
317: Running [0/156]: expiry pager settings...(2347 ms) OK
|