You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by as...@apache.org on 2008/10/17 21:20:40 UTC

svn commit: r705727 - in /incubator/buildr/trunk/spec: sandbox.rb spec_helpers.rb

Author: assaf
Date: Fri Oct 17 12:20:40 2008
New Revision: 705727

URL: http://svn.apache.org/viewvc?rev=705727&view=rev
Log:
This change necessary to run the full test suite, since autoload doesn't play nicely with our sandbox.
There should be a better way, in which we're able to test autoload, we'll need to revisit this.

Modified:
    incubator/buildr/trunk/spec/sandbox.rb
    incubator/buildr/trunk/spec/spec_helpers.rb

Modified: incubator/buildr/trunk/spec/sandbox.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/spec/sandbox.rb?rev=705727&r1=705726&r2=705727&view=diff
==============================================================================
--- incubator/buildr/trunk/spec/sandbox.rb (original)
+++ incubator/buildr/trunk/spec/sandbox.rb Fri Oct 17 12:20:40 2008
@@ -25,8 +25,9 @@
 require 'buildr/groovy'
 
 Java.load # Anything added to the classpath.
-task('buildr:scala:download').invoke
-artifacts(TestFramework.frameworks.map(&:dependencies).flatten, JUnit.ant_taskdef).each { |a| file(a).invoke }
+artifacts(TestFramework.frameworks.map(&:dependencies).flatten, JUnit.ant_taskdef).each do |path|
+  file(path).invoke
+end
 
 ENV['HOME'] = File.expand_path('tmp/home')
 
@@ -43,7 +44,7 @@
     end
     
     # Require an addon without letting its callbacks pollute the Project class.
-    def require_addon addon_require_path
+    def require_addon(addon_require_path)
       project_callbacks_without_addon = Project.class_eval { @callbacks }.dup
       begin
         require addon_require_path
@@ -83,7 +84,7 @@
     Buildr.application.instance_eval { @rakefile = File.expand_path('buildfile') }
 
     @_sandbox[:load_path] = $LOAD_PATH.clone
-    @_sandbox[:loaded_features] = $LOADED_FEATURES.clone
+    #@_sandbox[:loaded_features] = $LOADED_FEATURES.clone
     
     # Later on we'll want to lose all the on_define created during the test.
     @_sandbox[:on_define] = Project.class_eval { (@on_define || []).dup }
@@ -123,8 +124,13 @@
     Layout.default = @_sandbox[:layout].clone
 
     $LOAD_PATH.replace @_sandbox[:load_path]
+<<<<<<< HEAD:spec/sandbox.rb
     $LOADED_FEATURES.replace @_sandbox[:loaded_features]
     FileUtils.rm_rf @temp
+=======
+    #$LOADED_FEATURES.replace @_sandbox[:loaded_features]
+    FileUtils.rm_rf Dir.pwd
+>>>>>>> This change necessary to run the full test suite, since autoload doesn't play nicely with our sandbox.:spec/sandbox.rb
 
     # Get rid of all artifacts.
     @_sandbox[:artifacts].tap { |artifacts| Artifact.class_eval { @artifacts = artifacts } }

Modified: incubator/buildr/trunk/spec/spec_helpers.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/spec/spec_helpers.rb?rev=705727&r1=705726&r2=705727&view=diff
==============================================================================
--- incubator/buildr/trunk/spec/spec_helpers.rb (original)
+++ incubator/buildr/trunk/spec/spec_helpers.rb Fri Oct 17 12:20:40 2008
@@ -19,7 +19,17 @@
 unless defined?(SpecHelpers)
 
   require 'rubygems'
-  $LOAD_PATH.unshift File.expand_path('../lib', File.dirname(__FILE__)), File.expand_path('../addon', File.dirname(__FILE__))
+  # Make sure to load from these paths first, we don't want to load any
+  # code from Gem library.
+  $LOAD_PATH.unshift File.expand_path('../lib', File.dirname(__FILE__)),
+                     File.expand_path('../addon', File.dirname(__FILE__))
+  # Buildr uses autoload extensively, but autoload when running specs creates
+  # a problem -- we sandbox $LOADED_FEATURES, so we endup autoloading the same
+  # module twice. This turns autoload into a require, which is not the right
+  # thing, but will do for now.
+  def autoload(symbol, path)
+    require path
+  end
   require 'buildr'
 
   require File.expand_path('sandbox', File.dirname(__FILE__))