test/gc: number.

* src/test/gc.c (test_number): New function.
(main): Call it.
This commit is contained in:
Jan (janneke) Nieuwenhuizen 2020-08-16 11:56:02 +02:00
parent ea6fa6fdee
commit 9868f41674
No known key found for this signature in database
GPG Key ID: F3C1A0D9C1D65273
1 changed files with 49 additions and 2 deletions

View File

@ -35,11 +35,37 @@
int g_debug;
void
test_empty ()
test_setup ()
{
g_free = g_symbol_max;
#if POINTER_CELLS
cell_arena = g_arena;
g_cells = cell_arena + M2_CELL_SIZE;
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;
memset (g_arena + sizeof (struct scm), 0, ARENA_SIZE * sizeof (struct scm));
TYPE (cell_zero) = TCHAR;
VALUE (cell_zero) = 'c';
g_free = cell_f;
}
void
test_gc (char const *name)
{
eputs ("TEST: "); eputs (name); eputs ("\n");
SCM v = cell_arena;
TYPE (v) = TVECTOR;
LENGTH (v) = gc_free () - 1;
eputs ("arena["); eputs (ntoab (g_cells, 16, 0)); eputs ("]: "); write_ (v); eputs ("\n");
gc_stats_ ("0");
@ -47,6 +73,26 @@ test_empty ()
v = cell_arena;
eputs ("arena["); eputs (ntoab (g_cells, 16, 0)); eputs ("]: "); write_ (v); eputs ("\n");
gc_stats_ ("1");
eputs ("\n");
}
void
test_empty ()
{
test_setup ();
g_free = g_symbol_max;
test_gc ("empty");
}
void
test_number ()
{
test_setup ();
make_number (42);
g_free = g_symbol_max + M2_CELL_SIZE;
test_gc ("number");
}
int
@ -70,6 +116,7 @@ main (int argc, char **argv, char **envp)
M0 = cell_zero;
test_empty ();
test_number ();
return 0;
}