summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/load.c2
-rw-r--r--tasks/mrbgems_test.rake8
2 files changed, 7 insertions, 3 deletions
diff --git a/src/load.c b/src/load.c
index bc2f07af5..213d8f899 100644
--- a/src/load.c
+++ b/src/load.c
@@ -457,7 +457,7 @@ read_rite_section_irep_file(mrb_state *mrb, FILE *fp)
result = sirep + bin_to_uint16(header.sirep);
error_exit:
mrb_free(mrb, buf);
- if (result != MRB_DUMP_OK) {
+ if (result < MRB_DUMP_OK) {
irep_free(sirep, mrb);
}
return result;
diff --git a/tasks/mrbgems_test.rake b/tasks/mrbgems_test.rake
index b2d82b6b7..b8d2d75d3 100644
--- a/tasks/mrbgems_test.rake
+++ b/tasks/mrbgems_test.rake
@@ -23,14 +23,18 @@ MRuby.each_target do
unless g.test_rbfiles.empty?
f.puts %Q[ mrb_state *mrb2;]
if g.test_args.empty?
- f.puts %Q[ mrb_value val1, val2, ary1, ary2;]
+ f.puts %Q[ mrb_value val1, val2, val3, ary1, ary2;]
else
- f.puts %Q[ mrb_value val1, val2, ary1, ary2, test_args_hash;]
+ f.puts %Q[ mrb_value val1, val2, val3, ary1, ary2, test_args_hash;]
end
f.puts %Q[ int ai;]
g.test_rbfiles.count.times do |i|
f.puts %Q[ ai = mrb_gc_arena_save(mrb);]
f.puts %Q[ mrb2 = mrb_open();]
+ f.puts %Q[ val3 = mrb_gv_get(mrb, mrb_intern(mrb, "$mrbtest_verbose"));]
+ f.puts %Q[ if (mrb_test(val3)) {]
+ f.puts %Q[ mrb_gv_set(mrb2, mrb_intern(mrb2, "$mrbtest_verbose"), val3);]
+ f.puts %Q[ }]
f.puts %Q[ mrb_load_irep(mrb2, gem_test_irep_#{g.funcname}_preload);]
f.puts %Q[ if (mrb2->exc) {]
f.puts %Q[ mrb_p(mrb2, mrb_obj_value(mrb2->exc));]