diff options
Diffstat (limited to 'test_c/mem.c')
| -rw-r--r-- | test_c/mem.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/test_c/mem.c b/test_c/mem.c new file mode 100644 index 0000000..930bfde --- /dev/null +++ b/test_c/mem.c @@ -0,0 +1,38 @@ +#include "acutest.h" +#include "../src_c/mem.h" + +#define MEM_SIZE 32 + + +lsp_int8_t data[sizeof(lsp_mem_t) + MEM_SIZE * sizeof(lsp_cell_t)]; + + +void test_mem_gc() { + lsp_mem_t *m = (void *)data; + lsp_mem_init(m, MEM_SIZE); + + for (lsp_int32_t i = 0; i < 10000; ++i) { + lsp_addr_t addr; + TEST_ASSERT(lsp_mem_create_number(m, i, &addr) == LSP_SUCCESS); + lsp_mem_dec_ref(m, addr); + } +} + + +void test_mem_no_gc() { + lsp_int32_t i; + lsp_mem_t *m = (void *)data; + lsp_mem_init(m, MEM_SIZE); + + for (i = 0; i < 10000; ++i) { + lsp_addr_t addr; + if (lsp_mem_create_number(m, i, &addr) != LSP_SUCCESS) + break; + } + + TEST_ASSERT(i > 1 && i < MEM_SIZE); +} + + +TEST_LIST = { + {"mem_gc", test_mem_gc}, {"mem_no_gc", test_mem_no_gc}, {NULL, NULL}}; |
