[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