summaryrefslogtreecommitdiffhomepage
path: root/tasks/mrbgems_test.rake
diff options
context:
space:
mode:
authortake_cheeze <[email protected]>2014-02-26 22:01:31 +0900
committertake_cheeze <[email protected]>2014-02-26 22:01:31 +0900
commit7201404ee08e85a279b4ee64a8b93f6a39bdf360 (patch)
treed539c1873d70230210a421795814e35bc308f379 /tasks/mrbgems_test.rake
parente203383d98a128ab57e013312eaa48c9a8a53564 (diff)
downloadmruby-7201404ee08e85a279b4ee64a8b93f6a39bdf360.tar.gz
mruby-7201404ee08e85a279b4ee64a8b93f6a39bdf360.zip
compile assert.rb once
Diffstat (limited to 'tasks/mrbgems_test.rake')
-rw-r--r--tasks/mrbgems_test.rake14
1 files changed, 11 insertions, 3 deletions
diff --git a/tasks/mrbgems_test.rake b/tasks/mrbgems_test.rake
index 36c8e84b7..d523d8ba6 100644
--- a/tasks/mrbgems_test.rake
+++ b/tasks/mrbgems_test.rake
@@ -6,11 +6,15 @@ MRuby.each_target do
file g.test_rbireps => [g.test_rbfiles].flatten + [g.build.mrbcfile] do |t|
open(t.name, 'w') do |f|
g.print_gem_test_header(f)
- test_preload = [g.dir, MRUBY_ROOT].map {|dir|
+ test_preload = g.test_preload and [g.dir, MRUBY_ROOT].map {|dir|
File.expand_path(g.test_preload, dir)
}.find {|file| File.exist?(file) }
- g.build.mrbc.run f, test_preload, "gem_test_irep_#{g.funcname}_preload"
+ if test_preload.nil?
+ f.puts %Q[extern const uint8_t mrbtest_assert_irep[];]
+ else
+ g.build.mrbc.run f, test_preload, "gem_test_irep_#{g.funcname}_preload"
+ end
g.test_rbfiles.flatten.each_with_index do |rbfile, i|
g.build.mrbc.run f, rbfile, "gem_test_irep_#{g.funcname}_#{i}"
end
@@ -31,7 +35,11 @@ MRuby.each_target do
f.puts %Q[ if (mrb_test(val3)) {]
f.puts %Q[ mrb_gv_set(mrb2, mrb_intern_cstr(mrb2, "$mrbtest_verbose"), val3);]
f.puts %Q[ }]
- f.puts %Q[ mrb_load_irep(mrb2, gem_test_irep_#{g.funcname}_preload);]
+ if test_preload.nil?
+ f.puts %Q[ mrb_load_irep(mrb2, mrbtest_assert_irep);]
+ else
+ f.puts %Q[ mrb_load_irep(mrb2, gem_test_irep_#{g.funcname}_preload);]
+ end
f.puts %Q[ if (mrb2->exc) {]
f.puts %Q[ mrb_p(mrb2, mrb_obj_value(mrb2->exc));]
f.puts %Q[ exit(EXIT_FAILURE);]