.
This commit is contained in:
33
test/tests.c
33
test/tests.c
@@ -93,7 +93,7 @@ int main()
|
||||
}
|
||||
|
||||
{
|
||||
printf("### Heap\n");
|
||||
printf("### Heap - strings\n");
|
||||
|
||||
Heap h;
|
||||
heap_init(&h);
|
||||
@@ -108,4 +108,35 @@ int main()
|
||||
|
||||
heap_finalize(&h);
|
||||
}
|
||||
|
||||
{
|
||||
printf("### Heap - string GC\n");
|
||||
|
||||
Stack s;
|
||||
stack_init(&s);
|
||||
|
||||
Heap h;
|
||||
heap_init(&h);
|
||||
|
||||
stack_push(&s, create_value_idx(TT_STRING, heap_add_string(&h, "item1")));
|
||||
stack_push(&s, create_value_idx(TT_STRING, heap_add_string(&h, "item2")));
|
||||
stack_push(&s, create_value_idx(TT_STRING, heap_add_string(&h, "item3")));
|
||||
|
||||
assert(heap_size(&h) == 3);
|
||||
heap_gc(&h, s.stack, s.stack_n);
|
||||
assert(heap_size(&h) == 3);
|
||||
|
||||
stack_pop(&s, NULL);
|
||||
|
||||
assert(heap_size(&h) == 3);
|
||||
heap_gc(&h, s.stack, s.stack_n);
|
||||
assert(heap_size(&h) == 2);
|
||||
|
||||
stack_pop(&s, NULL);
|
||||
heap_gc(&h, s.stack, s.stack_n);
|
||||
assert(heap_size(&h) == 1);
|
||||
|
||||
heap_finalize(&h);
|
||||
stack_finalize(&s);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user