Author: boisvert
Date: Tue Jun 21 18:44:56 2011
New Revision: 1138131

URL: http://svn.apache.org/viewvc?rev=1138131&view=rev
Log:
Fix JtestR support on C-Ruby; JRuby still doesn't work due to rspec 
incompatibility

Modified:
    buildr/trunk/lib/buildr/java/bdd.rb
    buildr/trunk/lib/buildr/java/jtestr_result.rb
    buildr/trunk/spec/sandbox.rb

Modified: buildr/trunk/lib/buildr/java/bdd.rb
URL: 
http://svn.apache.org/viewvc/buildr/trunk/lib/buildr/java/bdd.rb?rev=1138131&r1=1138130&r2=1138131&view=diff
==============================================================================
--- buildr/trunk/lib/buildr/java/bdd.rb (original)
+++ buildr/trunk/lib/buildr/java/bdd.rb Tue Jun 21 18:44:56 2011
@@ -47,7 +47,7 @@ module Buildr
   module TestFramework::JRubyBased
     extend self
 
-    VERSION = '1.6.2'
+    VERSION = '1.5.4' # Note: JtestR 0.6.0 only works up to 1.5.4
 
     class << self
       def version
@@ -75,7 +75,7 @@ module Buildr
       def dependencies
         unless @dependencies
           super
-          unless RUBY_PLATFORM[/java/] && 
TestFramework::JRubyBased.jruby_installed?
+          if !RUBY_PLATFORM[/java/] && 
!TestFramework::JRubyBased.jruby_installed?
             @dependencies |= TestFramework::JRubyBased.dependencies
           end
         end
@@ -146,11 +146,13 @@ module Buildr
       cmd_options = java_args.last
       project = cmd_options.delete(:project)
       cmd_options[:classpath] ||= []
-      Dir.glob(File.join(jruby_home, 'lib', '*.jar')) { |jar| 
cmd_options[:classpath] << jar }
+      if jruby_home && jruby_home != ''
+        Dir.glob(File.join(jruby_home, 'lib', '*.jar')) { |jar| 
cmd_options[:classpath] << jar }
+        cmd_options[:properties]['jruby.home'] = jruby_home
+      end
       cmd_options[:java_args] ||= []
       cmd_options[:java_args] << '-Xmx512m' unless 
cmd_options[:java_args].detect {|a| a =~ /^-Xmx/}
       cmd_options[:properties] ||= {}
-      cmd_options[:properties]['jruby.home'] = jruby_home
       Java::Commands.java(*java_args)
     end
 
@@ -370,8 +372,9 @@ module Buildr
       runner = super
       # JtestR 0.6.0 comes with rspec 1.3.0 (and any other jtestr dependency) 
included,
       # so the rspec version used depends on the jtestr jar.
-      runner.requires.unshift 'jtestr'
       runner.gems.update 'rspec' => '=1.3.0'
+      runner.requires.clear
+      runner.requires.unshift 'jtestr'
       runner.requires.unshift 'spec'
       runner.requires.unshift File.join(File.dirname(__FILE__), 
'jtestr_result')
       runner.rspec = ['--format', 'progress', '--format', 
"html:#{runner.html_report}"]

Modified: buildr/trunk/lib/buildr/java/jtestr_result.rb
URL: 
http://svn.apache.org/viewvc/buildr/trunk/lib/buildr/java/jtestr_result.rb?rev=1138131&r1=1138130&r2=1138131&view=diff
==============================================================================
--- buildr/trunk/lib/buildr/java/jtestr_result.rb (original)
+++ buildr/trunk/lib/buildr/java/jtestr_result.rb Tue Jun 21 18:44:56 2011
@@ -19,6 +19,42 @@ require 'fileutils'
 
 module Buildr #:nodoc:
 
+  module TestFramework
+
+    # A class used by buildr for jruby based frameworks, so that buildr can 
know
+    # which tests succeeded/failed.
+    class TestResult
+
+      class Error < ::Exception
+        attr_reader :message, :backtrace
+        def initialize(message, backtrace)
+          @message = message
+          @backtrace = backtrace
+          set_backtrace backtrace
+        end
+
+        def self.dump_yaml(file, e)
+          FileUtils.mkdir_p File.dirname(file)
+          File.open(file, 'w') { |f| f.puts(YAML.dump(Error.new(e.message, 
e.backtrace))) }
+        end
+
+        def self.guard(file)
+          begin
+            yield
+          rescue => e
+            dump_yaml(file, e)
+          end
+        end
+      end
+
+      attr_accessor :failed, :succeeded
+
+      def initialize
+        @failed, @succeeded = [], []
+      end
+    end
+  end
+
   module JtestR
 
     # An Rspec formatter used by JtestR

Modified: buildr/trunk/spec/sandbox.rb
URL: 
http://svn.apache.org/viewvc/buildr/trunk/spec/sandbox.rb?rev=1138131&r1=1138130&r2=1138131&view=diff
==============================================================================
--- buildr/trunk/spec/sandbox.rb (original)
+++ buildr/trunk/spec/sandbox.rb Tue Jun 21 18:44:56 2011
@@ -124,6 +124,13 @@ module Sandbox
     Buildr.application.instance_eval { @rakefile = 
File.expand_path('buildfile') }
 
     @_sandbox[:load_path] = $LOAD_PATH.clone
+
+    # clear RUBYOPT since bundler hooks into it
+    #   e.g. RUBYOPT=-I/usr/lib/ruby/gems/1.8/gems/bundler-1.0.15/lib 
-rbundler/setup
+    # and so Buildr's own Gemfile configuration taints e.g., JRuby's 
environment
+    @_sandbox[:ruby_opt] = ENV["RUBYOPT"]
+    ENV["RUBYOPT"] = nil
+
     #@_sandbox[:loaded_features] = $LOADED_FEATURES.clone
 
     # Later on we'll want to lose all the on_define created during the test.
@@ -174,6 +181,8 @@ module Sandbox
     Layout.default = @_sandbox[:layout].clone
 
     $LOAD_PATH.replace @_sandbox[:load_path]
+    ENV["RUBYOPT"] = @_sandbox[:ruby_opt]
+
     FileUtils.rm_rf @temp
     mkpath ENV['HOME']
 


Reply via email to