Home | History | Annotate | Line # | Download | only in internal
      1 #ifndef JEMALLOC_INTERNAL_TEST_HOOKS_H
      2 #define JEMALLOC_INTERNAL_TEST_HOOKS_H
      3 
      4 extern JEMALLOC_EXPORT void (*test_hooks_arena_new_hook)(void);
      5 extern JEMALLOC_EXPORT void (*test_hooks_libc_hook)(void);
      6 
      7 #if defined(JEMALLOC_JET) || defined(JEMALLOC_UNIT_TEST)
      8 #  define JEMALLOC_TEST_HOOK(fn, hook) ((void)(hook != NULL && (hook(), 0)), fn)
      9 
     10 #  define open JEMALLOC_TEST_HOOK(open, test_hooks_libc_hook)
     11 #  define read JEMALLOC_TEST_HOOK(read, test_hooks_libc_hook)
     12 #  define write JEMALLOC_TEST_HOOK(write, test_hooks_libc_hook)
     13 #  define readlink JEMALLOC_TEST_HOOK(readlink, test_hooks_libc_hook)
     14 #  define close JEMALLOC_TEST_HOOK(close, test_hooks_libc_hook)
     15 #  define creat JEMALLOC_TEST_HOOK(creat, test_hooks_libc_hook)
     16 #  define secure_getenv JEMALLOC_TEST_HOOK(secure_getenv, test_hooks_libc_hook)
     17 /* Note that this is undef'd and re-define'd in src/prof.c. */
     18 #  define _Unwind_Backtrace JEMALLOC_TEST_HOOK(_Unwind_Backtrace, test_hooks_libc_hook)
     19 #else
     20 #  define JEMALLOC_TEST_HOOK(fn, hook) fn
     21 #endif
     22 
     23 
     24 #endif /* JEMALLOC_INTERNAL_TEST_HOOKS_H */
     25