blob: f92e0589cf7af6b3efc9e2cd8fb218d31f641bee [file] [log] [blame]
Daniel Micay4cfe5512014-08-28 15:41:48 -04001#include "test/jemalloc_test.h"
2
Jason Evansded4f382016-11-11 23:49:40 -08003#define MAXALIGN (((size_t)1) << 22)
4#define NITER 3
Daniel Micay4cfe5512014-08-28 15:41:48 -04005
6TEST_BEGIN(test_basic)
7{
8 void *ptr = mallocx(64, 0);
9 sdallocx(ptr, 64, 0);
10}
11TEST_END
12
13TEST_BEGIN(test_alignment_and_size)
14{
15 size_t nsz, sz, alignment, total;
16 unsigned i;
17 void *ps[NITER];
18
19 for (i = 0; i < NITER; i++)
20 ps[i] = NULL;
21
22 for (alignment = 8;
23 alignment <= MAXALIGN;
24 alignment <<= 1) {
25 total = 0;
26 for (sz = 1;
27 sz < 3 * alignment && sz < (1U << 31);
28 sz += (alignment >> (LG_SIZEOF_PTR-1)) - 1) {
29 for (i = 0; i < NITER; i++) {
30 nsz = nallocx(sz, MALLOCX_ALIGN(alignment) |
31 MALLOCX_ZERO);
32 ps[i] = mallocx(sz, MALLOCX_ALIGN(alignment) |
33 MALLOCX_ZERO);
34 total += nsz;
35 if (total >= (MAXALIGN << 1))
36 break;
37 }
38 for (i = 0; i < NITER; i++) {
39 if (ps[i] != NULL) {
40 sdallocx(ps[i], sz,
41 MALLOCX_ALIGN(alignment));
42 ps[i] = NULL;
43 }
44 }
45 }
46 }
47}
48TEST_END
49
50int
51main(void)
52{
53
54 return (test(
55 test_basic,
56 test_alignment_and_size));
57}