summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVitaly Buka <vitalybuka@google.com>2017-09-20 07:01:19 +0000
committerVitaly Buka <vitalybuka@google.com>2017-09-20 07:01:19 +0000
commitcf096c2af3b7f76d652878c7b3c2a804fe30ab61 (patch)
treeb08851040f5a609454ffaa99db4c0133e94c130e
parente768daad6e8053c82d88138637997841ac9b2526 (diff)
downloadbcm5719-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.cc17
-rw-r--r--compiler-rt/test/asan/TestCases/error_report_callback.cc20
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;
+}
OpenPOWER on IntegriCloud