summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qemu-arm/test_main.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/qemu-arm/test_main.c b/qemu-arm/test_main.c
index 44f9cc666..6b935bbab 100644
--- a/qemu-arm/test_main.c
+++ b/qemu-arm/test_main.c
@@ -15,8 +15,14 @@
#include "tinytest.h"
#include "tinytest_macros.h"
+#define HEAP_SIZE (128 * 1024)
+STATIC void *heap;
+
void do_str(const char *src);
inline void do_str(const char *src) {
+ gc_init(heap, (char*)heap + HEAP_SIZE);
+ mp_init();
+
mp_lexer_t *lex = mp_lexer_new_from_str_len(MP_QSTR__lt_stdin_gt_, src, strlen(src), 0);
if (lex == NULL) {
tt_abort_msg("Lexer initialization error");
@@ -36,13 +42,13 @@ inline void do_str(const char *src) {
// TODO: That can be always true, we should set up convention to
// use specific exit code as skip indicator.
tinytest_set_test_skipped_();
- return;
+ goto end;
}
mp_obj_print_exception(&mp_plat_print, exc);
tt_abort_msg("Uncaught exception");
}
end:
- ;
+ mp_deinit();
}
#include "genhdr/tests.h"
@@ -51,11 +57,8 @@ int main() {
const char a[] = {"sim"};
mp_stack_ctrl_init();
mp_stack_set_limit(10240);
- void *heap = malloc(256 * 1024);
- gc_init(heap, (char*)heap + 256 * 1024);
- mp_init();
+ heap = malloc(HEAP_SIZE);
int r = tinytest_main(1, (const char **) a, groups);
- mp_deinit();
printf( "status: %i\n", r);
return r;
}