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