1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #include "test/jemalloc_test.h"
- #define MAXALIGN (((size_t)1) << 22)
- #define NITER 3
- TEST_BEGIN(test_basic) {
- void *ptr = mallocx(64, 0);
- sdallocx(ptr, 64, 0);
- }
- TEST_END
- TEST_BEGIN(test_alignment_and_size) {
- size_t nsz, sz, alignment, total;
- unsigned i;
- void *ps[NITER];
- for (i = 0; i < NITER; i++) {
- ps[i] = NULL;
- }
- for (alignment = 8;
- alignment <= MAXALIGN;
- alignment <<= 1) {
- total = 0;
- for (sz = 1;
- sz < 3 * alignment && sz < (1U << 31);
- sz += (alignment >> (LG_SIZEOF_PTR-1)) - 1) {
- for (i = 0; i < NITER; i++) {
- nsz = nallocx(sz, MALLOCX_ALIGN(alignment) |
- MALLOCX_ZERO);
- ps[i] = mallocx(sz, MALLOCX_ALIGN(alignment) |
- MALLOCX_ZERO);
- total += nsz;
- if (total >= (MAXALIGN << 1)) {
- break;
- }
- }
- for (i = 0; i < NITER; i++) {
- if (ps[i] != NULL) {
- sdallocx(ps[i], sz,
- MALLOCX_ALIGN(alignment));
- ps[i] = NULL;
- }
- }
- }
- }
- }
- TEST_END
- int
- main(void) {
- return test_no_reentrancy(
- test_basic,
- test_alignment_and_size);
- }
|