7 int main(int argc, char **argv)
9 SilcBool success = FALSE;
14 if (argc > 1 && !strcmp(argv[1], "-d")) {
16 silc_log_debug_hexdump(TRUE);
18 silc_log_set_debug_string("*stack*");
21 SILC_LOG_DEBUG(("Allocating stack of default size (1024 bytes)"));
22 stack = silc_stack_alloc(0);
25 silc_stack_stats(stack);
27 SILC_LOG_DEBUG(("Allocating 2048 bytes from stack"));
28 ptr = silc_smalloc(stack, 2048);
31 silc_stack_stats(stack);
33 SILC_LOG_DEBUG(("Freeing the stack"));
34 silc_stack_free(stack);
36 SILC_LOG_DEBUG(("Allocating stack of default size (1024 bytes)"));
37 stack = silc_stack_alloc(0);
40 silc_stack_stats(stack);
42 SILC_LOG_DEBUG(("Pushing and allocating %d times", NUM_ALLS));
43 if (!silc_stack_push(stack, NULL))
45 for (i = 0; i < NUM_ALLS; i++) {
46 ptr2 = silc_smalloc(stack, (i + 1) * 7);
50 silc_stack_stats(stack);
51 silc_stack_pop(stack);
52 SILC_LOG_DEBUG(("Popping"));
53 silc_stack_stats(stack);
55 SILC_LOG_DEBUG(("Pushing and allocating %d times", NUM_ALLS));
56 if (!silc_stack_push(stack, NULL))
58 for (i = 0; i < NUM_ALLS; i++) {
59 ptr2 = silc_smalloc(stack, (i + 1) * 7);
63 silc_stack_stats(stack);
64 silc_stack_pop(stack);
65 SILC_LOG_DEBUG(("Popping"));
66 silc_stack_stats(stack);
68 SILC_LOG_DEBUG(("Pushing %d times", NUM_ALLS / 2));
69 for (i = 0; i < NUM_ALLS / 2; i++) {
70 if (!silc_stack_push(stack, NULL))
72 ptr2 = silc_smalloc(stack, (i + 1) * 7);
76 silc_stack_stats(stack);
77 SILC_LOG_DEBUG(("Popping %d times", NUM_ALLS / 2));
78 for (i = 0; i < NUM_ALLS / 2; i++)
79 silc_stack_pop(stack);
80 silc_stack_stats(stack);
82 SILC_LOG_DEBUG(("Pushing and reallocating %d times", NUM_ALLS / 10));
84 if (!silc_stack_push(stack, NULL))
86 for (i = 0; i < NUM_ALLS / 10; i++) {
87 ptr2 = silc_srealloc(stack, (i * 7), ptr2, (i + 1) * 7);
91 silc_stack_stats(stack);
92 silc_stack_pop(stack);
93 SILC_LOG_DEBUG(("Popping"));
94 silc_stack_stats(stack);
96 SILC_LOG_DEBUG(("Freeing the stack"));
97 silc_stack_free(stack);
102 SILC_LOG_DEBUG(("Testing was %s", success ? "SUCCESS" : "FAILURE"));
103 fprintf(stderr, "Testing was %s\n", success ? "SUCCESS" : "FAILURE");