Skip to content

Commit fbbb336

Browse files
committed
test: do not consider warning from Sanitizer as fatal
with sanitizer enabled, unittest_ceph_crypto fails like ``` [ RUN ] ForkDeathTest.MD5 [WARNING] /home/jenkins-build/build/workspace/ceph-pull-requests/src/googletest/googletest/src/gtest-death-test.cc:1121:: Death tests use fork(), which is unsafe particularly in a threaded context. For this test, Google Test detected 3 threads. See https://github.com/google/googletest/blob/master/googletest/docs/advanced.md#death-tests-and-threads for more explanation and suggested solutions, especially if this is the last message you see before your test times out. /home/jenkins-build/build/workspace/ceph-pull-requests/src/test/ceph_crypto.cc:273: Failure Death test: do_simple_crypto() Result: died but not with expected error. Expected: contains regular expression "^$" Actual msg: [ DEATH ] ==3798016==Running thread 3797882 was not suspended. False leaks are possible. [ DEATH ] ==3798016==Running thread 3797885 was not suspended. False leaks are possible. [ DEATH ] [ FAILED ] ForkDeathTest.MD5 (119 ms) ``` but this error message should not considered as an indication of fatal error. so, in this change, instead of matching the output with a regex of "^$", we use a matcher to match with the error message if sanitizer is enabled. Signed-off-by: Kefu Chai <[email protected]>
1 parent a2e5d82 commit fbbb336

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

src/test/ceph_crypto.cc

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,15 @@ void do_simple_crypto() {
270270

271271
#if GTEST_HAS_DEATH_TEST && !defined(_WIN32)
272272
TEST_F(ForkDeathTest, MD5) {
273-
ASSERT_EXIT(do_simple_crypto(), ::testing::ExitedWithCode(0), "^$");
273+
#if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__)
274+
// sanitizer warns like:
275+
// ==3798016==Running thread 3797882 was not suspended. False leaks are possible.
276+
// but we should not take it as a fatal error.
277+
const std::string matcher = ".*False leaks are possible.*");
278+
#else
279+
const std::string matcher = "^$";
280+
#endif
281+
ASSERT_EXIT(do_simple_crypto(), ::testing::ExitedWithCode(0), matcher);
274282
}
275283
#endif // GTEST_HAS_DEATH_TEST && !defined(_WIN32)
276284

0 commit comments

Comments
 (0)