[asan] Resolve FIXME by converting gtest into lit test
llvm-svn: 313727
This commit is contained in:
parent
e768daad6e
commit
cf096c2af3
|
@ -386,23 +386,6 @@ TEST(AddressSanitizerInterface, DISABLED_InvalidPoisonAndUnpoisonCallsTest) {
|
|||
free(array);
|
||||
}
|
||||
|
||||
#if !defined(_WIN32) // FIXME: This should really be a lit test.
|
||||
static void ErrorReportCallbackOneToZ(const char *report) {
|
||||
int report_len = strlen(report);
|
||||
ASSERT_EQ(6, write(2, "ABCDEF", 6));
|
||||
ASSERT_EQ(report_len, write(2, report, report_len));
|
||||
ASSERT_EQ(6, write(2, "ABCDEF", 6));
|
||||
_exit(1);
|
||||
}
|
||||
|
||||
TEST(AddressSanitizerInterface, SetErrorReportCallbackTest) {
|
||||
__asan_set_error_report_callback(ErrorReportCallbackOneToZ);
|
||||
EXPECT_DEATH(__asan_report_error((void *)GET_CALLER_PC(), 0, 0, 0, true, 1),
|
||||
ASAN_PCRE_DOTALL "ABCDEF.*AddressSanitizer.*WRITE.*ABCDEF");
|
||||
__asan_set_error_report_callback(NULL);
|
||||
}
|
||||
#endif
|
||||
|
||||
TEST(AddressSanitizerInterface, GetOwnershipStressTest) {
|
||||
std::vector<char *> pointers;
|
||||
std::vector<size_t> sizes;
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
// RUN: %clangxx_asan -O0 %s -o %t
|
||||
// RUN: not %run %t 0 2>&1 | FileCheck %s
|
||||
|
||||
#include <sanitizer/asan_interface.h>
|
||||
#include <stdio.h>
|
||||
|
||||
static void ErrorReportCallbackOneToZ(const char *report) {
|
||||
fprintf(stderr, "ABCDEF%sGHIJKL", report);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
__asan_set_error_report_callback(ErrorReportCallbackOneToZ);
|
||||
__asan_report_error(
|
||||
(void *)__builtin_extract_return_addr(__builtin_return_address(0)), 0, 0,
|
||||
0, true, 1);
|
||||
// CHECK: ABCDEF
|
||||
// CHECK: ERROR: AddressSanitizer
|
||||
// CHECK: GHIJKL
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue