Add test code coverage analysis.
Add test code coverage analysis based on gcov.
This commit is contained in:
parent
d37d5adee4
commit
748dfac778
12
.gitignore
vendored
12
.gitignore
vendored
@ -1,3 +1,5 @@
|
|||||||
|
/*.gcov.*
|
||||||
|
|
||||||
/autom4te.cache/
|
/autom4te.cache/
|
||||||
|
|
||||||
/bin/jemalloc.sh
|
/bin/jemalloc.sh
|
||||||
@ -32,6 +34,8 @@
|
|||||||
/include/jemalloc/jemalloc_mangle.h
|
/include/jemalloc/jemalloc_mangle.h
|
||||||
|
|
||||||
/src/*.[od]
|
/src/*.[od]
|
||||||
|
/src/*.gcda
|
||||||
|
/src/*.gcno
|
||||||
|
|
||||||
/test/test.sh
|
/test/test.sh
|
||||||
test/include/test/jemalloc_test.h
|
test/include/test/jemalloc_test.h
|
||||||
@ -39,18 +43,26 @@ test/include/test/jemalloc_test.h
|
|||||||
/test/integration/[A-Za-z]*
|
/test/integration/[A-Za-z]*
|
||||||
!/test/integration/[A-Za-z]*.*
|
!/test/integration/[A-Za-z]*.*
|
||||||
/test/integration/*.[od]
|
/test/integration/*.[od]
|
||||||
|
/test/integration/*.gcda
|
||||||
|
/test/integration/*.gcno
|
||||||
/test/integration/*.out
|
/test/integration/*.out
|
||||||
|
|
||||||
/test/src/*.[od]
|
/test/src/*.[od]
|
||||||
|
/test/src/*.gcda
|
||||||
|
/test/src/*.gcno
|
||||||
|
|
||||||
/test/stress/[A-Za-z]*
|
/test/stress/[A-Za-z]*
|
||||||
!/test/stress/[A-Za-z]*.*
|
!/test/stress/[A-Za-z]*.*
|
||||||
/test/stress/*.[od]
|
/test/stress/*.[od]
|
||||||
|
/test/stress/*.gcda
|
||||||
|
/test/stress/*.gcno
|
||||||
/test/stress/*.out
|
/test/stress/*.out
|
||||||
|
|
||||||
/test/unit/[A-Za-z]*
|
/test/unit/[A-Za-z]*
|
||||||
!/test/unit/[A-Za-z]*.*
|
!/test/unit/[A-Za-z]*.*
|
||||||
/test/unit/*.[od]
|
/test/unit/*.[od]
|
||||||
|
/test/unit/*.gcda
|
||||||
|
/test/unit/*.gcno
|
||||||
/test/unit/*.out
|
/test/unit/*.out
|
||||||
|
|
||||||
/VERSION
|
/VERSION
|
||||||
|
13
INSTALL
13
INSTALL
@ -81,6 +81,19 @@ any of the following arguments (not a definitive list) to 'configure':
|
|||||||
performance hit, but is very useful during application development.
|
performance hit, but is very useful during application development.
|
||||||
Implies --enable-ivsalloc.
|
Implies --enable-ivsalloc.
|
||||||
|
|
||||||
|
--enable-code-coverage
|
||||||
|
Enable code coverage support, for use during jemalloc test development.
|
||||||
|
Additional testing targets are available if this option is enabled:
|
||||||
|
|
||||||
|
coverage
|
||||||
|
coverage_unit
|
||||||
|
coverage_integration
|
||||||
|
coverage_stress
|
||||||
|
|
||||||
|
These targets do not clear code coverage results from previous runs, and
|
||||||
|
there are interactions between the various coverage targets, so it is
|
||||||
|
usually advisable to run 'make clean' between repeated code coverage runs.
|
||||||
|
|
||||||
--enable-ivsalloc
|
--enable-ivsalloc
|
||||||
Enable validation code, which verifies that pointers reside within
|
Enable validation code, which verifies that pointers reside within
|
||||||
jemalloc-owned chunks before dereferencing them. This incurs a substantial
|
jemalloc-owned chunks before dereferencing them. This incurs a substantial
|
||||||
|
56
Makefile.in
56
Makefile.in
@ -47,6 +47,7 @@ cfghdrs_out := @cfghdrs_out@
|
|||||||
cfgoutputs_in := @cfgoutputs_in@
|
cfgoutputs_in := @cfgoutputs_in@
|
||||||
cfgoutputs_out := @cfgoutputs_out@
|
cfgoutputs_out := @cfgoutputs_out@
|
||||||
enable_autogen := @enable_autogen@
|
enable_autogen := @enable_autogen@
|
||||||
|
enable_code_coverage := @enable_code_coverage@
|
||||||
enable_experimental := @enable_experimental@
|
enable_experimental := @enable_experimental@
|
||||||
enable_zone_allocator := @enable_zone_allocator@
|
enable_zone_allocator := @enable_zone_allocator@
|
||||||
DSO_LDFLAGS = @DSO_LDFLAGS@
|
DSO_LDFLAGS = @DSO_LDFLAGS@
|
||||||
@ -224,15 +225,15 @@ $(STATIC_LIBS):
|
|||||||
|
|
||||||
$(objroot)test/unit/%$(EXE): $(objroot)test/unit/%.$(O) $(C_JET_OBJS) $(C_TESTLIB_UNIT_OBJS)
|
$(objroot)test/unit/%$(EXE): $(objroot)test/unit/%.$(O) $(C_JET_OBJS) $(C_TESTLIB_UNIT_OBJS)
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
$(CC) $(LDTARGET) $(filter %.$(O),$^) $(call RPATH,$(objroot)lib) $(LIBS) $(EXTRA_LDFLAGS)
|
$(CC) $(LDTARGET) $(filter %.$(O),$^) $(call RPATH,$(objroot)lib) $(LDFLAGS) $(LIBS) $(EXTRA_LDFLAGS)
|
||||||
|
|
||||||
$(objroot)test/integration/%$(EXE): $(objroot)test/integration/%.$(O) $(C_TESTLIB_INTEGRATION_OBJS) $(C_UTIL_INTEGRATION_OBJS) $(objroot)lib/$(LIBJEMALLOC).$(IMPORTLIB)
|
$(objroot)test/integration/%$(EXE): $(objroot)test/integration/%.$(O) $(C_TESTLIB_INTEGRATION_OBJS) $(C_UTIL_INTEGRATION_OBJS) $(objroot)lib/$(LIBJEMALLOC).$(IMPORTLIB)
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
$(CC) $(LDTARGET) $(filter %.$(O),$^) $(call RPATH,$(objroot)lib) $(objroot)lib/$(LIBJEMALLOC).$(IMPORTLIB) $(filter -lpthread,$(LIBS)) $(EXTRA_LDFLAGS)
|
$(CC) $(LDTARGET) $(filter %.$(O),$^) $(call RPATH,$(objroot)lib) $(objroot)lib/$(LIBJEMALLOC).$(IMPORTLIB) $(LDFLAGS) $(filter -lpthread,$(LIBS)) $(EXTRA_LDFLAGS)
|
||||||
|
|
||||||
$(objroot)test/stress/%$(EXE): $(objroot)test/stress/%.$(O) $(C_JET_OBJS) $(C_TESTLIB_STRESS_OBJS) $(objroot)lib/$(LIBJEMALLOC).$(IMPORTLIB)
|
$(objroot)test/stress/%$(EXE): $(objroot)test/stress/%.$(O) $(C_JET_OBJS) $(C_TESTLIB_STRESS_OBJS) $(objroot)lib/$(LIBJEMALLOC).$(IMPORTLIB)
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
$(CC) $(LDTARGET) $(filter %.$(O),$^) $(call RPATH,$(objroot)lib) $(objroot)lib/$(LIBJEMALLOC).$(IMPORTLIB) $(LIBS) $(EXTRA_LDFLAGS)
|
$(CC) $(LDTARGET) $(filter %.$(O),$^) $(call RPATH,$(objroot)lib) $(objroot)lib/$(LIBJEMALLOC).$(IMPORTLIB) $(LDFLAGS) $(LIBS) $(EXTRA_LDFLAGS)
|
||||||
|
|
||||||
build_lib_shared: $(DSOS)
|
build_lib_shared: $(DSOS)
|
||||||
build_lib_static: $(STATIC_LIBS)
|
build_lib_static: $(STATIC_LIBS)
|
||||||
@ -300,13 +301,43 @@ check_stress_dir:
|
|||||||
check_dir: check_unit_dir check_integration_dir check_stress_dir
|
check_dir: check_unit_dir check_integration_dir check_stress_dir
|
||||||
|
|
||||||
check_unit: tests_unit check_unit_dir
|
check_unit: tests_unit check_unit_dir
|
||||||
@$(SHELL) $(objroot)test/test.sh $(TESTS_UNIT:$(srcroot)%.c=$(objroot)%)
|
$(SHELL) $(objroot)test/test.sh $(TESTS_UNIT:$(srcroot)%.c=$(objroot)%)
|
||||||
check_integration: tests_integration check_integration_dir
|
check_integration: tests_integration check_integration_dir
|
||||||
@$(SHELL) $(objroot)test/test.sh $(TESTS_INTEGRATION:$(srcroot)%.c=$(objroot)%)
|
$(SHELL) $(objroot)test/test.sh $(TESTS_INTEGRATION:$(srcroot)%.c=$(objroot)%)
|
||||||
check_stress: tests_stress check_stress_dir
|
check_stress: tests_stress check_stress_dir
|
||||||
@$(SHELL) $(objroot)test/test.sh $(TESTS_STRESS:$(srcroot)%.c=$(objroot)%)
|
$(SHELL) $(objroot)test/test.sh $(TESTS_STRESS:$(srcroot)%.c=$(objroot)%)
|
||||||
check: tests check_dir
|
check: tests check_dir
|
||||||
@$(SHELL) $(objroot)test/test.sh $(TESTS:$(srcroot)%.c=$(objroot)%)
|
$(SHELL) $(objroot)test/test.sh $(TESTS:$(srcroot)%.c=$(objroot)%)
|
||||||
|
|
||||||
|
ifeq ($(enable_code_coverage), 1)
|
||||||
|
coverage_unit: check_unit
|
||||||
|
$(SHELL) $(srcroot)coverage.sh $(srcroot)src jet $(C_JET_OBJS)
|
||||||
|
$(SHELL) $(srcroot)coverage.sh $(srcroot)test/src unit $(C_TESTLIB_UNIT_OBJS)
|
||||||
|
$(SHELL) $(srcroot)coverage.sh $(srcroot)test/unit unit $(TESTS_UNIT_OBJS)
|
||||||
|
|
||||||
|
coverage_integration: check_integration
|
||||||
|
$(SHELL) $(srcroot)coverage.sh $(srcroot)src pic $(C_PIC_OBJS)
|
||||||
|
$(SHELL) $(srcroot)coverage.sh $(srcroot)src integration $(C_UTIL_INTEGRATION_OBJS)
|
||||||
|
$(SHELL) $(srcroot)coverage.sh $(srcroot)test/src integration $(C_TESTLIB_INTEGRATION_OBJS)
|
||||||
|
$(SHELL) $(srcroot)coverage.sh $(srcroot)test/integration integration $(TESTS_INTEGRATION_OBJS)
|
||||||
|
|
||||||
|
coverage_stress: check_stress
|
||||||
|
$(SHELL) $(srcroot)coverage.sh $(srcroot)src pic $(C_PIC_OBJS)
|
||||||
|
$(SHELL) $(srcroot)coverage.sh $(srcroot)src jet $(C_JET_OBJS)
|
||||||
|
$(SHELL) $(srcroot)coverage.sh $(srcroot)test/src stress $(C_TESTLIB_STRESS_OBJS)
|
||||||
|
$(SHELL) $(srcroot)coverage.sh $(srcroot)test/stress stress $(TESTS_STRESS_OBJS)
|
||||||
|
|
||||||
|
coverage: check
|
||||||
|
$(SHELL) $(srcroot)coverage.sh $(srcroot)src pic $(C_PIC_OBJS)
|
||||||
|
$(SHELL) $(srcroot)coverage.sh $(srcroot)src jet $(C_JET_OBJS)
|
||||||
|
$(SHELL) $(srcroot)coverage.sh $(srcroot)src integration $(C_UTIL_INTEGRATION_OBJS)
|
||||||
|
$(SHELL) $(srcroot)coverage.sh $(srcroot)test/src unit $(C_TESTLIB_UNIT_OBJS)
|
||||||
|
$(SHELL) $(srcroot)coverage.sh $(srcroot)test/src integration $(C_TESTLIB_INTEGRATION_OBJS)
|
||||||
|
$(SHELL) $(srcroot)coverage.sh $(srcroot)test/src stress $(C_TESTLIB_STRESS_OBJS)
|
||||||
|
$(SHELL) $(srcroot)coverage.sh $(srcroot)test/unit unit $(TESTS_UNIT_OBJS)
|
||||||
|
$(SHELL) $(srcroot)coverage.sh $(srcroot)test/integration integration $(TESTS_INTEGRATION_OBJS)
|
||||||
|
$(SHELL) $(srcroot)coverage.sh $(srcroot)test/stress integration $(TESTS_STRESS_OBJS)
|
||||||
|
endif
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(C_OBJS)
|
rm -f $(C_OBJS)
|
||||||
@ -314,14 +345,25 @@ clean:
|
|||||||
rm -f $(C_JET_OBJS)
|
rm -f $(C_JET_OBJS)
|
||||||
rm -f $(C_TESTLIB_OBJS)
|
rm -f $(C_TESTLIB_OBJS)
|
||||||
rm -f $(C_OBJS:%.$(O)=%.d)
|
rm -f $(C_OBJS:%.$(O)=%.d)
|
||||||
|
rm -f $(C_OBJS:%.$(O)=%.gcda)
|
||||||
|
rm -f $(C_OBJS:%.$(O)=%.gcno)
|
||||||
rm -f $(C_PIC_OBJS:%.$(O)=%.d)
|
rm -f $(C_PIC_OBJS:%.$(O)=%.d)
|
||||||
|
rm -f $(C_PIC_OBJS:%.$(O)=%.gcda)
|
||||||
|
rm -f $(C_PIC_OBJS:%.$(O)=%.gcno)
|
||||||
rm -f $(C_JET_OBJS:%.$(O)=%.d)
|
rm -f $(C_JET_OBJS:%.$(O)=%.d)
|
||||||
|
rm -f $(C_JET_OBJS:%.$(O)=%.gcda)
|
||||||
|
rm -f $(C_JET_OBJS:%.$(O)=%.gcno)
|
||||||
rm -f $(C_TESTLIB_OBJS:%.$(O)=%.d)
|
rm -f $(C_TESTLIB_OBJS:%.$(O)=%.d)
|
||||||
|
rm -f $(C_TESTLIB_OBJS:%.$(O)=%.gcda)
|
||||||
|
rm -f $(C_TESTLIB_OBJS:%.$(O)=%.gcno)
|
||||||
rm -f $(TESTS_OBJS:%.$(O)=%$(EXE))
|
rm -f $(TESTS_OBJS:%.$(O)=%$(EXE))
|
||||||
rm -f $(TESTS_OBJS)
|
rm -f $(TESTS_OBJS)
|
||||||
rm -f $(TESTS_OBJS:%.$(O)=%.d)
|
rm -f $(TESTS_OBJS:%.$(O)=%.d)
|
||||||
|
rm -f $(TESTS_OBJS:%.$(O)=%.gcda)
|
||||||
|
rm -f $(TESTS_OBJS:%.$(O)=%.gcno)
|
||||||
rm -f $(TESTS_OBJS:%.$(O)=%.out)
|
rm -f $(TESTS_OBJS:%.$(O)=%.out)
|
||||||
rm -f $(DSOS) $(STATIC_LIBS)
|
rm -f $(DSOS) $(STATIC_LIBS)
|
||||||
|
rm -f $(objroot)*.gcov.*
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -rf $(objroot)autom4te.cache
|
rm -rf $(objroot)autom4te.cache
|
||||||
|
33
configure.ac
33
configure.ac
@ -440,6 +440,31 @@ if test "x$enable_experimental" = "x1" ; then
|
|||||||
fi
|
fi
|
||||||
AC_SUBST([enable_experimental])
|
AC_SUBST([enable_experimental])
|
||||||
|
|
||||||
|
dnl Do not compute test code coverage by default.
|
||||||
|
GCOV_FLAGS=
|
||||||
|
AC_ARG_ENABLE([code-coverage],
|
||||||
|
[AS_HELP_STRING([--enable-code-coverage],
|
||||||
|
[Enable code coverage])],
|
||||||
|
[if test "x$enable_code_coverage" = "xno" ; then
|
||||||
|
enable_code_coverage="0"
|
||||||
|
else
|
||||||
|
enable_code_coverage="1"
|
||||||
|
fi
|
||||||
|
],
|
||||||
|
[enable_code_coverage="0"]
|
||||||
|
)
|
||||||
|
if test "x$enable_code_coverage" = "x1" ; then
|
||||||
|
deoptimize="no"
|
||||||
|
echo "$CFLAGS $EXTRA_CFLAGS" | grep '\-O' >/dev/null || deoptimize="yes"
|
||||||
|
if test "x${deoptimize}" = "xyes" ; then
|
||||||
|
JE_CFLAGS_APPEND([-O0])
|
||||||
|
fi
|
||||||
|
JE_CFLAGS_APPEND([-fprofile-arcs -ftest-coverage])
|
||||||
|
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -fprofile-arcs -ftest-coverage"
|
||||||
|
AC_DEFINE([JEMALLOC_CODE_COVERAGE], [ ])
|
||||||
|
fi
|
||||||
|
AC_SUBST([enable_code_coverage])
|
||||||
|
|
||||||
dnl Perform no name mangling by default.
|
dnl Perform no name mangling by default.
|
||||||
AC_ARG_WITH([mangling],
|
AC_ARG_WITH([mangling],
|
||||||
[AS_HELP_STRING([--with-mangling=<map>], [Mangle symbols in <map>])],
|
[AS_HELP_STRING([--with-mangling=<map>], [Mangle symbols in <map>])],
|
||||||
@ -616,7 +641,7 @@ dnl Only optimize if not debugging.
|
|||||||
if test "x$enable_debug" = "x0" -a "x$no_CFLAGS" = "xyes" ; then
|
if test "x$enable_debug" = "x0" -a "x$no_CFLAGS" = "xyes" ; then
|
||||||
dnl Make sure that an optimization flag was not specified in EXTRA_CFLAGS.
|
dnl Make sure that an optimization flag was not specified in EXTRA_CFLAGS.
|
||||||
optimize="no"
|
optimize="no"
|
||||||
echo "$EXTRA_CFLAGS" | grep "\-O" >/dev/null || optimize="yes"
|
echo "$CFLAGS $EXTRA_CFLAGS" | grep '\-O' >/dev/null || optimize="yes"
|
||||||
if test "x${optimize}" = "xyes" ; then
|
if test "x${optimize}" = "xyes" ; then
|
||||||
if test "x$GCC" = "xyes" ; then
|
if test "x$GCC" = "xyes" ; then
|
||||||
JE_CFLAGS_APPEND([-O3])
|
JE_CFLAGS_APPEND([-O3])
|
||||||
@ -1303,6 +1328,9 @@ dnl ============================================================================
|
|||||||
dnl Check for typedefs, structures, and compiler characteristics.
|
dnl Check for typedefs, structures, and compiler characteristics.
|
||||||
AC_HEADER_STDBOOL
|
AC_HEADER_STDBOOL
|
||||||
|
|
||||||
|
dnl ============================================================================
|
||||||
|
dnl Define commands that generate output files.
|
||||||
|
|
||||||
AC_CONFIG_COMMANDS([include/jemalloc/internal/private_namespace.h], [
|
AC_CONFIG_COMMANDS([include/jemalloc/internal/private_namespace.h], [
|
||||||
mkdir -p "${objroot}include/jemalloc/internal"
|
mkdir -p "${objroot}include/jemalloc/internal"
|
||||||
"${srcdir}/include/jemalloc/internal/private_namespace.sh" "${srcdir}/include/jemalloc/internal/private_symbols.txt" > "${objroot}include/jemalloc/internal/private_namespace.h"
|
"${srcdir}/include/jemalloc/internal/private_namespace.sh" "${srcdir}/include/jemalloc/internal/private_symbols.txt" > "${objroot}include/jemalloc/internal/private_namespace.h"
|
||||||
@ -1339,6 +1367,7 @@ AC_CONFIG_HEADERS([$cfghdrs_tup])
|
|||||||
|
|
||||||
dnl ============================================================================
|
dnl ============================================================================
|
||||||
dnl Generate outputs.
|
dnl Generate outputs.
|
||||||
|
|
||||||
AC_CONFIG_FILES([$cfgoutputs_tup config.stamp bin/jemalloc.sh])
|
AC_CONFIG_FILES([$cfgoutputs_tup config.stamp bin/jemalloc.sh])
|
||||||
AC_SUBST([cfgoutputs_in])
|
AC_SUBST([cfgoutputs_in])
|
||||||
AC_SUBST([cfgoutputs_out])
|
AC_SUBST([cfgoutputs_out])
|
||||||
@ -1354,6 +1383,7 @@ AC_MSG_RESULT([CC : ${CC}])
|
|||||||
AC_MSG_RESULT([CPPFLAGS : ${CPPFLAGS}])
|
AC_MSG_RESULT([CPPFLAGS : ${CPPFLAGS}])
|
||||||
AC_MSG_RESULT([CFLAGS : ${CFLAGS}])
|
AC_MSG_RESULT([CFLAGS : ${CFLAGS}])
|
||||||
AC_MSG_RESULT([LDFLAGS : ${LDFLAGS}])
|
AC_MSG_RESULT([LDFLAGS : ${LDFLAGS}])
|
||||||
|
AC_MSG_RESULT([EXTRA_LDFLAGS : ${EXTRA_LDFLAGS}])
|
||||||
AC_MSG_RESULT([LIBS : ${LIBS}])
|
AC_MSG_RESULT([LIBS : ${LIBS}])
|
||||||
AC_MSG_RESULT([RPATH_EXTRA : ${RPATH_EXTRA}])
|
AC_MSG_RESULT([RPATH_EXTRA : ${RPATH_EXTRA}])
|
||||||
AC_MSG_RESULT([])
|
AC_MSG_RESULT([])
|
||||||
@ -1380,6 +1410,7 @@ AC_MSG_RESULT([autogen : ${enable_autogen}])
|
|||||||
AC_MSG_RESULT([experimental : ${enable_experimental}])
|
AC_MSG_RESULT([experimental : ${enable_experimental}])
|
||||||
AC_MSG_RESULT([cc-silence : ${enable_cc_silence}])
|
AC_MSG_RESULT([cc-silence : ${enable_cc_silence}])
|
||||||
AC_MSG_RESULT([debug : ${enable_debug}])
|
AC_MSG_RESULT([debug : ${enable_debug}])
|
||||||
|
AC_MSG_RESULT([code-coverage : ${enable_code_coverage}])
|
||||||
AC_MSG_RESULT([stats : ${enable_stats}])
|
AC_MSG_RESULT([stats : ${enable_stats}])
|
||||||
AC_MSG_RESULT([prof : ${enable_prof}])
|
AC_MSG_RESULT([prof : ${enable_prof}])
|
||||||
AC_MSG_RESULT([prof-libunwind : ${enable_prof_libunwind}])
|
AC_MSG_RESULT([prof-libunwind : ${enable_prof_libunwind}])
|
||||||
|
16
coverage.sh
Executable file
16
coverage.sh
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
objdir=$1
|
||||||
|
suffix=$2
|
||||||
|
shift 2
|
||||||
|
objs=$@
|
||||||
|
|
||||||
|
gcov -b -p -f -o "${objdir}" ${objs}
|
||||||
|
|
||||||
|
# Move gcov outputs so that subsequent gcov invocations won't clobber results
|
||||||
|
# for the same sources with different compilation flags.
|
||||||
|
for f in `find . -maxdepth 1 -type f -name '*.gcov'` ; do
|
||||||
|
mv "${f}" "${f}.${suffix}"
|
||||||
|
done
|
@ -83,6 +83,9 @@
|
|||||||
/* JEMALLOC_CC_SILENCE enables code that silences unuseful compiler warnings. */
|
/* JEMALLOC_CC_SILENCE enables code that silences unuseful compiler warnings. */
|
||||||
#undef JEMALLOC_CC_SILENCE
|
#undef JEMALLOC_CC_SILENCE
|
||||||
|
|
||||||
|
/* JEMALLOC_CODE_COVERAGE enables test code coverage analysis. */
|
||||||
|
#undef JEMALLOC_CODE_COVERAGE
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* JEMALLOC_DEBUG enables assertions and other sanity checks, and disables
|
* JEMALLOC_DEBUG enables assertions and other sanity checks, and disables
|
||||||
* inline functions.
|
* inline functions.
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
* JEMALLOC_ALWAYS_INLINE_C is for use in .c files, in which case the denoted
|
* JEMALLOC_ALWAYS_INLINE_C is for use in .c files, in which case the denoted
|
||||||
* functions are always static, regardless of whether inlining is enabled.
|
* functions are always static, regardless of whether inlining is enabled.
|
||||||
*/
|
*/
|
||||||
#ifdef JEMALLOC_DEBUG
|
#if defined(JEMALLOC_DEBUG) || defined(JEMALLOC_CODE_COVERAGE)
|
||||||
/* Disable inlining to make debugging easier. */
|
/* Disable inlining to make debugging/profiling easier. */
|
||||||
# define JEMALLOC_ALWAYS_INLINE
|
# define JEMALLOC_ALWAYS_INLINE
|
||||||
# define JEMALLOC_ALWAYS_INLINE_C static
|
# define JEMALLOC_ALWAYS_INLINE_C static
|
||||||
# define JEMALLOC_INLINE
|
# define JEMALLOC_INLINE
|
||||||
|
Loading…
Reference in New Issue
Block a user