MCPcopy Create free account
hub / github.com/CppCXY/EmmyLuaCodeStyle / main

Function main

3rd/mimalloc-2.0.9/test/test-api.c:52–282  ·  view source on GitHub ↗

--------------------------------------------------------------------------- Main testing ---------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

50// Main testing
51// ---------------------------------------------------------------------------
52int main(void) {
53 mi_option_disable(mi_option_verbose);
54
55 // ---------------------------------------------------
56 // Malloc
57 // ---------------------------------------------------
58
59 CHECK_BODY("malloc-zero") {
60 void* p = mi_malloc(0);
61 result = (p != NULL);
62 mi_free(p);
63 };
64 CHECK_BODY("malloc-nomem1") {
65 result = (mi_malloc((size_t)PTRDIFF_MAX + (size_t)1) == NULL);
66 };
67 CHECK_BODY("malloc-null") {
68 mi_free(NULL);
69 };
70 CHECK_BODY("calloc-overflow") {
71 // use (size_t)&mi_calloc to get some number without triggering compiler warnings
72 result = (mi_calloc((size_t)&mi_calloc,SIZE_MAX/1000) == NULL);
73 };
74 CHECK_BODY("calloc0") {
75 void* p = mi_calloc(0,1000);
76 result = (mi_usable_size(p) <= 16);
77 mi_free(p);
78 };
79 CHECK_BODY("malloc-large") { // see PR #544.
80 void* p = mi_malloc(67108872);
81 mi_free(p);
82 };
83
84 // ---------------------------------------------------
85 // Extended
86 // ---------------------------------------------------
87 CHECK_BODY("posix_memalign1") {
88 void* p = &p;
89 int err = mi_posix_memalign(&p, sizeof(void*), 32);
90 result = ((err==0 && (uintptr_t)p % sizeof(void*) == 0) || p==&p);
91 mi_free(p);
92 };
93 CHECK_BODY("posix_memalign_no_align") {
94 void* p = &p;
95 int err = mi_posix_memalign(&p, 3, 32);
96 result = (err==EINVAL && p==&p);
97 };
98 CHECK_BODY("posix_memalign_zero") {
99 void* p = &p;
100 int err = mi_posix_memalign(&p, sizeof(void*), 0);
101 mi_free(p);
102 result = (err==0);
103 };
104 CHECK_BODY("posix_memalign_nopow2") {
105 void* p = &p;
106 int err = mi_posix_memalign(&p, 3*sizeof(void*), 32);
107 result = (err==EINVAL && p==&p);
108 };
109 CHECK_BODY("posix_memalign_nomem") {

Callers

nothing calls this directly

Calls 15

mi_option_disableFunction · 0.85
mi_mallocFunction · 0.85
mi_freeFunction · 0.85
mi_callocFunction · 0.85
mi_usable_sizeFunction · 0.85
mi_posix_memalignFunction · 0.85
mi_malloc_alignedFunction · 0.85
mi_zalloc_alignedFunction · 0.85
mi_heap_newFunction · 0.85
mi_heap_malloc_alignedFunction · 0.85
mi_heap_contains_blockFunction · 0.85
mi_heap_destroyFunction · 0.85

Tested by

no test coverage detected