Go to file
Jason Evans 86abd0dcd8 Refactor to support more varied testing.
Refactor the test harness to support three types of tests:
- unit: White box unit tests.  These tests have full access to all
  internal jemalloc library symbols.  Though in actuality all symbols
  are prefixed by jet_, macro-based name mangling abstracts this away
  from test code.
- integration: Black box integration tests.  These tests link with
  the installable shared jemalloc library, and with the exception of
  some utility code and configure-generated macro definitions, they have
  no access to jemalloc internals.
- stress: Black box stress tests.  These tests link with the installable
  shared jemalloc library, as well as with an internal allocator with
  symbols prefixed by jet_ (same as for unit tests) that can be used to
  allocate data structures that are internal to the test code.

Move existing tests into test/{unit,integration}/ as appropriate.

Split out internal parts of jemalloc_defs.h.in and put them in
jemalloc_internal_defs.h.in.  This reduces internals exposure to
applications that #include <jemalloc/jemalloc.h>.

Refactor jemalloc.h header generation so that a single header file
results, and the prototypes can be used to generate jet_ prototypes for
tests.  Split jemalloc.h.in into multiple parts (jemalloc_defs.h.in,
jemalloc_macros.h.in, jemalloc_protos.h.in, jemalloc_mangle.h.in) and
use a shell script to generate a unified jemalloc.h at configure time.

Change the default private namespace prefix from "" to "je_".

Add missing private namespace mangling.

Remove hard-coded private_namespace.h.  Instead generate it and
private_unnamespace.h from private_symbols.txt.  Use similar logic for
public symbols, which aids in name mangling for jet_ symbols.

Add test_warn() and test_fail().  Replace existing exit(1) calls with
test_fail() calls.
2013-12-03 22:06:59 -08:00
bin Few configure.ac adjustments 2012-04-30 17:13:45 -07:00
doc Fix ALLOCM_ARENA(a) handling in rallocm(). 2013-11-25 18:02:35 -08:00
include Refactor to support more varied testing. 2013-12-03 22:06:59 -08:00
src Avoid deprecated sbrk(2) on OS X. 2013-12-03 21:49:36 -08:00
test Refactor to support more varied testing. 2013-12-03 22:06:59 -08:00
.gitignore Refactor to support more varied testing. 2013-12-03 22:06:59 -08:00
autogen.sh Move repo contents in jemalloc/ to top level. 2011-03-31 20:36:17 -07:00
ChangeLog Refactor to support more varied testing. 2013-12-03 22:06:59 -08:00
config.guess Update autoconf support files. 2013-10-28 12:44:16 -07:00
config.stamp.in Move repo contents in jemalloc/ to top level. 2011-03-31 20:36:17 -07:00
config.sub Update autoconf support files. 2013-10-28 12:44:16 -07:00
configure.ac Refactor to support more varied testing. 2013-12-03 22:06:59 -08:00
COPYING Updated ChangeLog for 3.3.0. 2013-01-22 22:45:09 -08:00
INSTALL Refactor to support more varied testing. 2013-12-03 22:06:59 -08:00
install-sh Move repo contents in jemalloc/ to top level. 2011-03-31 20:36:17 -07:00
Makefile.in Refactor to support more varied testing. 2013-12-03 22:06:59 -08:00
README Update README. 2013-10-20 19:38:19 -07:00

jemalloc is a general purpose malloc(3) implementation that emphasizes
fragmentation avoidance and scalable concurrency support.  jemalloc first came
into use as the FreeBSD libc allocator in 2005, and since then it has found its
way into numerous applications that rely on its predictable behavior.  In 2010
jemalloc development efforts broadened to include developer support features
such as heap profiling, Valgrind integration, and extensive monitoring/tuning
hooks.  Modern jemalloc releases continue to be integrated back into FreeBSD,
and therefore versatility remains critical.  Ongoing development efforts trend
toward making jemalloc among the best allocators for a broad range of demanding
applications, and eliminating/mitigating weaknesses that have practical
repercussions for real world applications.

The COPYING file contains copyright and licensing information.

The INSTALL file contains information on how to configure, build, and install
jemalloc.

The ChangeLog file contains a brief summary of changes for each release.

URL: http://www.canonware.com/jemalloc/