diff options
| author | geniusgogo <[email protected]> | 2013-12-22 21:31:12 +0800 |
|---|---|---|
| committer | geniusgogo <[email protected]> | 2013-12-22 21:31:12 +0800 |
| commit | 4c463f27cbcb5e97099edea89b854831bb47bf30 (patch) | |
| tree | 7143a798176fba7b5f1ceead99065a7a7d04476c /examples/kernel/heap_realloc.c | |
| parent | 7442414a74a909c4e60874c96eded1c739129778 (diff) | |
| parent | 8b1b64567a090ae2df28ae677c896b14241780c2 (diff) | |
Merge branch 'master' into SQLite_on_ARMCC
Diffstat (limited to 'examples/kernel/heap_realloc.c')
| -rw-r--r-- | examples/kernel/heap_realloc.c | 113 |
1 files changed, 66 insertions, 47 deletions
diff --git a/examples/kernel/heap_realloc.c b/examples/kernel/heap_realloc.c index a4974d5bf3..bc7b56a999 100644 --- a/examples/kernel/heap_realloc.c +++ b/examples/kernel/heap_realloc.c @@ -7,77 +7,96 @@ static rt_bool_t mem_check(rt_uint8_t *ptr, rt_uint8_t value, rt_uint32_t len) { - while (len) - { - if (*ptr != value) return RT_FALSE; + while (len) + { + if (*ptr != value) return RT_FALSE; - ptr ++; - len --; - } + ptr ++; + len --; + } - return RT_TRUE; + return RT_TRUE; } static void heap_realloc_init() { - rt_uint8_t *ptr1, *ptr2, *ptr3, *ptr4, *ptr5; + rt_uint8_t res = TC_STAT_PASSED; + rt_uint8_t *ptr1, *ptr2, *ptr3, *ptr4, *ptr5; - ptr1 = rt_malloc(1); - ptr2 = rt_malloc(13); - ptr3 = rt_malloc(31); - ptr4 = rt_malloc(127); - ptr5 = rt_malloc(0); + ptr1 = rt_malloc(1); + ptr2 = rt_malloc(13); + ptr3 = rt_malloc(31); + ptr4 = rt_malloc(127); + ptr5 = rt_malloc(0); - memset(ptr1, 1, 1); - memset(ptr2, 2, 13); - memset(ptr3, 3, 31); - memset(ptr4, 4, 127); + memset(ptr1, 1, 1); + memset(ptr2, 2, 13); + memset(ptr3, 3, 31); + memset(ptr4, 4, 127); - if (mem_check(ptr1, 1, 1) != RT_FALSE) goto _failed; - if (mem_check(ptr2, 2, 13) != RT_FALSE) goto _failed; - if (mem_check(ptr3, 3, 31) != RT_FALSE) goto _failed; - if (mem_check(ptr4, 4, 127) != RT_FALSE) goto _failed; + if (mem_check(ptr1, 1, 1) == RT_FALSE) + { + res = TC_STAT_FAILED; + goto _free; + } + if (mem_check(ptr2, 2, 13) == RT_FALSE) + { + res = TC_STAT_FAILED; + goto _free; + } + if (mem_check(ptr3, 3, 31) == RT_FALSE) + { + res = TC_STAT_FAILED; + goto _free; + } + if (mem_check(ptr4, 4, 127) == RT_FALSE) + { + res = TC_STAT_FAILED; + goto _free; + } - ptr1 = rt_realloc(ptr1, 13); - ptr2 = rt_realloc(ptr2, 31); - ptr3 = rt_realloc(ptr3, 127); - ptr4 = rt_realloc(ptr4, 1); - ptr5 = rt_realloc(ptr5, 0); + ptr1 = rt_realloc(ptr1, 13); + ptr2 = rt_realloc(ptr2, 31); + ptr3 = rt_realloc(ptr3, 127); + ptr4 = rt_realloc(ptr4, 1); + ptr5 = rt_realloc(ptr5, 0); + if (ptr5) + { + rt_kprintf("realloc(ptr, 0) should return NULL\n"); + res = TC_STAT_FAILED; + } - if (mem_check(ptr1, 1, 1) != RT_FALSE) goto _failed; - if (mem_check(ptr2, 2, 13) != RT_FALSE) goto _failed; - if (mem_check(ptr3, 3, 31) != RT_FALSE) goto _failed; - if (mem_check(ptr4, 4, 1) != RT_FALSE) goto _failed; + if (mem_check(ptr1, 1, 1) == RT_FALSE) + res = TC_STAT_FAILED; + if (mem_check(ptr2, 2, 13) == RT_FALSE) + res = TC_STAT_FAILED; + if (mem_check(ptr3, 3, 31) == RT_FALSE) + res = TC_STAT_FAILED; + if (mem_check(ptr4, 4, 1) == RT_FALSE) + res = TC_STAT_FAILED; - rt_free(ptr4); - rt_free(ptr3); - rt_free(ptr3); - rt_free(ptr1); +_free: + rt_free(ptr4); + rt_free(ptr3); + rt_free(ptr2); + rt_free(ptr1); - if (ptr5 != RT_NULL) - { - rt_free(ptr5); - } - - tc_done(TC_STAT_PASSED); - -_failed: - tc_done(TC_STAT_FAILED); + tc_done(res); } #ifdef RT_USING_TC int _tc_heap_realloc() { - heap_realloc_init(); + heap_realloc_init(); - return 0; + return 0; } FINSH_FUNCTION_EXPORT(_tc_heap_realloc, a heap re-malloc test); #else int rt_application_init() { - heap_realloc_init(); + heap_realloc_init(); - return 0; + return 0; } #endif |
