summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--test/driver.c25
-rw-r--r--test/init_mrbtest.c4
2 files changed, 17 insertions, 12 deletions
diff --git a/test/driver.c b/test/driver.c
index 7ea781244..afc93b10b 100644
--- a/test/driver.c
+++ b/test/driver.c
@@ -27,29 +27,30 @@ int
main(void)
{
struct mrb_parser_state *parser;
- mrb_state *mrb_interpreter;
- mrb_value mrb_return_value;
+ mrb_state *mrb;
+ mrb_value return_value;
int byte_code;
+ const char *prog = "report()";
print_hint();
/* new interpreter instance */
- mrb_interpreter = mrb_open();
- mrb_init_mrbtest(mrb_interpreter);
- parser = mrb_parse_nstring_ext(mrb_interpreter, "report()", strlen("report()"));
+ mrb = mrb_open();
+ mrb_init_mrbtest(mrb);
+ parser = mrb_parse_nstring(mrb, prog, strlen(prog));
/* generate bytecode */
- byte_code = mrb_generate_code(mrb_interpreter, parser->tree);
+ byte_code = mrb_generate_code(mrb, parser->tree);
/* evaluate the bytecode */
- mrb_return_value = mrb_run(mrb_interpreter,
+ return_value = mrb_run(mrb,
/* pass a proc for evaulation */
- mrb_proc_new(mrb_interpreter, mrb_interpreter->irep[byte_code]),
- mrb_top_self(mrb_interpreter));
+ mrb_proc_new(mrb, mrb->irep[byte_code]),
+ mrb_top_self(mrb));
/* did an exception occur? */
- if (mrb_interpreter->exc) {
- mrb_p(mrb_interpreter, mrb_return_value);
- mrb_interpreter->exc = 0;
+ if (mrb->exc) {
+ mrb_p(mrb, return_value);
+ mrb->exc = 0;
}
else {
/* no */
diff --git a/test/init_mrbtest.c b/test/init_mrbtest.c
index 5d977da34..b9f09dd2f 100644
--- a/test/init_mrbtest.c
+++ b/test/init_mrbtest.c
@@ -12,5 +12,9 @@ mrb_init_mrbtest(mrb_state *mrb)
int n = mrb_read_irep(mrb, mrbtest_irep);
mrb_run(mrb, mrb_proc_new(mrb, mrb->irep[n]), mrb_top_self(mrb));
+ if (mrb->exc) {
+ mrb_p(mrb, mrb_obj_value(mrb->exc));
+ exit(0);
+ }
}