summaryrefslogtreecommitdiff
path: root/jni/ruby/test/rake/support/ruby_runner.rb
diff options
context:
space:
mode:
Diffstat (limited to 'jni/ruby/test/rake/support/ruby_runner.rb')
-rw-r--r--jni/ruby/test/rake/support/ruby_runner.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/jni/ruby/test/rake/support/ruby_runner.rb b/jni/ruby/test/rake/support/ruby_runner.rb
new file mode 100644
index 0000000..d51dd24
--- /dev/null
+++ b/jni/ruby/test/rake/support/ruby_runner.rb
@@ -0,0 +1,34 @@
+module RubyRunner
+ include FileUtils
+
+ # Run a shell Ruby command with command line options (using the
+ # default test options). Output is captured in @out and @err
+ def ruby(*option_list)
+ run_ruby(@ruby_options + option_list)
+ end
+
+ # Run a command line rake with the give rake options. Default
+ # command line ruby options are included. Output is captured in
+ # @out and @err
+ def rake(*rake_options)
+ run_ruby @ruby_options + [@rake_exec] + rake_options
+ end
+
+ # Low level ruby command runner ...
+ def run_ruby(option_list)
+ puts "COMMAND: [#{RUBY} #{option_list.join ' '}]" if @verbose
+
+ Open3.popen3(RUBY, *option_list) {|inn, out, err, wait|
+ inn.close
+
+ @exit = wait ? wait.value : $?
+ @out = out.read
+ @err = err.read
+ }
+
+ puts "OUTPUT: [#{@out}]" if @verbose
+ puts "ERROR: [#{@err}]" if @verbose
+ puts "EXIT: [#{@exit.inspect}]" if @verbose
+ puts "PWD: [#{Dir.pwd}]" if @verbose
+ end
+end