Merge pull request #1150 from monaka/pr-add-test-runner-support

Add "test runner" support for cross builds.
This commit is contained in:
Yukihiro "Matz" Matsumoto
2013-04-08 03:25:28 -07:00
3 changed files with 36 additions and 2 deletions
+3
View File
@@ -114,4 +114,7 @@ end
# conf.build_mrbtest_lib_only
#
# conf.gem 'examples/mrbgems/c_and_ruby_extension_example'
#
# conf.test_runner.command = 'env'
#
# end
+13 -2
View File
@@ -194,10 +194,21 @@ module MRuby
end # Build
class CrossBuild < Build
attr_block %w(test_runner)
def initialize(name, &block)
@test_runner = Command::CrossTestRunner.new(self)
super
end
def run_test
mrbtest = exefile("#{build_dir}/test/mrbtest")
puts "You should run #{mrbtest} on target device."
puts
if (@test_runner.command == nil)
puts "You should run #{mrbtest} on target device."
puts
else
@test_runner.run(mrbtest)
end
end
end # CrossBuild
end # MRuby
+20
View File
@@ -259,4 +259,24 @@ module MRuby
end
end
end
class Command::CrossTestRunner < Command
attr_accessor :runner_options
attr_accessor :verbose_flag
attr_accessor :flags
def initialize(build)
super
@command = nil
@runner_options = '%{flags} %{infile}'
@verbose_flag = ''
@flags = []
end
def run(testbinfile)
puts "TEST for " + @build.name
_run runner_options, { :flags => [flags, verbose_flag].flatten.join(' '), :infile => testbinfile }
end
end
end