Summary:
Without this change, the sig-handling test's deliberate
invalid access would trigger an ASAN-abort, which differed
from the expected SEGV. Skip this test when ASAN is enabled.
* folly/experimental/symbolizer/test/SignalHandlerTest.cpp: Include
CPortability.h for definion of FOLLY_SANITIZE_ADDRESS.
(SignalHandler) [FOLLY_SANITIZE_ADDRESS]: Provide a different
regexp to match the first line of output from an ASAN-enabled binary.
Test Plan:
fbconfig --sanitize=address --platform-all=gcc-4.8.1-glibc-2.17 \
folly/experimental/symbolizer/test:signal_handler_test \
&& fbmake --fast runtests \
&& fbmake --fast runtests_opt
Sample output, before this change: https://phabricator.fb.com/P5428975
(search down to first AddressSanitizer abort.
With this change, expect that test to pass.
Reviewed By: lucian@fb.com
FB internal diff:
D1164768
#include "folly/FileUtil.h"
#include "folly/Range.h"
+#include "folly/CPortability.h"
namespace folly { namespace symbolizer { namespace test {
EXPECT_DEATH(
failHard(),
+#ifdef FOLLY_SANITIZE_ADDRESS
+ // Testing an ASAN-enabled binary evokes a different diagnostic.
+ // Use a regexp that requires only the first line of that output:
+ "^ASAN:SIGSEGV\n.*"
+#else
"^\\*\\*\\* Aborted at [0-9]+ \\(Unix time, try 'date -d @[0-9]+'\\) "
"\\*\\*\\*\n"
"\\*\\*\\* Signal 11 \\(SIGSEGV\\) \\(0x2a\\) received by PID [0-9]+ "
".*\n"
"Callback1\n"
"Callback2\n"
+#endif
);
}