diff options
author | Vitaly Buka <vitalybuka@google.com> | 2017-09-20 07:01:19 +0000 |
---|---|---|
committer | Vitaly Buka <vitalybuka@google.com> | 2017-09-20 07:01:19 +0000 |
commit | cf096c2af3b7f76d652878c7b3c2a804fe30ab61 (patch) | |
tree | b08851040f5a609454ffaa99db4c0133e94c130e | |
parent | e768daad6e8053c82d88138637997841ac9b2526 (diff) | |
download | bcm5719-llvm-cf096c2af3b7f76d652878c7b3c2a804fe30ab61.tar.gz bcm5719-llvm-cf096c2af3b7f76d652878c7b3c2a804fe30ab61.zip |
[asan] Resolve FIXME by converting gtest into lit test
llvm-svn: 313727
-rw-r--r-- | compiler-rt/lib/asan/tests/asan_interface_test.cc | 17 | ||||
-rw-r--r-- | compiler-rt/test/asan/TestCases/error_report_callback.cc | 20 |
2 files changed, 20 insertions, 17 deletions
diff --git a/compiler-rt/lib/asan/tests/asan_interface_test.cc b/compiler-rt/lib/asan/tests/asan_interface_test.cc index 03351e02b2f..0540ab5e0a2 100644 --- a/compiler-rt/lib/asan/tests/asan_interface_test.cc +++ b/compiler-rt/lib/asan/tests/asan_interface_test.cc @@ -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; diff --git a/compiler-rt/test/asan/TestCases/error_report_callback.cc b/compiler-rt/test/asan/TestCases/error_report_callback.cc new file mode 100644 index 00000000000..354369a67c4 --- /dev/null +++ b/compiler-rt/test/asan/TestCases/error_report_callback.cc @@ -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; +} |