summaryrefslogtreecommitdiffhomepage
path: root/test
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 /test
parente203383d98a128ab57e013312eaa48c9a8a53564 (diff)
downloadmruby-7201404ee08e85a279b4ee64a8b93f6a39bdf360.tar.gz
mruby-7201404ee08e85a279b4ee64a8b93f6a39bdf360.zip
compile assert.rb once
Diffstat (limited to 'test')
-rw-r--r--test/init_mrbtest.c2
-rw-r--r--test/mrbtest.rake19
2 files changed, 16 insertions, 5 deletions
diff --git a/test/init_mrbtest.c b/test/init_mrbtest.c
index 8d01624f0..717578dc8 100644
--- a/test/init_mrbtest.c
+++ b/test/init_mrbtest.c
@@ -2,6 +2,7 @@
#include "mruby.h"
#include "mruby/irep.h"
+extern const uint8_t mrbtest_assert_irep[];
extern const uint8_t mrbtest_irep[];
void mrbgemtest_init(mrb_state* mrb);
@@ -9,6 +10,7 @@ void mrbgemtest_init(mrb_state* mrb);
void
mrb_init_mrbtest(mrb_state *mrb)
{
+ mrb_load_irep(mrb, mrbtest_assert_irep);
mrb_load_irep(mrb, mrbtest_irep);
#ifndef DISABLE_GEMS
mrbgemtest_init(mrb);
diff --git a/test/mrbtest.rake b/test/mrbtest.rake
index 0507981d6..35495889e 100644
--- a/test/mrbtest.rake
+++ b/test/mrbtest.rake
@@ -8,10 +8,11 @@ MRuby.each_target do
mlib = clib.ext(exts.object)
mrbs = Dir.glob("#{current_dir}/t/*.rb")
init = "#{current_dir}/init_mrbtest.c"
- asslib = "#{current_dir}/assert.rb"
+ ass_c = "#{current_build_dir}/assert.c"
+ ass_lib = ass_c.ext(exts.object)
mrbtest_lib = libfile("#{current_build_dir}/mrbtest")
- file mrbtest_lib => [mlib, gems.map(&:test_objs), gems.map { |g| g.test_rbireps.ext(exts.object) }].flatten do |t|
+ file mrbtest_lib => [mlib, ass_lib, gems.map(&:test_objs), gems.map { |g| g.test_rbireps.ext(exts.object) }].flatten do |t|
archiver.run t.name, t.prerequisites
end
@@ -27,13 +28,21 @@ MRuby.each_target do
end
end
- file mlib => [clib]
- file clib => [mrbcfile, init, asslib] + mrbs do |t|
+ file ass_lib => ass_c
+ file ass_c => "#{current_dir}/assert.rb" do |t|
+ FileUtils.mkdir_p File.dirname t.name
+ open(t.name, 'w') do |f|
+ mrbc.run f, [t.prerequisites], 'mrbtest_assert_irep'
+ end
+ end
+
+ file mlib => clib
+ file clib => [mrbcfile, init] + mrbs do |t|
_pp "GEN", "*.rb", "#{clib.relative_path}"
FileUtils.mkdir_p File.dirname(clib)
open(clib, 'w') do |f|
f.puts IO.read(init)
- mrbc.run f, [asslib] + mrbs, 'mrbtest_irep'
+ mrbc.run f, mrbs, 'mrbtest_irep'
gems.each do |g|
f.puts %Q[void GENERATED_TMP_mrb_#{g.funcname}_gem_test(mrb_state *mrb);]
end