[compiler-rt] r183387 - [ASan] make free_hook_realloc test more robust

Alexey Samsonov samsonov at google.com
Thu Jun 6 00:58:00 PDT 2013


Author: samsonov
Date: Thu Jun  6 02:58:00 2013
New Revision: 183387

URL: http://llvm.org/viewvc/llvm-project?rev=183387&view=rev
Log:
[ASan] make free_hook_realloc test more robust

Modified:
    compiler-rt/trunk/lib/asan/lit_tests/free_hook_realloc.cc

Modified: compiler-rt/trunk/lib/asan/lit_tests/free_hook_realloc.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/lit_tests/free_hook_realloc.cc?rev=183387&r1=183386&r2=183387&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/lit_tests/free_hook_realloc.cc (original)
+++ compiler-rt/trunk/lib/asan/lit_tests/free_hook_realloc.cc Thu Jun  6 02:58:00 2013
@@ -1,18 +1,31 @@
 // Check that free hook doesn't conflict with Realloc.
-// RUN: %clangxx_asan -O2 %s -o %t && %t
-#include <assert.h>
+// RUN: %clangxx_asan -O2 %s -o %t
+// RUN: %t 2>&1 | FileCheck %s
 #include <stdlib.h>
+#include <unistd.h>
+
+static void *glob_ptr;
 
 extern "C" {
 void __asan_free_hook(void *ptr) {
-  *(int*)ptr = 0;
+  if (ptr == glob_ptr) {
+    *(int*)ptr = 0;
+    write(1, "FreeHook\n", sizeof("FreeHook\n"));
+  }
 }
 }
 
 int main() {
   int *x = (int*)malloc(100);
   x[0] = 42;
+  glob_ptr = x;
   int *y = (int*)realloc(x, 200);
-  assert(y[0] == 42);
+  // Verify that free hook was called and didn't spoil the memory.
+  if (y[0] != 42) {
+    _exit(1);
+  }
+  write(1, "Passed\n", sizeof("Passed\n"));
+  // CHECK: FreeHook
+  // CHECK: Passed
   return 0;
 }





More information about the llvm-commits mailing list