diff options
| author | Yukihiro Matsumoto <[email protected]> | 2012-05-18 14:29:36 +0900 |
|---|---|---|
| committer | Yukihiro Matsumoto <[email protected]> | 2012-05-18 14:29:36 +0900 |
| commit | 8846f75ecccf701009fb191207b64ef996544ad8 (patch) | |
| tree | 28caa59ac672f4161d95c93dfc2d82f6751dbffd | |
| parent | 332565e3ba7fb06e1747ed3a7b7a77c9d0b2018b (diff) | |
| download | mruby-8846f75ecccf701009fb191207b64ef996544ad8.tar.gz mruby-8846f75ecccf701009fb191207b64ef996544ad8.zip | |
refactor test driver
| -rw-r--r-- | test/driver.c | 25 | ||||
| -rw-r--r-- | test/init_mrbtest.c | 4 |
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); + } } |
