4 #include "tests/malloc.h"
6 #include "../../../config.h"
13 assert(sizeof(long int) == sizeof(void*));
15 p
= memalign(1024 * 1024, 4 * 1024 * 1024 + 1);
16 assert(0 == (long)p
% (1024 * 1024));
17 piece
= malloc(1024 * 1000); assert (piece
);
21 p
= memalign(1024 * 1024, 4 * 1024 * 1024 + 1);
22 assert(0 == (long)p
% (1024 * 1024));
23 piece
= malloc(1024 * 100); assert (piece
);
27 // there is a bug in FreeBSD memalign which causes
28 // a SIGFPE division by zero when the alignment is zero
29 // see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269688
30 // that might ship in FreeBSD 13.2 / 14.0
31 // for the moment disable this test
32 //p = memalign(0, 100);
35 assert(p
&& 0 == (long)p
% 8);
37 assert(p
&& 0 == (long)p
% 8);
41 assert(errno
= EINVAL
);
43 assert(p
&& 0 == (long)p
% 8);
47 assert(errno
= EINVAL
);
51 assert(errno
= EINVAL
);
53 assert(p
&& 0 == (long)p
% 8);
57 assert(errno
= EINVAL
);
59 p
= memalign(31, 100);
61 assert(errno
= EINVAL
);
62 p
= memalign(32, 100);
63 assert(p
&& 0 == (long)p
% 32);
65 p
= memalign(33, 100);
67 assert(errno
= EINVAL
);
69 p
= memalign(4095, 100);
71 assert(errno
= EINVAL
);
72 p
= memalign(4096, 100);
73 assert(p
&& 0 == (long)p
% 4096);
75 p
= memalign(4097, 100);
77 assert(errno
= EINVAL
);
78 p
= memalign(4 * 1024 * 1024, 100);
79 assert(p
&& 0 == (long)p
% (4 * 1024 * 1024));
80 p
= memalign(16 * 1024 * 1024, 100);
81 assert(p
&& 0 == (long)p
% (16 * 1024 * 1024));