summaryrefslogtreecommitdiff
path: root/lib/test/unit/collector/objectspace.rb
diff options
context:
space:
mode:
authorntalbott <ntalbott@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-10-03 22:35:19 +0000
committerntalbott <ntalbott@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-10-03 22:35:19 +0000
commit51267d117721b017f00493085c8e45a7d0efed05 (patch)
tree0263d3fa994f5315ae8bd4494e35b2d3c6f793f6 /lib/test/unit/collector/objectspace.rb
parentdf0e9dbe9772d7327481ec95ad4dd33a12c1d470 (diff)
* lib/test/unit/testsuite.rb: changed #<< to return self, and added
#delete. * test/testunit/test_testsuite.rb: ditto. Also slightly refactored #test_size. * lib/test/unit/collector/objectspace.rb: collector now preserves the hierarchy of suites. * test/testunit/collector/test_objectspace.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4668 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/test/unit/collector/objectspace.rb')
-rw-r--r--lib/test/unit/collector/objectspace.rb11
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/test/unit/collector/objectspace.rb b/lib/test/unit/collector/objectspace.rb
index ac79980d7f..5a1d29cc1a 100644
--- a/lib/test/unit/collector/objectspace.rb
+++ b/lib/test/unit/collector/objectspace.rb
@@ -15,11 +15,16 @@ module Test
def collect(name=NAME)
suite = TestSuite.new(name)
- tests = []
+ sub_suites = []
@source.each_object(Class) do |klass|
- tests.concat(klass.suite.tests) if(Test::Unit::TestCase > klass)
+ if(Test::Unit::TestCase > klass)
+ sub_suite = klass.suite
+ to_delete = sub_suite.tests.find_all{|t| !include(t)}
+ to_delete.each{|t| sub_suite.delete(t)}
+ sub_suites << sub_suite unless(sub_suite.size == 0)
+ end
end
- tests.sort_by{|t| t.name}.each{|test| suite << test if(include(test))}
+ sub_suites.sort_by{|s| s.name}.each{|s| suite << s}
suite
end