1f19501d95a0c1c82c674a913bffefd919419c76
[fw/sdcc] / support / regression / tests / malloc.c
1 /* Simple malloc tests.
2  */
3 #include <testfwk.h>
4 #include <stdlib.h>
5
6 /* PENDING */
7 #if defined(__gbz80) || defined(__z80) || defined(__GNUC__)
8 #define XDATA
9 #else
10 #define XDATA xdata
11 #endif
12
13 XDATA char heap[100];
14
15 void
16 testMalloc(void)
17 {
18   void XDATA *p1, *p2, *p3;
19   
20 #if !defined(__gbz80) && !defined(__z80) && !defined(__GNUC__)
21   init_dynamic_memory((MEMHEADER xdata *)heap, sizeof(heap));
22 #endif
23
24   p1 = malloc(5);
25   ASSERT(p1 != NULL);
26 #ifdef PORT_HOST
27   LOG(("p1: %p\n", p1));
28 #else
29   LOG(("p1: %u\n", (unsigned) p1));
30 #endif
31
32   p2 = malloc(20);
33   ASSERT(p2 != NULL);
34 #ifdef PORT_HOST
35   LOG(("p2: %p\n", p2));
36 #else
37   LOG(("p2: %u\n", (unsigned) p2));
38 #endif
39
40   free(p2);
41
42   p3 = malloc(10);
43   ASSERT(p3 != NULL);
44 #ifdef PORT_HOST
45   LOG(("p3, after freeing p2: %p\n", p3));
46 #else
47   LOG(("p3, after freeing p2: %u\n", (unsigned) p3));
48 #endif
49 }