From e8a2075c01398a526167396e4da6d1213d0208a7 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sun, 27 Oct 2019 10:22:30 +0100 Subject: [PATCH] test: empty. * src/test/gc.c (test_empty): New function. --- src/test/gc.c | 49 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 11 deletions(-) diff --git a/src/test/gc.c b/src/test/gc.c index bac4c7b2..4cdfdcfb 100644 --- a/src/test/gc.c +++ b/src/test/gc.c @@ -22,25 +22,52 @@ #include "mes/mes.h" #include +#include + +#if POINTER_CELLS +#define M2_CELL_SIZE 1 +// CONSTANT M2_CELL_SIZE 12 +#else +#define M2_CELL_SIZE 1 +// CONSTANT M2_CELL_SIZE 1 +#endif int g_debug; +void +test_empty () +{ + g_free = g_symbol_max; + + SCM v = cell_arena; + LENGTH (v) = gc_free () - 1; + eputs ("arena["); eputs (ntoab (g_cells, 16, 0)); eputs ("]: "); write_ (v); eputs ("\n"); + gc_stats_ ("0"); + gc_ (); + v = cell_arena; + eputs ("arena["); eputs (ntoab (g_cells, 16, 0)); eputs ("]: "); write_ (v); eputs ("\n"); + gc_stats_ ("1"); +} + int main (int argc, char **argv, char **envp) { - char *p; - if (p = getenv ("MES_DEBUG")) - g_debug = atoi (p); gc_init (); +#if POINTER_CELLS + cell_zero = g_cells; +#else + cell_zero = 0; +#endif + cell_nil = cell_zero + M2_CELL_SIZE; + cell_f = cell_nil + M2_CELL_SIZE; + g_symbols = cell_zero; + g_symbol_max = cell_zero + (9 * M2_CELL_SIZE); + g_ports = cell_zero; + g_macros = cell_zero; + g_stack = STACK_SIZE; + M0 = cell_zero; - SCM v = -1; - LENGTH (v) = 10; - eputs ("arena: "); write_ (v); eputs ("\n"); - gc_stats_ ("0"); - gc_ (); - v = -1; - eputs ("arena: "); write_ (v); eputs ("\n"); - gc_stats_ ("1"); + test_empty (); return 0; }