From fcbf63e62c627deae76c1b8cb8c0876c536ed811 Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Mon, 16 Mar 2020 18:49:26 +0900 Subject: Fresh start --- jni/ruby/test/rake/support/ruby_runner.rb | 34 +++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 jni/ruby/test/rake/support/ruby_runner.rb (limited to 'jni/ruby/test/rake/support/ruby_runner.rb') 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 -- cgit v1.2.3