You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by dj...@apache.org on 2009/06/15 21:59:26 UTC

svn commit: r784956 - /buildr/trunk/lib/buildr/scala/bdd.rb

Author: djspiewak
Date: Mon Jun 15 19:59:26 2009
New Revision: 784956

URL: http://svn.apache.org/viewvc?rev=784956&view=rev
Log:
More robust Specs running

Modified:
    buildr/trunk/lib/buildr/scala/bdd.rb

Modified: buildr/trunk/lib/buildr/scala/bdd.rb
URL: http://svn.apache.org/viewvc/buildr/trunk/lib/buildr/scala/bdd.rb?rev=784956&r1=784955&r2=784956&view=diff
==============================================================================
--- buildr/trunk/lib/buildr/scala/bdd.rb (original)
+++ buildr/trunk/lib/buildr/scala/bdd.rb Mon Jun 15 19:59:26 2009
@@ -68,24 +68,29 @@
     
     def tests(dependencies)
       dependencies += [task.compile.target.to_s]
-      filter_classes(dependencies, :interfaces => ['org.specs.Specification'])
+      candidates = filter_classes(dependencies, :interfaces => ['org.specs.Specification'])
+      
+      Java.load   # Java is already loaded, but just in case
+      
+      filter = Java.org.apache.buildr.JavaTestFilter.new(dependencies.to_java(Java.java.lang.String))
+      filter.add_fields ['MODULE$'].to_java(Java.java.lang.String)
+      filter.filter(candidates.to_java(Java.java.lang.String))      # we only want singletons
     end
     
     def run(specs, dependencies)  #:nodoc:
-      dependencies += [task.compile.target.to_s] + Scalac.dependencies
+      dependencies += [task.compile.target.to_s, File.join(File.dirname(__FILE__))] + Scalac.dependencies
       
       cmd_options = { :properties => options[:properties],
                       :java_args => options[:java_args],
                       :classpath => dependencies}
-                      
+
+      runner = 'org.apache.buildr.SpecsSingletonRunner'
       specs.inject [] do |passed, spec|
         begin
-          Java.load
-          
           unless Util.win_os?
-            Java::Commands.java(spec, '-c', cmd_options)
+            Java::Commands.java(runner, task.compile.target.to_s, '-c', spec, cmd_options)
           else
-            Java::Commands.java(spec, cmd_options)
+            Java::Commands.java(runner, task.compile.target.to_s, spec, cmd_options)
           end
         rescue => e
           passed