forked from OSchip/llvm-project
[asan] improve SetErrorReportCallbackTest to actually catch missing functionality in __asan_set_error_report_callback
llvm-svn: 162745
This commit is contained in:
parent
a80313acbc
commit
4bfe954d14
|
@ -237,7 +237,7 @@ install_clang: | $(INSTALL_DIR)
|
|||
# cp -v $(CLANG_BUILD)/lib/libasan*.a $(INSTALL_DIR)/lib
|
||||
|
||||
$(BIN)/asan_noinst_test$(SUFF).o: tests/asan_noinst_test.cc $(RTL_HDR) $(MAKEFILE)
|
||||
$(CLEANROOM_CXX) $(PIE) $(CFLAGS) $(GTEST_INCLUDE) -I. -I.. -g -c $< -O2 -o $@
|
||||
$(CLEANROOM_CXX) $(COMMON_ASAN_DEFINES) $(PIE) $(CFLAGS) $(GTEST_INCLUDE) -I. -I.. -g -c $< -O2 -o $@
|
||||
|
||||
$(BIN)/asan_break_optimization$(SUFF).o: tests/asan_break_optimization.cc $(MAKEFILE)
|
||||
$(CLEANROOM_CXX) $(PIE) $(CFLAGS) -c $< -O0 -o $@
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include "asan_mapping.h"
|
||||
#include "asan_stack.h"
|
||||
#include "asan_test_utils.h"
|
||||
#include "asan_test_config.h"
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
|
@ -677,11 +678,15 @@ TEST(AddressSanitizerInterface, DISABLED_InvalidPoisonAndUnpoisonCallsTest) {
|
|||
|
||||
static void ErrorReportCallbackOneToZ(const char *report) {
|
||||
write(2, "ABCDEF", 6);
|
||||
write(2, report, strlen(report));
|
||||
write(2, "ABCDEF", 6);
|
||||
_exit(1);
|
||||
}
|
||||
|
||||
TEST(AddressSanitizerInterface, SetErrorReportCallbackTest) {
|
||||
__asan_set_error_report_callback(ErrorReportCallbackOneToZ);
|
||||
EXPECT_DEATH(__asan_report_error(0, 0, 0, 0, true, 1), "ABCDEF");
|
||||
EXPECT_DEATH(__asan_report_error(0, 0, 0, 0, true, 1),
|
||||
ASAN_PCRE_DOTALL "ABCDEF.*AddressSanitizer.*WRITE.*ABCDEF");
|
||||
__asan_set_error_report_callback(NULL);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue