test-runner: Wrap realloc() too
authorDaniel Stone <daniel@fooishbar.org>
Mon, 23 Jul 2012 18:54:39 +0000 (19:54 +0100)
committerKristian Høgsberg <krh@bitplanet.net>
Mon, 23 Jul 2012 20:40:58 +0000 (16:40 -0400)
So all our tests don't start failing just because we had the temerity to
use realloc() rather than malloc().

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
tests/test-runner.c

index c4a57a3..5e8ec95 100644 (file)
@@ -36,6 +36,7 @@
 static int num_alloc;
 static void* (*sys_malloc)(size_t);
 static void (*sys_free)(void*);
+static void* (*sys_realloc)(void*, size_t);
 
 extern const struct test __start_test_section, __stop_test_section;
 
@@ -54,6 +55,14 @@ free(void* mem)
        sys_free(mem);
 }
 
+__attribute__ ((visibility("default"))) void *
+realloc(void* mem, size_t size)
+{
+       if (mem == NULL)
+               num_alloc++;
+       return sys_realloc(mem, size);
+}
+
 static const struct test *
 find_test(const char *name)
 {
@@ -86,7 +95,8 @@ int main(int argc, char *argv[])
        int total, pass;
        siginfo_t info;
 
-       /* Load system malloc and free */
+       /* Load system malloc, free, and realloc */
+       sys_realloc = dlsym(RTLD_NEXT, "realloc");
        sys_malloc = dlsym(RTLD_NEXT, "malloc");
        sys_free = dlsym(RTLD_NEXT, "free");