test/gc: empty.

* src/test/gc.c (test_empty): New function.
This commit is contained in:
Jan (janneke) Nieuwenhuizen 2020-08-16 11:22:30 +02:00
parent 4bcfc155c1
commit ea6fa6fdee
No known key found for this signature in database
GPG key ID: F3C1A0D9C1D65273

View file

@ -22,25 +22,54 @@
#include "mes/mes.h" #include "mes/mes.h"
#include <stdlib.h> #include <stdlib.h>
#include <string.h>
#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; 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 int
main (int argc, char **argv, char **envp) main (int argc, char **argv, char **envp)
{ {
char *p; setenv ("MES_ARENA", "100", 1);
if (p = getenv ("MES_DEBUG")) setenv ("MES_MAX_ARENA", "100", 1);
g_debug = atoi (p);
gc_init (); 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; test_empty ();
LENGTH (v) = 10;
eputs ("arena: "); write_ (v); eputs ("\n");
gc_stats_ ("0");
gc_ ();
v = -1;
eputs ("arena: "); write_ (v); eputs ("\n");
gc_stats_ ("1");
return 0; return 0;
} }